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