DEFINE_STANDARD_ALLOC
- //! Determines the orientation vector corresponding
- //! to the predefined orientation type.
- Standard_EXPORT static Graphic3d_Vector GetProjAxis (const V3d_TypeOfOrientation Orientation);
+ //! Determines the orientation vector corresponding to the predefined orientation type.
+ static gp_Dir GetProjAxis (const V3d_TypeOfOrientation theOrientation)
+ {
+ switch (theOrientation)
+ {
+ case V3d_Xpos: return gp::DX();
+ case V3d_Ypos: return gp::DY();
+ case V3d_Zpos: return gp::DZ();
+ case V3d_Xneg: return -gp::DX();
+ case V3d_Yneg: return -gp::DY();
+ case V3d_Zneg: return -gp::DZ();
+ case V3d_XposYposZpos: return gp_Dir ( 1, 1, 1);
+ case V3d_XposYposZneg: return gp_Dir ( 1, 1, -1);
+ case V3d_XposYnegZpos: return gp_Dir ( 1, -1, 1);
+ case V3d_XposYnegZneg: return gp_Dir ( 1, -1, -1);
+ case V3d_XnegYposZpos: return gp_Dir (-1, 1, 1);
+ case V3d_XnegYposZneg: return gp_Dir (-1, 1, -1);
+ case V3d_XnegYnegZpos: return gp_Dir (-1, -1, 1);
+ case V3d_XnegYnegZneg: return gp_Dir (-1, -1, -1);
+ case V3d_XposYpos: return gp_Dir ( 1, 1, 0);
+ case V3d_XposYneg: return gp_Dir ( 1, -1, 0);
+ case V3d_XnegYpos: return gp_Dir (-1, 1, 0);
+ case V3d_XnegYneg: return gp_Dir (-1, -1, 0);
+ case V3d_XposZpos: return gp_Dir ( 1, 0, 1);
+ case V3d_XposZneg: return gp_Dir ( 1, 0, -1);
+ case V3d_XnegZpos: return gp_Dir (-1, 0, 1);
+ case V3d_XnegZneg: return gp_Dir (-1, 0, -1);
+ case V3d_YposZpos: return gp_Dir ( 0, 1, 1);
+ case V3d_YposZneg: return gp_Dir ( 0, 1, -1);
+ case V3d_YnegZpos: return gp_Dir ( 0, -1, 1);
+ case V3d_YnegZneg: return gp_Dir ( 0, -1, -1);
+ }
+ return gp_Dir (0, 0, 0);
+ }
//! Compute the graphic structure of arrow.
//! X0,Y0,Z0 : coordinate of the arrow.