myeclipse做网站,万网主机 建网站,东莞纸箱定制 技术支持 东莞网站建设,阿凡达网站建设网AIS_InteractiveContext
前言
交互上下文#xff08;Interactive Context#xff09;允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是#xff0c;对于已经被交互上下文识别的交互对象#xff0c;必须使用上下文方法进行…AIS_InteractiveContext
前言
交互上下文Interactive Context允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是对于已经被交互上下文识别的交互对象必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中您才能直接调用交互对象的方法。
每个可选择的对象必须指定负责整体选择对象的选择模式全局选择模式。交互上下文本身支持使用选择过滤器进行分解对象的选择。默认情况下全局选择模式等于0但如果需要可以重新定义。
方法object display management 对象显示管理
1AIS_InteractiveContext()
AIS_InteractiveContext::AIS_InteractiveContext (const Handle V3d_Viewer MainViewer)
构造由主视图器 MainViewer 定义的交互上下文对象。
###:2~AIS_InteractiveContext()
virtual AIS_InteractiveContext::~AIS_InteractiveContext ()
虚析构函数。
3DisplayStatus()
PrsMgr_DisplayStatus AIS_InteractiveContext::DisplayStatus (const Handle AIS_InteractiveObject anIobj) const
返回实体 anIobj 的显示状态。显示状态可以是以下几种之一
AIS_DS_Displayed在主视图器中显示。AIS_DS_Erased在主视图器中隐藏。AIS_DS_Temporary临时显示。AIS_DS_None未显示在任何地方。
4Status()
void AIS_InteractiveContext::Status (const Handle AIS_InteractiveObject anObj, TCollection_ExtendedString astatus) const
返回交互对象 anObj 在交互上下文中的视图状态。
这意味着该方法将获取指定交互对象在当前上下文中的状态并将状态信息存储在 astatus 参数中。
5IsDisplayed() [1/2]
Standard_Boolean AIS_InteractiveContext::IsDisplayed (const Handle AIS_InteractiveObject anIobj) const
如果对象在交互上下文中显示返回 true。
6IsDisplayed() [2/2]
Standard_Boolean AIS_InteractiveContext::IsDisplayed (const Handle AIS_InteractiveObject anIobj, const Standard_Integer aMode) const
如果对象在交互上下文中以特定模式显示返回 true。
7SetAutoActivateSelection()
void AIS_InteractiveContext::SetAutoActivateSelection (const Standard_Boolean theIsAuto) inline
启用或禁用在显示对象时自动激活默认选择模式。
8GetAutoActivateSelection()
Standard_Boolean AIS_InteractiveContext::GetAutoActivateSelection () const inline
管理是否在显示新对象时自动激活默认选择模式默认值为 TRUE。
9Display() 方法翻译
9.1Display() [1/3]
void AIS_InteractiveContext::Display (const HandleAIS_InteractiveObject theIObj, const Standard_Boolean theToUpdateViewer)
使用默认显示模式在此上下文中显示对象。这将是对象的默认显示模式如果有的话。否则将使用上下文模式。如果 GetAutoActivateSelection() 为 TRUE则激活交互对象的默认选择模式。通常情况下这是 0。
9.2Display() [2/3]
void AIS_InteractiveContext::Display (const HandleAIS_InteractiveObject theIObj, const Standard_Integer theDispMode, const Standard_Integer theSelectionMode, const Standard_Boolean theToUpdateViewer, const PrsMgr_DisplayStatus theDispStatus PrsMgr_DisplayStatus_None)
设置指定对象的状态、显示模式和选择模式。如果 theSelectionMode 等于 -1theIObj 将不会被激活它将被显示但不会是可选择的。
9.3Display() [3/3]
void AIS_InteractiveContext::Display (const HandleAIS_InteractiveObject theIObj, const Standard_Integer theDispMode, const Standard_Integer theSelectionMode, const Standard_Boolean theToUpdateViewer, const Standard_Boolean theToAllowDecomposition, const PrsMgr_DisplayStatus theDispStatus PrsMgr_DisplayStatus_None)
inline 已弃用: 使用过时参数 theToAllowDecomposition 的 Display() 方法已弃用。
10Load() 方法翻译
10.1Load() [1/2]
void AIS_InteractiveContext::Load (const HandleAIS_InteractiveObject theObj, const Standard_Integer theSelectionMode -1)
允许使用给定的选择模式和/或所需的分解选项加载交互对象无论对象是否可视化。加载的对象将是可选择的但仅在被选择器检测到时才以高亮显示。
10.2Load() [2/2]
void AIS_InteractiveContext::Load (const HandleAIS_InteractiveObject theObj, Standard_Integer theSelectionMode, Standard_Boolean)
inline 已弃用: 使用过时参数 theToAllowDecomposition 的 Load() 方法已弃用。
11Erase()
功能 隐藏对象。参数 theIObj要隐藏的对象。theToUpdateViewer是否更新视图以反映更改。 描述 对象的表示仅标记为不可见因此将被排除在重绘之外。要显示隐藏的对象请使用 Display() 方法。
12EraseAll()
功能 隐藏所有对象。参数 theToUpdateViewer是否更新视图以反映更改。 描述 对象的表示仅标记为不可见因此将被排除在重绘之外。要显示所有隐藏的对象请使用 DisplayAll() 方法。
13DisplayAll()
功能 显示所有隐藏的对象。参数 theToUpdateViewer是否更新视图以反映更改。 描述 该方法用于显示所有之前隐藏的对象使它们再次可见。
14EraseSelected()
功能 隐藏选定的对象。参数 theToUpdateViewer是否更新视图以反映更改。 描述 该方法用于隐藏选定的对象使其不再可见。对象的显示状态将被标记为隐藏因此在重绘时将被排除。要显示隐藏的对象请使用 Display() 方法。
15DisplaySelected()
功能 显示当前选定的对象。参数 theToUpdateViewer是否更新视图以反映更改。描述 该方法用于显示当前选定的对象使其可见。如果对象已被隐藏则会显示出来。
16ClearPrs
清空由 theMode 索引的模式的图形呈现。注意会移除 theIObj。如果 theIObj 之前被激活它仍然是激活状态。
17Remove
从每个视图中移除对象。
18RemoveAll
从上下文中移除所有对象
19Redisplay
重载1 重新计算给定类型和给定签名的已显示对象的 Prs/选择。如果签名 -1则不考虑签名标准。
20Redisplay
重载2 重新计算对象的可见部分的呈现。如果 theAllModes 为 true即使是不可见的所有呈现也都存在于对象中。
21RecomputePrsOnly
重新计算已显示的呈现并标记其他呈现。但不更新这些呈现。
22 RecomputeSelectionOnly
重新计算活动选择并标记其他选择。但不更新这些呈现。
23Update
通过检查和重新计算标记为“需要重新计算”的呈现和选择结构来更新显示的交互对象。此方法不会强制任何重新计算。该方法即使在特定选择器中加载而未激活也会重新计算选择。
highlighting management
24Update
HighlightStyle() [1/4]
inline const Handle Prs3d_Drawer AIS_InteractiveContext::HighlightStyle() const返回当前动态突出显示样式设置对应于 Prs3d_TypeOfHighlight_Dynamic。这只是一个指向 HighlightStyle(Prs3d_TypeOfHighlight_Dynamic) 的快捷方式。
HighlightStyle() [2/4]
Standard_Boolean AIS_InteractiveContext::HighlightStyle(const Handle AIS_InteractiveObject theObj, Handle Prs3d_Drawer theStyle) const如果对象标记为通过全局状态进行突出显示则返回对象的突出显示样式。 参数
theObj [in] 要检查的对象
HighlightStyle() [3/4]
Standard_Boolean AIS_InteractiveContext::HighlightStyle(const Handle SelectMgr_EntityOwner theOwner, Handle Prs3d_Drawer theStyle) const如果选择了所有者则返回所有者的突出显示样式。 参数
theOwner [in] 要检查的所有者
HighlightStyle() [4/4]
inline const Handle Prs3d_Drawer AIS_InteractiveContext::HighlightStyle(const Prs3d_TypeOfHighlight theStyleType) const返回默认的突出显示样式设置可以被 PrsMgr_PresentableObject 覆盖。
提示尽管突出显示样式由 Prs3d_Drawer 定义但在大多数情况下实际上只会使用从其基类 Graphic3d_PresentationAttributes 派生的一小组属性。
所有类型的默认突出显示样式为 Aspect_TOHM_COLOR。其他默认值
Prs3d_TypeOfHighlight_Dynamic 颜色Quantity_NOC_CYAN1;图层Graphic3d_ZLayerId_Top对象突出显示绘制在立即层内的主场景顶部因此 V3d_View::RedrawImmediate() 将足以看到更新 Prs3d_TypeOfHighlight_LocalDynamic 颜色Quantity_NOC_CYAN1;图层Graphic3d_ZLayerId_Topmost对象部分突出显示绘制在立即层内的主场景顶部并清除深度即使重叠的几何体也将被显示 Prs3d_TypeOfHighlight_Selected 颜色Quantity_NOC_GRAY80;图层Graphic3d_ZLayerId_UNKNOWN对象突出显示绘制在与对象本身相同的层内例如默认情况下为 Graphic3d_ZLayerId_Default并增加了优先级。
参数
[in] theStyleType 要修改的突出显示样式 返回 与指定突出显示类型相关联的绘图器
另请参阅
使用 Prs3d_TypeOfHighlight_Dynamic 和 Prs3d_TypeOfHighlight_LocalDynamic 类型的 MoveTo()使用 Prs3d_TypeOfHighlight_Selected 和 Prs3d_TypeOfHighlight_LocalSelected 类型的 SelectDetected()PrsMgr_PresentableObject::DynamicHilightAttributes() 在对象级别上覆盖 Prs3d_TypeOfHighlight_Dynamic 和 Prs3d_TypeOfHighlight_LocalDynamic 的默认值PrsMgr_PresentableObject::HilightAttributes() 在对象级别上覆盖 Prs3d_TypeOfHighlight_Selected 和 Prs3d_TypeOfHighlight_LocalSelected 的默认值
25SetHighlightStyle() [1/2]
设置与 Prs3d_TypeOfHighlight_Selected 对应的动态突出显示样式。这只是一个指向 SetHighlightStyle(Prs3d_TypeOfHighlight_Dynamic, theStyle) 的快捷方式。
SetHighlightStyle() [2/2]
设置突出显示样式设置。提示最好修改由方法 HighlightStyle() 返回的现有样式而不是创建新的 Prs3d_Drawer以避免由于错误配置而导致意外结果。
如果创建了新的突出显示样式请务必检查其演示 Z 层否则突出显示可能无法按预期工作。
26SelectionStyle
返回当前选择样式设置对应于 Prs3d_TypeOfHighlight_Selected。这只是一个指向 HighlightStyle(Prs3d_TypeOfHighlight_Selected) 的快捷方式。
27:SetSelectionStyle
设置选择突出显示的样式。这只是一个指向 SetHighlightStyle(Prs3d_TypeOfHighlight_Selected, theStyle) 的快捷方式。
28HilightWithColor
更改视图中对象的所有线条的颜色。
29Unhilight
从对象中移除突出显示。
30DisplayPriority
返回对象的显示优先级。
31SetDisplayPriority
重载1设置对象可见部分呈现的显示优先级。 重载2(“从 OCCT7.7 开始已弃用应该传递 Graphic3d_DisplayPriority 而不是整数到 SetDisplayPriority() 函数”)
32GetZLayer
获取设置为显示的交互对象的 Z 层 ID。
33SetZLayer
为交互对象设置 Z 层 ID。Z 层可以用于在场景中的其他对象前临时显示某个对象的呈现。Z 层的 ID 由 V3d_Viewer 生成。
34SetViewAffinity
设置在指定视图中的对象可见性。如果对象在此上下文中未显示则没有效果。
Display Mode management
35DisplayMode
返回默认使用的显示模式设置。
36SetDisplayMode
重载1设置可见交互对象的显示模式。theMode 提供实体 theIObj 的显示模式索引。 重载2设置可见交互对象没有重写显示模式的对象的显示模式。
37UnsetDisplayMode
取消设置可见交互对象的显示模式。
object local transformation management
38SetLocation
将位置放在对象的初始图形表示和选择上。
39ResetLocation
将对象放回其初始位置。
40HasLocation
如果对象有位置则返回 true。
41Location
返回对象的位置。
42SetTransformPersistence
设置变换持久性。
mouse picking logic (detection and dynamic highlighting of entities under cursor)鼠标选择逻辑检测和动态突出显示光标下的实体。
43SetPixelTolerance
设置 MoveTo() 操作的像素容差。
44PixelTolerance
返回像素容差默认为 2。像素容差扩展了 MoveTo() 操作中的灵敏度通过点拾取可以根据用户输入精度例如屏幕像素密度、输入设备精度等由应用程序进行调整。
45SetSelectionSensitivity
允许管理交互对象 theObject 的特定选择的灵敏度并将选择中以 theMode 为前提的所有敏感实体的先前灵敏度值更改为给定的 theNewSensitivity。
46LastActiveView
返回上一个活动视图MoveTo()/Select() 方法的参数。
47MoveTo
重载1将轴 theAxis 传递给交互上下文选择器。这是由视图 theView 通过将该轴传递给主观察者并更新来完成的。如果将 ToRedrawOnUpdate 设置为 false则被调用者应该调用 RedrawImmediate() 来突出显示检测到的对象。 重载2突出显示检测到的对象。如果将 ToRedrawOnUpdate 设置为 false则被调用者应该调用 RedrawImmediate() 来更新视图。 重载3将以像素为单位的鼠标位置 theXPix 和 theYPix 转发给交互上下文选择器。这是通过视图 theView 将该位置传递给主观察者并更新来完成的。如果将 ToRedrawOnUpdate 设置为 false则被调用者应该调用 RedrawImmediate() 来突出显示检测到的对象。
另请参阅
PickingStrategy()HighlightStyle() 定义检测到的所有者的默认动态突出显示样式Prs3d_TypeOfHighlight_Dynamic 和 Prs3d_TypeOfHighlight_LocalDynamicPrsMgr_PresentableObject::DynamicHilightAttributes() 定义检测到的所有者的每个对象动态突出显示样式覆盖默认值
48ClearDetected
清除由 MoveTo() 检测到的实体列表并重置动态突出显示。
参数
theToRedrawImmediate如果为 TRUE则主 Viewer 将在更新时重绘
返回值
如果视图需要更新例如实际上存在动态突出显示的实体则返回 TRUE
49HasDetected
如果上下文中有鼠标检测到的实体则返回 true。
另请参阅
DetectedOwner()HasNextDetected()HilightPreviousDetected()HilightNextDetected()
50DetectedOwner
返回当前动态突出显示的检测到的敏感原始物的所有者。警告此方法与 InitDetected()/MoreDetected()/NextDetected() 无关。
另请参阅
HasDetected()HasNextDetected()HilightPreviousDetected()HilightNextDetected()
51DetectedInteractive
返回上下文中最后检测到的交互对象。通常这只是 DetectedOwner()-Selectable() 的 Handle(AIS_InteractiveObject)::DownCast() 包装。
另请参阅
DetectedOwner()
52HasDetectedShape
如果本地上下文中存在检测到的形状则返回 true。
另请参阅
HasDetected()DetectedShape()
已弃用 (“本地上下文已弃用 - 应该使用无本地上下文的本地选择”)
53DetectedShape
返回本地上下文中检测到的形状。
另请参阅
DetectedOwner()
已弃用 (“本地上下文已弃用 - 应该使用无本地上下文的本地选择”)
54HasNextDetected
如果在上次鼠标检测中检测到了其他实体则返回 True。
另请参阅
HilightPreviousDetected()HilightNextDetected()
56HilightNextDetected
如果选择器检测到多个对象则只有“最佳”所有者会在鼠标位置突出显示。该方法允许用户依次突出显示其他检测到的实体。如果调用 select 方法则所选实体将成为突出显示的实体警告循环方法。当所有检测到的实体都已突出显示时下一次调用将再次突出显示第一个实体。
返回值 突出显示实体的排名
另请参阅
HasNextDetected()HilightPreviousDetected()
57HilightPreviousDetected
与前面的方法相同但是在相反的方向上。
另请参阅
HasNextDetected()HilightNextDetected()
iteration through detected entities 迭代检测到的实体
58InitDetected
初始化迭代器以便在交互上下文中或本地上下文中如果已打开迭代鼠标检测到的对象。
另请参阅
DetectedCurrentOwner()MoreDetected()NextDetected()
60MoreDetected
如果在迭代鼠标检测到的交互对象期间当前对象之后还有更多鼠标检测到的对象则返回 TRUE。
另请参阅
DetectedCurrentOwner()InitDetected()NextDetected()
61NextDetected
在迭代鼠标检测到的交互对象期间获取下一个当前对象。
另请参阅
DetectedCurrentOwner()InitDetected()MoreDetected()
62DetectedCurrentOwner
返回由当前迭代器位置指向的检测到列表中的所有者。警告此方法与 DetectedOwner() 无关后者返回最后选择的所有者而不管迭代器位置如何
另请参阅
InitDetected()MoreDetected()NextDetected()
Selection management
续看篇章2