#pragma once

#include <alias/math.h>

struct solver_GeometricConstaint {
  enum {
    solver_GeometricConstaint_CoincidentPoints,
    solver_GeometricConstaint_Parallel,
    solver_GeometricConstaint_Perpendicular,
    solver_GeometricConstaint_Collinear,
    solver_GeometricConstaint_Fixed,
    solver_GeometricConstaint_Tangent,
    solver_GeometricConstaint_Angle,
    solver_GeometricConstaint_Distance,
    solver_GeometricConstaint_Radius
  } tag;
  union {
    struct {
      uint32_t point_a;
      uint32_t point_b;
      alias_pga3d_Motor align_to;
    } coincident_points;
  };
};