opencascade V3d_View 源码学习 原创
类V3d_View
前言
V3d_View
类是 Open CASCADE Technology(OCCT)中的关键类之一,用于管理三维视图。以下是 V3d_View
类的主要功能和特点:
-
三维视图管理:
V3d_View
类提供了管理三维视图的功能,包括创建、配置和显示三维场景。 -
交互式操作: 可以通过
V3d_View
类来实现用户与三维场景的交互操作,例如旋转、平移、缩放等。 -
图形显示: 通过
V3d_View
类,可以在三维视图中显示图形对象,包括几何体、形状、线条等。 -
多视图支持: OCCT 允许在一个窗口中创建多个
V3d_View
实例,从而支持多视图显示。 -
图形属性设置: 可以通过
V3d_View
类设置图形的各种属性,如颜色、线型、标记等,以及光照、背景色等视觉效果。 -
事件处理:
V3d_View
类提供了事件处理机制,用于捕获用户交互事件,如鼠标点击、键盘操作等。 -
窗口管理:
V3d_View
类可以与窗口进行关联,实现在窗口中显示三维视图。 -
动态更新: 支持动态更新视图内容,以便在需要时重新绘制、重置视图。
总的来说,V3d_View
类是 OCCT 中用于创建和管理三维视图的核心类之一。
翻译
V3d_View() [1/2]
V3d_View::V3d_View(const Handle< V3d_Viewer >& theViewer, const V3d_TypeOfView theType = V3d_ORTHOGRAPHIC)
初始化视图。
V3d_View() [2/2]
V3d_View::V3d_View(const Handle< V3d_Viewer >& theViewer, const Handle< V3d_View >& theView)
通过复制初始化视图。
~V3d_View()
virtual V3d_View::~V3d_View()
默认析构函数。
Member Function Documentation
ActiveLight()
const Handle< V3d_Light >& V3d_View::ActiveLight() const
已弃用:(“已弃用的方法 - 应使用ActiveLights()”)
ActiveLightIterator()
V3d_ListOfLightIterator V3d_View::ActiveLightIterator() const
返回定义的光源的迭代器。
ActiveLights()
const V3d_ListOfLight& V3d_View::ActiveLights() const
返回活动光源的列表。
AddClipPlane()
virtual void V3d_View::AddClipPlane(const Handle< Graphic3d_ClipPlane >& thePlane)
将裁剪平面添加到视图。裁剪平面的组合将渲染空间截断为凸体积。可以通过关联的Graphic3d_GraphicDriver的PlaneLimit方法查看支持的裁剪平面数量。请注意,在渲染过程中会忽略超过限制的平面。
参数:
thePlane [in] 要添加到视图的裁剪平面。
AddSubview()
void V3d_View::AddSubview(const Handle< V3d_View >& theView)
将子视图添加到列表中。
At()
void V3d_View::At(Standard_Real& X, Standard_Real& Y, Standard_Real& Z) const
返回视图点的位置。
AutoZFit()
void V3d_View::AutoZFit() const
如果自动Z范围适应已打开,则使用ZFitAll调整Z-min和Z-max投影体积平面。
AutoZFitMode()
Standard_Boolean V3d_View::AutoZFitMode() const
如果自动Z适配模式已打开,则返回TRUE。
AutoZFitScaleFactor()
Standard_Real V3d_View::AutoZFitScaleFactor() const
返回自动Z适配模式的比例因子参数。
AxialScale() [1/2]
void V3d_View::AxialScale(const Standard_Integer Dx, const Standard_Integer Dy, const V3d_TypeOfAxe Axis)
沿给定的轴进行各向异性缩放视图。缩放因子是基于鼠标指针位移<Dx,Dy>计算的。然后将计算的比例因子传递给SetAxialScale(Sx,Sy,Sz)方法。
AxialScale() [2/2]
void V3d_View::AxialScale(Standard_Real& Sx, Standard_Real& Sy, Standard_Real& Sz) const
返回各向异性(轴向)缩放因子的当前值。
BackFacingModel()
Graphic3d_TypeOfBackfacingModel V3d_View::BackFacingModel() const
返回背面显示的当前状态;默认为Graphic3d_TypeOfBackfacingModel_Auto,这意味着背面剔除由每个呈现定义。
BackgroundColor() [1/2]
Quantity_Color V3d_View::BackgroundColor() const
返回视图的背景颜色对象。
BackgroundColor() [2/2]
void V3d_View::BackgroundColor(const Quantity_TypeOfColor Type, Standard_Real& V1, Standard_Real& V2, Standard_Real& V3) const
根据颜色类型返回视图的背景颜色值。
BackgroundSkydome()
const Aspect_SkydomeBackground& V3d_View::BackgroundSkydome() const
返回天穹背景。
Camera()
const Handle< Graphic3d_Camera >& V3d_View::Camera() const
返回视图的相机对象。
ChangeRenderingParams()
Graphic3d_RenderingParams& V3d_View::ChangeRenderingParams()
返回当前渲染参数和效果设置的引用。
ClearPBREnvironment()
void V3d_View::ClearPBREnvironment(Standard_Boolean theToUpdate = Standard_False)
禁用背景立方体贴图中的IBL;用白色填充PBR镜面探针和辐照度图。
ClipPlanes()
const Handle< Graphic3d_SequenceOfHClipPlane >& V3d_View::ClipPlanes() const
获取裁剪平面。
Returns:已设置视图的序列裁剪平面
ComputedMode()
Standard_Boolean V3d_View::ComputedMode() const
返回计算的HLR模式状态。
Convert() [1/6]
Standard_Real V3d_View::Convert(const Standard_Integer Vp) const
将像素值转换为投影平面上的值。
Convert() [2/6]
void V3d_View::Convert(const Standard_Integer Xp, const Standard_Integer Yp, Standard_Real& X, Standard_Real& Y, Standard_Real& Z) const
将投影点转换为与视图对应的参考框架中与眼睛/视图点矢量的投影平面的交点对应的点。
Convert() [3/6]
void V3d_View::Convert(const Standard_Integer Xp, const Standard_Integer Yp, Standard_Real& Xv, Standard_Real& Yv) const
将点像素转换为在投影平面的参考框架中投影的点。
Convert() [4/6]
Standard_Integer V3d_View::Convert(const Standard_Real Vv) const
将投影平面的值转换为像素值。
Convert() [5/6]
void V3d_View::Convert(const Standard_Real X, const Standard_Real Y, const Standard_Real Z, Standard_Integer& Xp, Standard_Integer& Yp) const
将在视图的参考框架中定义的点投影到关联窗口中的投影点。
Convert() [6/6]
void V3d_View::Convert(const Standard_Real Xv, const Standard_Real Yv, Standard_Integer& Xp, Standard_Integer& Yp) const
将在投影平面的参考框架中定义的点转换为像素点。
#### ConvertToGrid() [1/2]
将投影点转换为视图参考框架中与视点/视图点矢量的投影平面相交对应的最近网格点,并显示网格标记。警告:当网格未激活时,结果与上述 Convert() 方法相同。如何使用:1) 启用网格回显显示 myViewer->SetGridEcho(Standard_True); 2) 当应用程序接收到移动事件时:2.1) 检查是否检测到任何对象 if( myInteractiveContext->MoveTo(x,y) == AIS_SOD_Nothing ) { 2.2) 检查网格是否处于活动状态 if( myViewer->Grid()->IsActive() ) { 2.3) 显示网格回显并获取网格点 myView->ConvertToGrid(x,y,X,Y,Z); myView->Viewer()->ShowGridEcho (myView, Graphic3d_Vertex (X,Y,Z)); myView->RedrawImmediate(); 2.4) 否则,这是标准情况 } else myView->Convert(x,y,X,Y,Z);.
ConvertToGrid() [2/2]
将点转换为最近的网格点并显示网格标记。
ConvertWithProj()
将投影点转换为视图参考框架中与视点/视图点矢量的投影平面相交对应的点,并返回投影射线以进行进一步计算。
DefaultCamera()
返回默认摄像机。
Depth()
返回眼睛和视点之间的距离。
DepthFitAll()
调整视图体积,以避免通过前面和后面的剪切平面剪切显示的对象。还根据计算出的 Z 大小和 Aspect 参数自动设置深度值。注意:视图的原始 XY 大小不会被修改。
DiagnosticInformation()
使用诊断信息填充字典。应在渲染线程内调用。
DoMapping()
必须在支持视图的窗口映射或取消映射时调用。
Dump()
将视图的完整内容转储到图像文件中。
DumpJson()
将我的内容转储到流中。
Eye()
返回眼睛的位置。
FitAll() [1/3]
根据给定的自定义边界框调整视图参数以适应显示的场景,保持高度/宽度比例。如果边界系数小于 0 或大于等于 1,则抛出程序错误异常。更新视图。
FitAll() [2/3]
根据显示的场景调整视图参数,保持高度/宽度比例。如果 AutoZFit 标志为 TRUE,则适合 Z 剪切范围(深度范围)。如果边界系数小于 0 或大于等于 1,则抛出程序错误异常。更新视图。
FitAll() [3/3]
将定义的投影窗口居中,以便占据最大空间,同时保持初始高度/宽度比。注意:视图的原始 Z 大小不会被修改。
FitMinMax()
将摄像机眼睛、中心和比例变换为适合传递的以 WCS 指定的边界框中的内容。
Focale()
对于透视视图,返回视平面距离。
FocalReferencePoint()
返回发出投影的点的位置。
GeneratePBREnvironment()
激活来自背景立方体贴图的图像基础照明(IBL)。
GetGraduatedTrihedron()
返回分级三棱锥的数据。
GradientBackground()
返回视图的渐变背景。
GradientBackgroundColors()
返回视图的渐变背景颜色。
GraduatedTrihedronDisplay()
显示一个分级三棱锥。
GraduatedTrihedronErase()
从视图中擦除分级三棱锥。
GravityPoint()
返回视图中所有可见点的对象数和重心。
IfMoreLights()
如果在此视图中可以激活一个以上的光源,则返回 True。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
IfWindow()
如果 MyView 与窗口关联,则返回 True。
ImmediateUpdate()
返回 True 如果在此视图中可以激活一个以上的光源。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
InitActiveLights()
初始化对活动光源的迭代。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
Invalidate()
使视图内容失效,但不重新绘制。
InvalidateImmediate()
在即时图层中使视图内容无效,但不重新绘制。
IsActiveLight()
如果在此视图中激活了光源,则返回 TRUE。
IsCullingEnabled()
返回对象裁剪机制的标志值。
IsEmpty()
返回视图关于内部显示结构的状态。如果视图为空,则返回 True。
IsImageBasedLighting()
如果启用了来自背景立方体贴图的图像基础照明(IBL),则返回 TRUE。
IsInvalidated()
如果缓存视图内容已失效,则返回 true。
IsInvalidatedImmediate()
如果即时图层内容已失效,则返回 true。
IsSubview()
如果这是另一个视图的子视图,则返回 TRUE。
LightLimit()
返回与视图关联的最大光源数。
MoreActiveLights()
如果还有更多活动的光源,则返回 true。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
Move() [1/3]
平行移动视点,距离为相对于初始位置的值,以屏幕参考坐标系的方向为准。
Move() [2/3]
平行移动视点,距离为相对于初始位置的值,以当前轴的方向为准。
Move() [3/3]
平行移动视点,距离为相对于初始位置的值,以视图的坐标系中的一个轴的方向为准。
MustBeResized()
当支持视图的窗口大小更改时必须调用此方法。如果视图未映射到窗口,则警告:为了保持窗口的高度/宽度比,视图会居中并调整大小。
NextActiveLights()
转到下一个活动光源(如果没有,ActiveLight 将引发异常)。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
Pan()
沿视图投影的 “x” 和 “y” 轴平移视图中心。
Panning()
沿视图投影的 “x” 和 “y” 轴平移视图中心。
ParentView()
返回父视图,如果这不是另一个视图的子视图,则返回 NULL。
PickSubview()
从给定的 2D 点中选择子视图。
Place()
将与像素位置 x、y 对应的视图点放置在窗口中心并更新视图。
PlaneLimit()
返回与视图关联的剪切平面的最大数目。
Proj()
返回投影向量。
Project() [1/2]
将在视图的用户空间中定义的点转换为相对于 Z 的深度的投影平面。
Project() [2/2]
将在视图的用户空间中定义的点转换为相对于 Z 的深度的投影平面。
ProjReferenceAxe()
返回视图中点 (Xpix,Ypix) 的坐标 (XP,YP,ZP),以及通过该点的视图的投影向量(对于透视视图)。
Redraw()
重新显示视图,即使没有进行任何修改也必须调用它。如果视图已显示,则必须调用它。(例如:取消图标化)。
RedrawImmediate()
更新即时呈现图层。
Remove()
销毁视图。
RemoveClipPlane()
从视图中移除剪切平面。
RemoveSubview()
从列表中删除子视图。
RenderingParams()
返回当前的渲染参数和效果设置。默认情况下,它返回当前查看器的默认参数。要定义视图特定的设置,请使用方法 V3d_View::ChangeRenderingParams()。
Reset()
重置视图的居中和方向。
ResetViewMapping()
重置视图的居中。
ResetViewOrientation()
重置视图的方向。
Rotate() [1/5]
以弧度为单位,绕当前轴旋转视点。
Rotate() [2/5]
绕屏幕的参考坐标系旋转视点。
Rotate() [3/5]
绕屏幕的参考坐标系旋转视点,围绕重心点 (X,Y,Z)。
Rotate() [4/5]
绕视图的坐标轴之一旋转视点。
Rotate() [5/5]
绕视图的坐标轴之一旋转视点,围绕重心点 (X,Y,Z)。
Scale() [1/2]
/**
* 返回当前缩放值,相对于 SetViewMappingDefault()。
*/
Standard_Real V3d_View::Scale() const
Scale() [2/2]
/**
* 缩放相机以适应定义宽度和高度的视图框架,保持纵横比。对于正交相机,该方法改变缩放比例,对于透视相机,调整眼睛位置以围绕中心点。
* 参数:
* theSizeXv [in]:视口框架在 "x" 轴上的大小。
* theSizeYv [in]:视口框架在 "y" 轴上的大小。
*/
void V3d_View::Scale(
const Handle<Graphic3d_Camera>& theCamera,
const Standard_Real theSizeXv,
const Standard_Real theSizeYv
) const protected
SetAt()
/**
* 定义视点的位置。
* 参数:
* X:X 轴坐标。
* Y:Y 轴坐标。
* Z:Z 轴坐标。
*/
void V3d_View::SetAt(
const Standard_Real X,
const Standard_Real Y,
const Standard_Real Z
)
SetAutoZFitMode()
/**
* 设置自动 Z 适应模式及其参数。自动 Z 适应具有额外的参数,可以从应用程序级别进行控制,以确保视图体积的大小足够大,以覆盖未管理对象的深度,例如,变换持久对象。
* 参数:
* theIsOn:是否开启自动 Z 适应模式。
* theScaleFactor [in]:Z 范围的缩放因子。通过此系数缩放由 Z 适应方法计算的 Z-min、Z-max 投影体积平面之间的范围。如果传递了负值或零值,将引发程序错误异常。
*/
void V3d_View::SetAutoZFitMode(
const Standard_Boolean theIsOn,
const Standard_Real theScaleFactor = 1.0
)
SetAxialScale()
/**
* 为视图设置各向异性(轴向)缩放因子 <Sx>、<Sy>、<Sz>。通过将当前视图方向矩阵乘以缩放矩阵来执行各向异性缩放操作:
* || Sx 0 0 0 ||
* || 0 Sy 0 0 ||
* || 0 0 Sz 0 ||
* || 0 0 0 1 ||
* 更新视图。
* 参数:
* Sx:X 轴缩放因子。
* Sy:Y 轴缩放因子。
* Sz:Z 轴缩放因子。
*/
void V3d_View::SetAxialScale(
const Standard_Real Sx,
const Standard_Real Sy,
const Standard_Real Sz
)
SetAxis()
/**
* 根据其原点和方向定义轴。这将是旋转和移动的当前轴线。警告!如果法线向量为空,则从 V3d 引发 BadValue 异常。
* 参数:
* X、Y、Z:轴的方向。
* Vx、Vy、Vz:轴的法线。
*/
void V3d_View::SetAxis(
const Standard_Real X,
const Standard_Real Y,
const Standard_Real Z,
const Standard_Real Vx,
const Standard_Real Vy,
const Standard_Real Vz
)
SetBackFacingModel()
/**
* 管理背面的显示。
* 参数:
* theModel:背面模型的类型,默认为 Auto。
*/
void V3d_View::SetBackFacingModel(
const Graphic3d_TypeOfBackfacingModel theModel = Graphic3d_TypeOfBackfacingModel_Auto
)
SetBackgroundColor() [1/2]
/**
* 定义视图的背景颜色。
* 参数:
* theColor:颜色。
*/
void V3d_View::SetBackgroundColor(
const Quantity_Color& theColor
)
SetBackgroundColor() [2/2]
/**
* 根据颜色定义类型和三个对应值定义视图的背景颜色。
* 参数:
* theType:颜色定义类型。
* theV1、theV2、theV3:颜色值。
*/
void V3d_View::SetBackgroundColor(
const Quantity_TypeOfColor theType,
const Standard_Real theV1,
const Standard_Real theV2,
const Standard_Real theV3
)
SetBackgroundCubeMap()
/**
* 将环境立方体贴图设置为背景。
* 参数:
* theCubeMap:要设置为背景的立方体贴图源。
* theToUpdatePBREnv:定义是否生成 IBL 映射(参见 'GeneratePBREnvironment')。
* theToUpdate:是否更新视图。
*/
void V3d_View::SetBackgroundCubeMap(
const Handle<Graphic3d_CubeMap>& theCubeMap,
Standard_Boolean theToUpdatePBREnv = Standard_True,
Standard_Boolean theToUpdate = Standard_False
)
SetBackgroundImage() [1/2]
/**
* 通过提供纹理和填充方法(默认为居中)定义视图的背景纹理。
* 参数:
* theTexture:纹理。
* theFillStyle:填充方法,默认为 Aspect_FM_CENTERED。
* theToUpdate:是否更新视图。
*/
void V3d_View::SetBackgroundImage(
const Handle<Graphic3d_Texture2D>& theTexture,
const Aspect_FillMethod theFillStyle = Aspect_FM_CENTERED,
const Standard_Boolean theToUpdate = Standard_False
)
SetBackgroundImage() [2/2]
/**
* 通过提供纹理图像文件名和填充方法(默认为居中)定义视图的背景纹理。
* 参数:
* theFileName:纹理图像文件名。
* theFillStyle:填充方法,默认为 Aspect_FM_CENTERED。
* theToUpdate:是否更新视图。
*/
void V3d_View::SetBackgroundImage(
const Standard_CString theFileName,
const Aspect_FillMethod`
SetBgGradientColors()
/**
* @brief 设置视图的渐变背景颜色。
*
* 通过提供颜色和填充方法(默认为水平填充)定义视图的渐变背景颜色。
*
* @param theColor1 第一个颜色。
* @param theColor2 第二个颜色。
* @param theFillStyle 填充方法,默认为水平填充。
* @param theToUpdate 是否更新,默认为假。
*/
void V3d_View::SetBgGradientColors(const Quantity_Color &theColor1, const Quantity_Color &theColor2, const Aspect_GradientFillMethod theFillStyle = Aspect_GradientFillMethod_Horizontal, const Standard_Boolean theToUpdate = Standard_False);
SetBgGradientStyle()
/**
* @brief 定义视图的渐变背景填充方法。
*
* @param theMethod 渐变填充方法,默认为水平填充。
* @param theToUpdate 是否更新,默认为假。
*/
void V3d_View::SetBgGradientStyle(const Aspect_GradientFillMethod theMethod = Aspect_GradientFillMethod_Horizontal, const Standard_Boolean theToUpdate = Standard_False);
SetBgImageStyle()
/**
* @brief 定义视图的纹理背景填充方法。
*
* @param theFillStyle 填充方法。
* @param theToUpdate 是否更新,默认为假。
*/
void V3d_View::SetBgImageStyle(const Aspect_FillMethod theFillStyle, const Standard_Boolean theToUpdate = Standard_False);
SetCamera()
/**
* @brief 更改视图使用的相机。
*
* @param theCamera 使用的相机。
*/
void V3d_View::SetCamera(const Handle<Graphic3d_Camera> &theCamera);
SetCenter()
/**
* @brief 将屏幕中心重新定位到点,由{Xp,Yp}像素坐标相对于屏幕左下角确定。
*
* 为了计算来自世界坐标空间的任意点的像素坐标,可以使用“Project”进行投影。
*
* @param theXp x坐标。
* @param theYp y坐标。
*/
void V3d_View::SetCenter(const Standard_Integer theXp, const Standard_Integer theYp);
SetClipPlanes()
/**
* @brief 设置视图的裁剪平面序列。
*
* 设置视图的裁剪平面序列。之前设置的平面将从视图中移除。裁剪平面的组合将视图空间截断为凸体积。
*
* @param thePlanes 裁剪平面序列。
*/
void V3d_View::SetClipPlanes(const Handle<Graphic3d_SequenceOfHClipPlane> &thePlanes);
SetComputedMode()
/**
* @brief 切换视图中的计算HLR模式。
*
* @param theMode 模式。
*/
void V3d_View::SetComputedMode(const Standard_Boolean theMode);
SetDepth()
/**
* @brief 定义视图中眼睛到视点的深度,而不更新投影。
*
* @param Depth 深度。
*/
void V3d_View::SetDepth(const Standard_Real Depth);
SetEye()
/**
* @brief 定义眼睛的位置。
*
* @param X x坐标。
* @param Y y坐标。
* @param Z z坐标。
*/
void V3d_View::SetEye(const Standard_Real X, const Standard_Real Y, const Standard_Real Z);
SetFocale()
/**
* @brief 更改透视视图的视平面距离。
*
* 警告!如果视图不是透视视图,则会引发标准的类型不匹配异常。
*
* @param Focale 视平面距离。
*/
void V3d_View::SetFocale(const Standard_Real Focale);
SetFront()
/**
* @brief 修改视图的投影,使其垂直于观察者的特权平面。
*/
void V3d_View::SetFront();
SetFrustumCulling()
/**
* @brief 打开/关闭自动裁剪视锥体外部的对象(默认为开启)。
*
* @param theMode 模式。
*/
void V3d_View::SetFrustumCulling(Standard_Boolean theMode);
SetGrid()
/**
* @brief 定义或更新视图中网格的定义。
*
* @param aPlane 平面。
* @param aGrid 网格。
*/
void V3d_View::SetGrid(const gp_Ax3 &aPlane, const Handle<Aspect_Grid> &aGrid);
SetGridActivity()
/**
* @brief 定义或更新视图中网格的活动性。
*
* @param aFlag 活动性标志。
*/
void V3d_View::SetGridActivity(const Standard_Boolean aFlag);
SetImageBasedLighting()
/**
* @brief 启用或禁用来自背景立方体贴图的IBL(基于图像的照明)。
*
* 如果未使用PBR,则没有效果。
*
* @param theToEnableIBL 启用或禁用IBL。
* @param theToUpdate 是否重新绘制视图。
*/
void V3d_View::SetImageBasedLighting(Standard_Boolean theToEnableIBL, Standard_Boolean theToUpdate = Standard_False);
SetImmediateUpdate()
/**
* @brief 设置即时更新模式并返回以前的模式。
*
* @param theImmediateUpdate 即时更新模式。
* @return Standard_Boolean 以前的模式。
*/
Standard_Boolean V3d_View::SetImmediateUpdate(const Standard_Boolean theImmediateUpdate);
SetLightOff()
/**
* @brief 停用此视图中定义的所有灯光。
*/
void V3d_View::SetLightOff();
SetLightOff() [重载]
/**
* @brief 在此视图中关闭指定的灯光。
*
* @param theLight 指定的灯光。
*/
void V3d_View::SetLightOff(const Handle<V3d_Light> &theLight);
SetLightOn()
/**
* @brief 激活此视图中定义的所有灯光。
*/
void V3d_View::SetLightOn();
SetLightOn() [重载]
/**
* @brief 在此视图中激活指定的灯光。
*
* @param theLight 指定的灯光。
*/
void V3d_View::SetLightOn(const Handle<V3d_Light> &theLight);
SetMagnify()
/**
* @brief 放大视图。
*
* @param theWindow 窗口。
* @param thePreviousView 前一个视图。
* @param theX1 起始x坐标。
* @param theY1 起始y坐标。
* @param theX2 结束x坐标。
* @param theY2 结束y坐标。
*/
void V3d_View::SetMagnify(const Handle<Aspect_Window> &theWindow, const Handle<V3d_View> &thePreviousView, const Standard_Integer theX1, const Standard_Integer theY1, const Standard_Integer theX2, const Standard_Integer theY2);
SetProj() [重载]
/**
* @brief 定义投影的方向。
*
* @param Vx x坐标。
* @param Vy y坐标。
* @param Vz z坐标。
*/
void V3d_View::SetProj(const Standard_Real Vx, const Standard_Real Vy, const Standard_Real Vz);
SetProj() [重载]
/**
* @brief 定义投影的方向。
*
* @param theOrientation 相机方向。
* @param theIsYup 是否为Y-up约定。
*/
void V3d_View::SetProj(const V3d_TypeOfOrientation theOrientation, const Standard_Boolean theIsYup = Standard_False);
SetScale()
/**
* @brief 缩放视图。
*
* @param Coef 缩放系数。
*/
void V3d_View::SetScale(const Standard_Real Coef);
SetShadingModel()
/**
* @brief 定义可视化的着色模型。
*
* @param theShadingModel 着色模型。
*/
void V3d_View::SetShadingModel(const Graphic3d_TypeOfShadingModel theShadingModel);
SetSize()
/**
* @brief 定义视图投影大小。
*
* @param theSize 投影大小。
*/
void V3d_View::SetSize(const Standard_Real theSize);
SetTextureEnv()
/**
* @brief 设置要使用的环境纹理。
*
* 默认情况下没有环境纹理。
*
* @param theTexture 纹理。
*/
void V3d_View::SetTextureEnv(const Handle<Graphic3d_TextureEnv> &theTexture);
SetTwist()
/**
* @brief 定义视图参考框架的高点的角度位置。
*
* @param Angle 角度位置。
*/
void V3d_View::SetTwist(const Standard_Real Angle);
SetUp() [重载]
/**
* @brief 定义高点的方向。
*
* @param Vx x坐标。
* @param Vy y坐标。
* @param Vz z坐标。
*/
void V3d_View::SetUp(const Standard_Real Vx, const Standard_Real Vy, const Standard_Real Vz);
SetUp() [重载]
/**
* @brief 定义高点的方向。
*
* @param Orientation 方向。
*/
void V3d_View::SetUp(const V3d_TypeOfOrientation Orientation);
SetViewMappingDefault()
/**
* @brief 保存当前的视图映射。
*
* 这将是ResetViewmapping返回的状态。
*/
void V3d_View::SetViewMappingDefault();
SetViewOrientationDefault()
/**
* @brief 保存视图方向的当前状态。
*
* 这将是ResetViewOrientation返回的状态。
*/
void V3d_View::SetViewOrientationDefault();
SetVisualization()
/**
* @brief 定义视图中的可视化类型。
*
* @param theType 可视化类型。
*/
void V3d_View::SetVisualization(const V3d_TypeOfVisualization theType);
SetWindow() [重载]
/**
* @brief 在指定的窗口中激活视图。
*
* 如果<aContext>不为NULL,则使用图形上下文在视图中绘制某些内容。否则,将创建一个内部图形上下文。
* 警告:为了保持窗口的高度/宽度比,视图会居中并调整大小。
*
* @param theWindow 窗口。
* @param theContext 渲染上下文。
*/
void V3d_View::SetWindow(const Handle<Aspect_Window> &theWindow, const Aspect_RenderingContext
SetZoom()
/**
* @brief 根据相对于初始值的因子缩放视图。
*
* @param Coef 缩放因子。
* @param Start 是否相对于初始值。
*/
void V3d_View::SetZoom(const Standard_Real Coef, const Standard_Boolean Start = Standard_True);
SetZSize()
/**
* @brief 定义视图的深度大小。
*
* 前平面将设置为Size/2。后平面将设置为-Size/2。位于前平面之上或后平面之后的任何对象将被裁剪。
* 注意:视图的XY大小不会被修改。
*
* @param SetZSize 深度大小。
*/
void V3d_View::SetZSize(const Standard_Real SetZSize);
ShadingModel()
/**
* @brief 返回当前的着色模型,默认为Graphic3d_TypeOfShadingModel_Phong。
*
* @return 当前的着色模型。
*/
Graphic3d_TypeOfShadingModel V3d_View::ShadingModel() const;
Size()
/**
* @brief 返回视图的高度和宽度。
*
* @param Width 宽度。
* @param Height 高度。
*/
void V3d_View::Size(Standard_Real &Width, Standard_Real &Height) const;
StartRotation()
/**
* @brief 根据鼠标位置开始围绕屏幕轴旋转视图。
*
* 当<zRotationThreshold>因子>0且开始点与视图中心的距离>(中等视图尺寸*<zRotationThreshold>)时,即可启用围绕Z屏幕轴的旋转。通常,值为0.4可用于在圆形阈值区域内围绕XY屏幕轴旋转,并在此区域外围绕Z屏幕轴旋转。
*
* @param X X坐标。
* @param Y Y坐标。
* @param zRotationThreshold Z旋转阈值。
*/
void V3d_View::StartRotation(const Standard_Integer X, const Standard_Integer Y, const Standard_Real zRotationThreshold = 0.0);
StartZoomAtPoint()
/**
* @brief 定义ZoomAtPoint视图操作的起始点。
*
* @param theXp X坐标。
* @param theYp Y坐标。
*/
void V3d_View::StartZoomAtPoint(const Standard_Integer theXp, const Standard_Integer theYp);
StatisticInformation()
/**
* @brief 返回包含统计性能信息的字符串。
*
* @return 统计性能信息的字符串。
*/
TCollection_AsciiString V3d_View::StatisticInformation() const;
StatisticInformation() [2/2]
/**
* @brief 使用统计性能信息填充字典。
*
* @param theDict 字典。
*/
void V3d_View::StatisticInformation(TColStd_IndexedDataMapOfStringString &theDict) const;
Subviews()
/**
* @brief 返回子视图列表。
*
* @return 子视图列表。
*/
const NCollection_Sequence<Handle<V3d_View>> &V3d_View::Subviews() const;
TextureEnv()
/**
* @brief 返回要使用的环境纹理。
*
* @return 环境纹理。
*/
Handle<Graphic3d_TextureEnv> V3d_View::TextureEnv() const;
ToPixMap() [1/2]
/**
* @brief 将视图的完整内容转储到像素图。
*
* 内部调用Redraw(),使用请求的目标大小(theWidth x theHeight)的离屏渲染缓冲区,因此无需调整窗口控件的大小即可制作不同大小的转储。
*
* @param theImage 目标图像。
* @param theWidth 目标图像的宽度。
* @param theHeight 目标图像的高度。
* @param theBufferType 要转储的视图缓冲区的类型(颜色/深度)。
* @param theToAdjustAspect 当为true时,激活视图的纵横比将被覆盖为(theWidth / theHeight)。
* @param theStereoOptions 如何转储立体摄像机。
* @return Standard_Boolean 是否成功转储。
*/
Standard_Boolean V3d_View::ToPixMap(Image_PixMap &theImage, const Standard_Integer theWidth, const Standard_Integer theHeight, const Graphic3d_BufferType &theBufferType = Graphic3d_BT_RGB, const Standard_Boolean theToAdjustAspect = Standard_True, const V3d_StereoDumpOptions theStereoOptions = V3d_SDO_MONO);
ToPixMap() [2/2]
/**
* @brief 使用指定的参数将视图的完整内容转储到像素图。
*
* 内部调用Redraw(),使用请求的目标大小(theWidth x theHeight)的离屏渲染缓冲区,因此无需调整窗口控件的大小即可制作不同大小的转储。
*
* @param theImage 目标图像。
* @param theParams 参数。
* @return Standard_Boolean 是否成功转储。
*/
Standard_Boolean V3d_View::ToPixMap(Image_PixMap &theImage, const V3d_ImageDumpOptions &theParams);
Translate() [1/4]
/**
* @brief 返回True,如果可以在此视图中激活一个以上的光源。
*
* 已弃用:("已弃用的方法 - 应改用ActiveLights()")。
*
* @param theCamera 相机。
* @param theDXv X方向的位移。
* @param theDYv Y方向的位移。
*/
void V3d_View::Translate(const Handle<Graphic3d_Camera> &theCamera, const Standard_Real theDXv, const Standard_Real theDYv) const;
Translate() [2/4]
/**
* @brief 平行于屏幕参考框架的