IFrame_DG Interface
IFrame_DG is implemented by Frames.
A standalone frame can be constructed with a IObjectGenerator_DG.Create<IPointMatrix_DG>() call.
Properties
 PointDg Origin
Methods
 GetOrigin
 SetOrigin
 GetAxis
 GetAxisRay
 GetPlane
 Translate(VectDg)
 Translate(double,double,double)
 TranslateGlobal(VectDg)
 TranslateGlobal(double,double,double)
 Rotate(double,VectDg)
 Rotate(double,double,double,double)
 Rotate(double,LineDg)
 Rotate(double,double,double,double,double,double,double)
 Rotate(double,int)
 RotateGlobal(double,VectDg)
 RotateGlobal(double,LineDg)
 RotateGlobal(double,int)
 SetAxes
 SetupAxes
 Reset
 ResetOrientation
 Copy
 Push
 Pop
 ToLocal(PointDg)
 ToGlobal(PointDg)
 ToLocal(VectDg)
 ToGlobal(VectDg)
 ToLocal(LineDg)
 ToGlobal(LineDg)
 ToLocal(PlaneDg)
 ToGlobal(PlaneDg)
 ToLocal(IFrame_DG)
 ToGlobal(IFrame_DG)
 Invert
 Clone
 IsSame(IFrame_DG)
 IsSame(IFrame_DG,double)
 IsIdentity
void GetOrigin(out double x, out double y, out double z)
Returns global coordinates of the origin
void SetOrigin(double x, double y, double z)
x,y,z mist be global coordinates
void GetAxis(int index, out VectDg axis)
Coordinates of the returned vector are global
LineDg GetAxisRay(int index)
PlaneDg GetPlane(int index)
Returns a standard plane perpendicular to one of the axes. index is a zerobased index of the normal axis.
void Translate(VectDg vectBy)
vectBy is expected to have local coordinates (coordinates relative to the current state of the frame)
void Translate(double vx, double vy, double vz)
The coordinates are expected to be local (relative to the current state of the frame)
void TranslateGlobal(VectDg vectBy)
Coordinates of vectBy are assumed to be global.
void TranslateGlobal(double vx, double vy, double vz)
The parameters are assumed to be global coordinates.
void Rotate(double angle, VectDg axis)
angle is expected in radians. axis is expected to have coordinates relative to the current state of the frame
void Rotate(double angle, double vx, double vy, double vz)
angle is expected in radians. vx,vy,vz are expected to be relative to the current state of the frame.
void Rotate(double angle, Line_DG axis)
angle is expected in radians. axis is expected to have coordinates relative to the current state of the frame.
void Rotate(double angle, double xLocnAxis, double yLocnAxis, double zLocnAxis, double xDirAxis, double yDirAxis, double zDirAxis)
angle is expected in radians.
The coordinates are expected to be relative to the current state of the frame.
void Rotate(double angle, int axis)
angle is expected in radians.
axis is a 0based index of axis of this frame.
void RotateGlobal(double angle, VectDg axisGlobal)
angle is expected in radians.
Coordinates of axisGlobal are assumed to be global.
void RotateGlobal(double angle, Line_DG axisGlobal)
angle is expected in radians. Coordinates of axisGlobal are assumed to be global.
void RotateGlobal(double angle, int axis)
angle is expected in radians.
axis is a 0based index of axis of this frame.
void SetAxes(int axisInd0, VectDg axis0, int axisInd1, VectDg axis1)
angle is expected in radians. Coordinates of axis0 and axis1 are assumed to be global.
void SetupAxes(int axis0, VectDg axis, int axis1)
This method is designed to define orientation of the axes when direction of only one axis is specified and direction of the others are not important
so they can be constructed by an internal algorithm.
axis specifies direction of axis0th axis. axis1th axis is constructed to as orthogonal to axis
and points into an unspecified direction. The remaining axis is constructed as orthogonal to the first two.
void Reset()
Resets to default state: This frame coincides with the global frame
void ResetOrientation()
Resets axes to default state: Axes of this frame coincide with axes of the global frame. The origin remains unchanged
void Copy(IFrame_DG frame)
void Push()
Pushed the current state of the frame into an internal state stack
void Pop()
Restores this frame to the last state stored with Push(). Pops the stack
PointDg ToLocal(PointDg point)
Returns a copy of point with coordinates converted from global to local (to coordinates relative to this).
PointDg ToGlobal(PointDg point)
Returns a copy of point with coordinates converted from local to global.
VectDg ToLocal(VectDg vect)
Returns a copy of vect with coordinates converted from global to local.
VectDg ToGlobal(VectDg vect)
Returns a copy of vect with coordinates converted from local to global.
LineDg ToLocal(LineDg line)
Returns a copy of line with coordinates converted from global to local.
LineDg ToGlobal(LineDg line)
Returns a copy of line with coordinates converted from local to global.
PlaneDg ToLocal(PlaneDg plane)
Returns a copy of plane with coordinates converted from global to local.
PlaneDg ToGlobal(PlaneDg plane)
Returns a copy of plane with coordinates converted from local to global.
IFrame_DG ToLocal(IFrame_DG frame)
Returns a new frame with coordinates of origin and axes converted from global to local (to this).
IFrame_DG ToGlobal(IFrame_DG frame)
Returns a new frame with coordinates of origin and axes converted from local (from this) to global.
void Invert()
Inverts this frame. See Frames.
IFrame_DG Clone()
bool IsSame(IFrame_DG frame)
Returns true if frame is geometrically the same.
bool IsSame(IFrame_DG frame, double tolerance)
Returns true if frame is geometrically the same up to the tolerance.
bool IsIdentity()
Returns true if this is a global frame: The Orgin is (0,0,0) and the axes are (1,0,0),(0,1,0),(0,0,1).
bool IsIdentity(double tolerance)
Returns true if this is a global frame (Orgin is (0,0,0) and the axes are (1,0,0),(0,1,0),(0,0,1)) up to the tolerance.
