class M_Point

The M_Point class represents a single control point in a 2D vector layer.

Member Functions

int CountCurves()

Returns the number of curves that pass through the point.

Return value (int): the number of curves that pass through the point

M_Curve Curve(id, where)

Returns a curve that passes through the point.

Return value (M_Curve): a curve that passes through the point
id (int): the curve's id (0 is the first curve passing through the point)
where (int): the where value is returned, indicating where on the curve the point lies

void SetPos(pos, frame)

Set the position of the point at a given time.

Return value: none
pos (LM_Vector2): position
frame (int): frame number

void SetCurvature(curvature, frame)

Sets the curvature of all curves that pass through this point.

Return value: none
curvature (float): curvature value
frame (int): frame number

bool IsEndpoint()

Tests whether this point is the endpoint of a curve

Return value (bool): true if endpoint, false if the point is in the middle of a curve

void GetEndpointEdge(curveID, segID)

Returns which curve, and which segment of that curve, this point is an endpoint of.

Return value: none
curveID (int): the curve identifier
segID (int): which segment of that curve

Member Variables

fSelected (bool)

true if the point is selected, otherwise false


fPrevSelected (bool)

true if the point was previously selected, otherwise false


fPos (LM_Vector2)

the point's current position


fTempPos (LM_Vector2)

a temporary variable for storing position, useful when transforming points


fAnimPos (AnimVec2)

the point's position animation channel


fWidth (float)

the width of curves that pass through this point (-1 means that curves aren't affected by variable width)


fTempWidth (float)

a temporary variable to store line width


fParent (int)

id number of the parent bone this point is bound to. A value of -1 means the point is not bound to any bone. A value of -2 means the point is flexi-bound to all bones in the parent layer.

class M_Point {
  int32 GetNumCurves @ CountCurves();
  M_Curve *GetCurve @ Curve(int32 id, int32 *where);
  bool IsPointOnCurve(int32 curveID, int32 where = -1);
 
  void SetPos(LM_Vector2 pos, int32 frame);
  void SetCurvature(real curvature, int32 frame);
  bool IsEndpoint();
  void GetEndpointEdge(int32 *curveID, int32 *segID);
 
  bool    fSelected;
  bool    fPrevSelected;
  LM_Vector2  fPos;
  LM_Vector2  fTempPos;
  AnimVec2  fAnimPos;
  AnimVal    fWidth;
  real    fTempWidth;
  int32    fParent;
};