建自己的网站做外贸,郑州网络开发公司有哪些,辽宁住房和城乡建设厅网站,网站的前端开发opencascade AIS_Trihedron
前言 //! 创建一个可选择的三轴坐标系 //! 该三轴坐标系包括一个原点#xff0c;三个轴线和三个标签。 //! 标签的默认文本为 “X”, “Y”, “Z”。 //! 可以更改原点和任意轴线的颜色#xff0c;箭头和标签的颜色也可以改变。 //! 可视化呈现可…opencascade AIS_Trihedron
前言 //! 创建一个可选择的三轴坐标系 //! 该三轴坐标系包括一个原点三个轴线和三个标签。 //! 标签的默认文本为 “X”, “Y”, “Z”。 //! 可以更改原点和任意轴线的颜色箭头和标签的颜色也可以改变。 //! 可视化呈现可能显示为两种模式着色模式和线框模式默认为线框模式。 //! 有四种选择模式 //! - AIS_TrihedronSelectionMode_EntireObject 完整选择三轴坐标系优先级 1 //! - AIS_TrihedronSelectionMode_Origin 选择其原点优先级 5 //! - AIS_TrihedronSelectionMode_Axes 选择其轴线优先级 3 //! - AIS_TrihedronSelectionMode_MainPlanes 选择其主平面优先级 2 //! //! 警告 //! 用于显示三轴坐标系的默认长度单位是毫米 //! 而轴线的默认表示值为100。 //! 如果您修改了这些尺寸必须暂时恢复 Drawer。 //! 在其中您可以取得存储长度值的 Aspect。 //! 对于三轴坐标系这是 Prs3d_Drawer_LineAspect。 //! 您可以在此 Aspect 内部更改数值然后重新计算显示。
方法
1
初始化三轴坐标系实体。 Standard_EXPORT AIS_Trihedron (const Handle(Geom_Axis2Placement) theComponent);
2
返回数据显示模式。 Prs3d_DatumMode DatumDisplayMode() const { return myTrihDispMode; }
3
设置着色或线框显示模式相对使用三角形或线段图形组。 void SetDatumDisplayMode (Prs3d_DatumMode theMode) { myTrihDispMode theMode; }
4
返回在 SetComponent 中设置的右手坐标系。 const Handle(Geom_Axis2Placement) Component() const { return myComponent; }
5
构造右手坐标系 aComponent。 Standard_EXPORT void SetComponent (const Handle(Geom_Axis2Placement) theComponent);
6
如果三轴坐标系对象具有非默认大小每个轴线默认大小为100毫米则返回 true。 Standard_Boolean HasOwnSize() const { return myHasOwnSize; }
7
返回三轴坐标系对象的大小默认为100.0。 Standard_EXPORT Standard_Real Size() const;
8
设置三轴坐标系对象的大小。 Standard_EXPORT void SetSize (const Standard_Real theValue);
9
如果对象具有单一颜色则复制绘制器的默认大小否则DatumAspect 变为空。 Standard_EXPORT void UnsetSize();
10
如果三轴坐标系具有自定义文本颜色则返回 true。 Standard_Boolean HasTextColor() const { return myHasOwnTextColor; }
11
返回三轴坐标系文本颜色。 Standard_EXPORT Quantity_Color TextColor() const;
12
设置三轴坐标系轴线标签的颜色。 Standard_EXPORT void SetTextColor (const Quantity_Color theColor);
13
设置三轴坐标系轴线标签的颜色。 Standard_EXPORT void SetTextColor (const Prs3d_DatumParts thePart, const Quantity_Color theColor);
14
如果三轴坐标系具有自定义箭头颜色则返回 true。 Standard_Boolean HasArrowColor() const { return myHasOwnArrowColor; }
15
返回三轴坐标系箭头颜色。 Standard_EXPORT Quantity_Color ArrowColor() const;
16
设置三轴坐标系箭头颜色。 Standard_EXPORT void SetArrowColor (const Quantity_Color theColor);
17
设置三轴坐标系箭头颜色。 Standard_EXPORT void SetArrowColor (const Prs3d_DatumParts thePart, const Quantity_Color theColor);
18
返回数据部分的颜色原点或三轴坐标系的某些部分。 Standard_EXPORT Quantity_Color DatumPartColor (Prs3d_DatumParts thePart);
19
设置数据部分的颜色原点或三轴坐标系的某些部分。
20
如果显示模式为着色模式则此颜色设置为正反面的颜色。 Standard_EXPORT void SetDatumPartColor (const Prs3d_DatumParts thePart, const Quantity_Color theColor);
21
设置原点的颜色。 void SetOriginColor (const Quantity_Color theColor);
22
//! 设置x轴的颜色。 void SetXAxisColor (const Quantity_Color theColor);
23
设置y轴的颜色。 void SetYAxisColor (const Quantity_Color theColor);
24
设置z轴的颜色。
void SetAxisColor (const Quantity_Color theColor);
25
//! 如果要绘制箭头则返回 true。 Standard_Boolean ToDrawArrows() const;
26
//! 设置是否在可视化中绘制箭头。 void SetDrawArrows (const Standard_Boolean theToDraw);
27
//! 返回给定类型所有者的选择优先级。 Standard_Integer SelectionPriority (Prs3d_DatumParts thePart) { return mySelectionPriority[thePart]; }
28
//! 设置给定类型所有者的选择优先级。 void SetSelectionPriority (Prs3d_DatumParts thePart, Standard_Integer thePriority);
29
//! 返回轴线的文本。参数 thePart 应为 XAxis、YAxis 或 ZAxis。 const TCollection_ExtendedString Label (Prs3d_DatumParts thePart) { return myLabels[thePart]; }
30
设置三轴坐标系轴线的文本标签。参数 thePart 应为 XAxis、YAxis 或 ZAxis。 void SetLabel (const Prs3d_DatumParts thePart, const TCollection_ExtendedString theName);
31
//! 设置此三轴坐标系对象的颜色 theColor它改变轴线的颜色。 Standard_EXPORT virtual void SetColor (const Quantity_Color theColor) Standard_OVERRIDE;
32
//! 返回是否选定的显示模式 aMode 对于三轴坐标系数据有效。 virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer theMode) ; ####33 返回索引 3选择平面 XOY、YOZ、XOZ。 Standard_Integer Signature() const { return 3; }
33
表示交互对象类型为数据。 virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE { return AIS_KindOfInteractive_Datum; }
34
//! 移除颜色设置。 Standard_EXPORT virtual void UnsetColor() Standard_OVERRIDE;
35
清除属于此可选择对象的所有选定所有者用于快速显示绘制。 Standard_EXPORT virtual void ClearSelected() Standard_OVERRIDE;
36
绘制选定的所有者用于快速显示绘制。 Standard_EXPORT virtual void HilightSelected (const Handle(PrsMgr_PresentationManager) thePM, const SelectMgr_SequenceOfOwner theOwners) Standard_OVERRIDE;
37
高亮显示属于此可选择对象的所有者用于快速显示绘制。 Standard_EXPORT virtual void HilightOwnerWithColor (const Handle(PrsMgr_PresentationManager) thePM, const Handle(Prs3d_Drawer) theStyle,
使用实例
OpenCascade 中的 AIS_Trihedron 是用于绘制三轴坐标系的类通常用于可视化工程模型中的参考坐标系。以下是一个简单的示例展示如何创建和使用 AIS_Trihedron 包含必要的头文件 首先需要包含相关的 OpenCascade 头文件 #include AIS_Trihedron.hxx
#include Geom_Axis2Placement.hxx
#include gp_Ax2.hxx
#include Quantity_Color.hxx
#include Prs3d_DatumMode.hxx
#include Prs3d_Drawer.hxx
#include AIS_Drawer.hxx
#include V3d_Viewer.hxx
#include AIS_InteractiveContext.hxx创建三轴坐标系 使用 AIS_Trihedron 类创建一个三轴坐标系对象并设置其位置和显示选项 // 创建一个轴线的位置
gp_Ax2 anAxis(gp_Pnt(0, 0, 0), gp_Dir(0, 0, 1)); // 以原点为中心方向为Z轴// 创建三轴坐标系对象
Handle(Geom_Axis2Placement) anAxisPlacement new Geom_Axis2Placement(anAxis);
Handle(AIS_Trihedron) aTrihedron new AIS_Trihedron(anAxisPlacement);// 设置三轴坐标系的大小
aTrihedron-SetSize(200.0); // 设置大小为200mm// 设置三轴坐标系的显示模式为着色模式
aTrihedron-SetDatumDisplayMode(Prs3d_DM_Shaded);// 设置轴线颜色
Quantity_Color aColor(Quantity_NOC_RED); // 设置为红色
aTrihedron-SetColor(aColor);将三轴坐标系添加到视图中 将创建的三轴坐标系添加到 OpenCascade 的视图中例如 V3d_Viewer 和 AIS_InteractiveContext // 创建一个视图 viewer
Handle(V3d_Viewer) aViewer new V3d_Viewer();// 创建交互上下文 context
Handle(AIS_InteractiveContext) aContext new AIS_InteractiveContext(aViewer);// 将三轴坐标系添加到交互上下文中
aContext-Display(aTrihedron, Standard_True);处理交互操作 可以通过 AIS_InteractiveContext 处理用户交互操作例如选择、高亮等 // 选择对象
aContext-SetSelected(aTrihedron);// 高亮显示选定的对象
aTrihedron-HilightSelected(aContext-MainPrsMgr()-PresentationManager(), aContext-SelectedOwners());清除资源 在程序结束时记得清理资源 // 清除所有的显示对象
aContext-EraseAll();这些步骤展示了如何使用 AIS_Trihedron 类在 OpenCascade 中创建、显示和操作三轴坐标系对象。
参考