-
指定放缩平移旋转的显示实现
继承Standard_Transient并实现相关方法,参考类V3d_Trihedron。
在构造函数中增加:
myTransformPers = new Graphic3d_TransformPers(Graphic3d_TMF_2d, Aspect_TOTP_CENTER);
SetPosition(Aspect_TOTP_CENTER);
其中,Graphic3d_TransformPers的第一个参数如下:
enum Graphic3d_TransModeFlags
{
Graphic3d_TMF_None = , //!< no persistence attributes (normal D object)
Graphic3d_TMF_ZoomPers = , //!< object does not resize
Graphic3d_TMF_RotatePers = , //!< object does not rotate;
Graphic3d_TMF_TriedronPers = , //!< object behaves like trihedron - it is fixed at the corner of view and does not resizing (but rotating)
Graphic3d_TMF_2d = , //!< object is defined in D screen coordinates (pixels) and does not resize, pan and rotate
Graphic3d_TMF_ZoomRotatePers = Graphic3d_TMF_ZoomPers
| Graphic3d_TMF_RotatePers //!< object doesn't resize and rotate
};
Graphic3d_TransformPers的第二个参数如下:
enum Aspect_TypeOfTriedronPosition
{
Aspect_TOTP_CENTER = , //!< at the center of the view
Aspect_TOTP_TOP = , //!< at the middle of the top side
Aspect_TOTP_BOTTOM = , //!< at the middle of the bottom side
Aspect_TOTP_LEFT = , //!< at the middle of the left side
Aspect_TOTP_RIGHT = , //!< at the middle of the right side
Aspect_TOTP_LEFT_LOWER = Aspect_TOTP_BOTTOM
| Aspect_TOTP_LEFT, //!< at the left lower corner
Aspect_TOTP_LEFT_UPPER = Aspect_TOTP_TOP
| Aspect_TOTP_LEFT, //!< at the left upper corner
Aspect_TOTP_RIGHT_LOWER = Aspect_TOTP_BOTTOM
| Aspect_TOTP_RIGHT, //!< at the right lower corner
Aspect_TOTP_RIGHT_UPPER = Aspect_TOTP_TOP
| Aspect_TOTP_RIGHT, //!< at the right upper corner
};
调用方法:
my_note_value_->SetLabelsColor(Quantity_NOC_TURQUOISE);
my_note_value_->SetScale(aTrihedronScale);
my_note_value_->SetPosition(Aspect_TOTP_CENTER);
my_note_value_->SetWireframe(V3d_ZBUFFER == V3d_WIREFRAME);
my_note_value_->Display(*view_);