赞
踩
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::V3d_View(const Handle< V3d_Viewer >& theViewer, const V3d_TypeOfView theType = V3d_ORTHOGRAPHIC)
初始化视图。
V3d_View::V3d_View(const Handle< V3d_Viewer >& theViewer, const Handle< V3d_View >& theView)
通过复制初始化视图。
virtual V3d_View::~V3d_View()
默认析构函数。
Member Function Documentation
const Handle< V3d_Light >& V3d_View::ActiveLight() const
已弃用:(“已弃用的方法 - 应使用ActiveLights()”)
V3d_ListOfLightIterator V3d_View::ActiveLightIterator() const
返回定义的光源的迭代器。
const V3d_ListOfLight& V3d_View::ActiveLights() const
返回活动光源的列表。
virtual void V3d_View::AddClipPlane(const Handle< Graphic3d_ClipPlane >& thePlane)
将裁剪平面添加到视图。裁剪平面的组合将渲染空间截断为凸体积。可以通过关联的Graphic3d_GraphicDriver的PlaneLimit方法查看支持的裁剪平面数量。请注意,在渲染过程中会忽略超过限制的平面。
参数:
thePlane [in] 要添加到视图的裁剪平面。
void V3d_View::AddSubview(const Handle< V3d_View >& theView)
将子视图添加到列表中。
void V3d_View::At(Standard_Real& X, Standard_Real& Y, Standard_Real& Z) const
返回视图点的位置。
void V3d_View::AutoZFit() const
如果自动Z范围适应已打开,则使用ZFitAll调整Z-min和Z-max投影体积平面。
Standard_Boolean V3d_View::AutoZFitMode() const
如果自动Z适配模式已打开,则返回TRUE。
Standard_Real V3d_View::AutoZFitScaleFactor() const
返回自动Z适配模式的比例因子参数。
void V3d_View::AxialScale(const Standard_Integer Dx, const Standard_Integer Dy, const V3d_TypeOfAxe Axis)
沿给定的轴进行各向异性缩放视图。缩放因子是基于鼠标指针位移<Dx,Dy>计算的。然后将计算的比例因子传递给SetAxialScale(Sx,Sy,Sz)方法。
void V3d_View::AxialScale(Standard_Real& Sx, Standard_Real& Sy, Standard_Real& Sz) const
返回各向异性(轴向)缩放因子的当前值。
Graphic3d_TypeOfBackfacingModel V3d_View::BackFacingModel() const
返回背面显示的当前状态;默认为Graphic3d_TypeOfBackfacingModel_Auto,这意味着背面剔除由每个呈现定义。
Quantity_Color V3d_View::BackgroundColor() const
返回视图的背景颜色对象。
void V3d_View::BackgroundColor(const Quantity_TypeOfColor Type, Standard_Real& V1, Standard_Real& V2, Standard_Real& V3) const
根据颜色类型返回视图的背景颜色值。
const Aspect_SkydomeBackground& V3d_View::BackgroundSkydome() const
返回天穹背景。
const Handle< Graphic3d_Camera >& V3d_View::Camera() const
返回视图的相机对象。
Graphic3d_RenderingParams& V3d_View::ChangeRenderingParams()
返回当前渲染参数和效果设置的引用。
void V3d_View::ClearPBREnvironment(Standard_Boolean theToUpdate = Standard_False)
禁用背景立方体贴图中的IBL;用白色填充PBR镜面探针和辐照度图。
const Handle< Graphic3d_SequenceOfHClipPlane >& V3d_View::ClipPlanes() const
获取裁剪平面。
Returns:已设置视图的序列裁剪平面
Standard_Boolean V3d_View::ComputedMode() const
返回计算的HLR模式状态。
Standard_Real V3d_View::Convert(const Standard_Integer Vp) const
将像素值转换为投影平面上的值。
void V3d_View::Convert(const Standard_Integer Xp, const Standard_Integer Yp, Standard_Real& X, Standard_Real& Y, Standard_Real& Z) const
将投影点转换为与视图对应的参考框架中与眼睛/视图点矢量的投影平面的交点对应的点。
void V3d_View::Convert(const Standard_Integer Xp, const Standard_Integer Yp, Standard_Real& Xv, Standard_Real& Yv) const
将点像素转换为在投影平面的参考框架中投影的点。
Standard_Integer V3d_View::Convert(const Standard_Real Vv) const
将投影平面的值转换为像素值。
void V3d_View::Convert(const Standard_Real X, const Standard_Real Y, const Standard_Real Z, Standard_Integer& Xp, Standard_Integer& Yp) const
将在视图的参考框架中定义的点投影到关联窗口中的投影点。
void V3d_View::Convert(const Standard_Real Xv, const Standard_Real Yv, Standard_Integer& Xp, Standard_Integer& Yp) const
将在投影平面的参考框架中定义的点转换为像素点。
将投影点转换为视图参考框架中与视点/视图点矢量的投影平面相交对应的最近网格点,并显示网格标记。警告:当网格未激活时,结果与上述 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);.
将点转换为最近的网格点并显示网格标记。
将投影点转换为视图参考框架中与视点/视图点矢量的投影平面相交对应的点,并返回投影射线以进行进一步计算。
返回默认摄像机。
返回眼睛和视点之间的距离。
调整视图体积,以避免通过前面和后面的剪切平面剪切显示的对象。还根据计算出的 Z 大小和 Aspect 参数自动设置深度值。注意:视图的原始 XY 大小不会被修改。
使用诊断信息填充字典。应在渲染线程内调用。
必须在支持视图的窗口映射或取消映射时调用。
将视图的完整内容转储到图像文件中。
将我的内容转储到流中。
返回眼睛的位置。
根据给定的自定义边界框调整视图参数以适应显示的场景,保持高度/宽度比例。如果边界系数小于 0 或大于等于 1,则抛出程序错误异常。更新视图。
根据显示的场景调整视图参数,保持高度/宽度比例。如果 AutoZFit 标志为 TRUE,则适合 Z 剪切范围(深度范围)。如果边界系数小于 0 或大于等于 1,则抛出程序错误异常。更新视图。
将定义的投影窗口居中,以便占据最大空间,同时保持初始高度/宽度比。注意:视图的原始 Z 大小不会被修改。
将摄像机眼睛、中心和比例变换为适合传递的以 WCS 指定的边界框中的内容。
对于透视视图,返回视平面距离。
返回发出投影的点的位置。
激活来自背景立方体贴图的图像基础照明(IBL)。
返回分级三棱锥的数据。
返回视图的渐变背景。
返回视图的渐变背景颜色。
显示一个分级三棱锥。
从视图中擦除分级三棱锥。
返回视图中所有可见点的对象数和重心。
如果在此视图中可以激活一个以上的光源,则返回 True。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
如果 MyView 与窗口关联,则返回 True。
返回 True 如果在此视图中可以激活一个以上的光源。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
初始化对活动光源的迭代。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
使视图内容失效,但不重新绘制。
在即时图层中使视图内容无效,但不重新绘制。
如果在此视图中激活了光源,则返回 TRUE。
返回对象裁剪机制的标志值。
返回视图关于内部显示结构的状态。如果视图为空,则返回 True。
如果启用了来自背景立方体贴图的图像基础照明(IBL),则返回 TRUE。
如果缓存视图内容已失效,则返回 true。
如果即时图层内容已失效,则返回 true。
如果这是另一个视图的子视图,则返回 TRUE。
返回与视图关联的最大光源数。
如果还有更多活动的光源,则返回 true。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
平行移动视点,距离为相对于初始位置的值,以屏幕参考坐标系的方向为准。
平行移动视点,距离为相对于初始位置的值,以当前轴的方向为准。
平行移动视点,距离为相对于初始位置的值,以视图的坐标系中的一个轴的方向为准。
当支持视图的窗口大小更改时必须调用此方法。如果视图未映射到窗口,则警告:为了保持窗口的高度/宽度比,视图会居中并调整大小。
转到下一个活动光源(如果没有,ActiveLight 将引发异常)。
已弃用:(“已弃用方法 - 应改为使用 ActiveLights()”)
沿视图投影的 “x” 和 “y” 轴平移视图中心。
沿视图投影的 “x” 和 “y” 轴平移视图中心。
返回父视图,如果这不是另一个视图的子视图,则返回 NULL。
从给定的 2D 点中选择子视图。
将与像素位置 x、y 对应的视图点放置在窗口中心并更新视图。
返回与视图关联的剪切平面的最大数目。
返回投影向量。
将在视图的用户空间中定义的点转换为相对于 Z 的深度的投影平面。
将在视图的用户空间中定义的点转换为相对于 Z 的深度的投影平面。
返回视图中点 (Xpix,Ypix) 的坐标 (XP,YP,ZP),以及通过该点的视图的投影向量(对于透视视图)。
重新显示视图,即使没有进行任何修改也必须调用它。如果视图已显示,则必须调用它。(例如:取消图标化)。
更新即时呈现图层。
销毁视图。
从视图中移除剪切平面。
从列表中删除子视图。
返回当前的渲染参数和效果设置。默认情况下,它返回当前查看器的默认参数。要定义视图特定的设置,请使用方法 V3d_View::ChangeRenderingParams()。
重置视图的居中和方向。
重置视图的居中。
重置视图的方向。
以弧度为单位,绕当前轴旋转视点。
绕屏幕的参考坐标系旋转视点。
绕屏幕的参考坐标系旋转视点,围绕重心点 (X,Y,Z)。
绕视图的坐标轴之一旋转视点。
绕视图的坐标轴之一旋转视点,围绕重心点 (X,Y,Z)。
/**
* 返回当前缩放值,相对于 SetViewMappingDefault()。
*/
Standard_Real V3d_View::Scale() const
/**
* 缩放相机以适应定义宽度和高度的视图框架,保持纵横比。对于正交相机,该方法改变缩放比例,对于透视相机,调整眼睛位置以围绕中心点。
* 参数:
* 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
/**
* 定义视点的位置。
* 参数:
* X:X 轴坐标。
* Y:Y 轴坐标。
* Z:Z 轴坐标。
*/
void V3d_View::SetAt(
const Standard_Real X,
const Standard_Real Y,
const Standard_Real Z
)
/**
* 设置自动 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
)
/** * 为视图设置各向异性(轴向)缩放因子 <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 )
/**
* 根据其原点和方向定义轴。这将是旋转和移动的当前轴线。警告!如果法线向量为空,则从 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
)
/**
* 管理背面的显示。
* 参数:
* theModel:背面模型的类型,默认为 Auto。
*/
void V3d_View::SetBackFacingModel(
const Graphic3d_TypeOfBackfacingModel theModel = Graphic3d_TypeOfBackfacingModel_Auto
)
/**
* 定义视图的背景颜色。
* 参数:
* theColor:颜色。
*/
void V3d_View::SetBackgroundColor(
const Quantity_Color& theColor
)
/**
* 根据颜色定义类型和三个对应值定义视图的背景颜色。
* 参数:
* theType:颜色定义类型。
* theV1、theV2、theV3:颜色值。
*/
void V3d_View::SetBackgroundColor(
const Quantity_TypeOfColor theType,
const Standard_Real theV1,
const Standard_Real theV2,
const Standard_Real theV3
)
/**
* 将环境立方体贴图设置为背景。
* 参数:
* theCubeMap:要设置为背景的立方体贴图源。
* theToUpdatePBREnv:定义是否生成 IBL 映射(参见 'GeneratePBREnvironment')。
* theToUpdate:是否更新视图。
*/
void V3d_View::SetBackgroundCubeMap(
const Handle<Graphic3d_CubeMap>& theCubeMap,
Standard_Boolean theToUpdatePBREnv = Standard_True,
Standard_Boolean theToUpdate = Standard_False
)
/**
* 通过提供纹理和填充方法(默认为居中)定义视图的背景纹理。
* 参数:
* 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
)
/**
* 通过提供纹理图像文件名和填充方法(默认为居中)定义视图的背景纹理。
* 参数:
* theFileName:纹理图像文件名。
* theFillStyle:填充方法,默认为 Aspect_FM_CENTERED。
* theToUpdate:是否更新视图。
*/
void V3d_View::SetBackgroundImage(
const Standard_CString theFileName,
const Aspect_FillMethod`
/**
* @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);
/**
* @brief 定义视图的渐变背景填充方法。
*
* @param theMethod 渐变填充方法,默认为水平填充。
* @param theToUpdate 是否更新,默认为假。
*/
void V3d_View::SetBgGradientStyle(const Aspect_GradientFillMethod theMethod = Aspect_GradientFillMethod_Horizontal, const Standard_Boolean theToUpdate = Standard_False);
/**
* @brief 定义视图的纹理背景填充方法。
*
* @param theFillStyle 填充方法。
* @param theToUpdate 是否更新,默认为假。
*/
void V3d_View::SetBgImageStyle(const Aspect_FillMethod theFillStyle, const Standard_Boolean theToUpdate = Standard_False);
/**
* @brief 更改视图使用的相机。
*
* @param theCamera 使用的相机。
*/
void V3d_View::SetCamera(const Handle<Graphic3d_Camera> &theCamera);
/**
* @brief 将屏幕中心重新定位到点,由{Xp,Yp}像素坐标相对于屏幕左下角确定。
*
* 为了计算来自世界坐标空间的任意点的像素坐标,可以使用“Project”进行投影。
*
* @param theXp x坐标。
* @param theYp y坐标。
*/
void V3d_View::SetCenter(const Standard_Integer theXp, const Standard_Integer theYp);
/**
* @brief 设置视图的裁剪平面序列。
*
* 设置视图的裁剪平面序列。之前设置的平面将从视图中移除。裁剪平面的组合将视图空间截断为凸体积。
*
* @param thePlanes 裁剪平面序列。
*/
void V3d_View::SetClipPlanes(const Handle<Graphic3d_SequenceOfHClipPlane> &thePlanes);
/**
* @brief 切换视图中的计算HLR模式。
*
* @param theMode 模式。
*/
void V3d_View::SetComputedMode(const Standard_Boolean theMode);
/**
* @brief 定义视图中眼睛到视点的深度,而不更新投影。
*
* @param Depth 深度。
*/
void V3d_View::SetDepth(const Standard_Real Depth);
/**
* @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);
/**
* @brief 更改透视视图的视平面距离。
*
* 警告!如果视图不是透视视图,则会引发标准的类型不匹配异常。
*
* @param Focale 视平面距离。
*/
void V3d_View::SetFocale(const Standard_Real Focale);
/**
* @brief 修改视图的投影,使其垂直于观察者的特权平面。
*/
void V3d_View::SetFront();
/**
* @brief 打开/关闭自动裁剪视锥体外部的对象(默认为开启)。
*
* @param theMode 模式。
*/
void V3d_View::SetFrustumCulling(Standard_Boolean theMode);
/**
* @brief 定义或更新视图中网格的定义。
*
* @param aPlane 平面。
* @param aGrid 网格。
*/
void V3d_View::SetGrid(const gp_Ax3 &aPlane, const Handle<Aspect_Grid> &aGrid);
/**
* @brief 定义或更新视图中网格的活动性。
*
* @param aFlag 活动性标志。
*/
void V3d_View::SetGridActivity(const Standard_Boolean aFlag);
/**
* @brief 启用或禁用来自背景立方体贴图的IBL(基于图像的照明)。
*
* 如果未使用PBR,则没有效果。
*
* @param theToEnableIBL 启用或禁用IBL。
* @param theToUpdate 是否重新绘制视图。
*/
void V3d_View::SetImageBasedLighting(Standard_Boolean theToEnableIBL, Standard_Boolean theToUpdate = Standard_False);
/**
* @brief 设置即时更新模式并返回以前的模式。
*
* @param theImmediateUpdate 即时更新模式。
* @return Standard_Boolean 以前的模式。
*/
Standard_Boolean V3d_View::SetImmediateUpdate(const Standard_Boolean theImmediateUpdate);
/**
* @brief 停用此视图中定义的所有灯光。
*/
void V3d_View::SetLightOff();
/**
* @brief 在此视图中关闭指定的灯光。
*
* @param theLight 指定的灯光。
*/
void V3d_View::SetLightOff(const Handle<V3d_Light> &theLight);
/**
* @brief 激活此视图中定义的所有灯光。
*/
void V3d_View::SetLightOn();
/**
* @brief 在此视图中激活指定的灯光。
*
* @param theLight 指定的灯光。
*/
void V3d_View::SetLightOn(const Handle<V3d_Light> &theLight);
/**
* @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);
/**
* @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);
/**
* @brief 定义投影的方向。
*
* @param theOrientation 相机方向。
* @param theIsYup 是否为Y-up约定。
*/
void V3d_View::SetProj(const V3d_TypeOfOrientation theOrientation, const Standard_Boolean theIsYup = Standard_False);
/**
* @brief 缩放视图。
*
* @param Coef 缩放系数。
*/
void V3d_View::SetScale(const Standard_Real Coef);
/**
* @brief 定义可视化的着色模型。
*
* @param theShadingModel 着色模型。
*/
void V3d_View::SetShadingModel(const Graphic3d_TypeOfShadingModel theShadingModel);
/**
* @brief 定义视图投影大小。
*
* @param theSize 投影大小。
*/
void V3d_View::SetSize(const Standard_Real theSize);
/**
* @brief 设置要使用的环境纹理。
*
* 默认情况下没有环境纹理。
*
* @param theTexture 纹理。
*/
void V3d_View::SetTextureEnv(const Handle<Graphic3d_TextureEnv> &theTexture);
/**
* @brief 定义视图参考框架的高点的角度位置。
*
* @param Angle 角度位置。
*/
void V3d_View::SetTwist(const Standard_Real Angle);
/**
* @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);
/**
* @brief 定义高点的方向。
*
* @param Orientation 方向。
*/
void V3d_View::SetUp(const V3d_TypeOfOrientation Orientation);
/**
* @brief 保存当前的视图映射。
*
* 这将是ResetViewmapping返回的状态。
*/
void V3d_View::SetViewMappingDefault();
/**
* @brief 保存视图方向的当前状态。
*
* 这将是ResetViewOrientation返回的状态。
*/
void V3d_View::SetViewOrientationDefault();
/**
* @brief 定义视图中的可视化类型。
*
* @param theType 可视化类型。
*/
void V3d_View::SetVisualization(const V3d_TypeOfVisualization theType);
/**
* @brief 在指定的窗口中激活视图。
*
* 如果<aContext>不为NULL,则使用图形上下文在视图中绘制某些内容。否则,将创建一个内部图形上下文。
* 警告:为了保持窗口的高度/宽度比,视图会居中并调整大小。
*
* @param theWindow 窗口。
* @param theContext 渲染上下文。
*/
void V3d_View::SetWindow(const Handle<Aspect_Window> &theWindow, const Aspect_RenderingContext
/**
* @brief 根据相对于初始值的因子缩放视图。
*
* @param Coef 缩放因子。
* @param Start 是否相对于初始值。
*/
void V3d_View::SetZoom(const Standard_Real Coef, const Standard_Boolean Start = Standard_True);
/**
* @brief 定义视图的深度大小。
*
* 前平面将设置为Size/2。后平面将设置为-Size/2。位于前平面之上或后平面之后的任何对象将被裁剪。
* 注意:视图的XY大小不会被修改。
*
* @param SetZSize 深度大小。
*/
void V3d_View::SetZSize(const Standard_Real SetZSize);
/**
* @brief 返回当前的着色模型,默认为Graphic3d_TypeOfShadingModel_Phong。
*
* @return 当前的着色模型。
*/
Graphic3d_TypeOfShadingModel V3d_View::ShadingModel() const;
/**
* @brief 返回视图的高度和宽度。
*
* @param Width 宽度。
* @param Height 高度。
*/
void V3d_View::Size(Standard_Real &Width, Standard_Real &Height) const;
/**
* @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);
/**
* @brief 定义ZoomAtPoint视图操作的起始点。
*
* @param theXp X坐标。
* @param theYp Y坐标。
*/
void V3d_View::StartZoomAtPoint(const Standard_Integer theXp, const Standard_Integer theYp);
/**
* @brief 返回包含统计性能信息的字符串。
*
* @return 统计性能信息的字符串。
*/
TCollection_AsciiString V3d_View::StatisticInformation() const;
/**
* @brief 使用统计性能信息填充字典。
*
* @param theDict 字典。
*/
void V3d_View::StatisticInformation(TColStd_IndexedDataMapOfStringString &theDict) const;
/**
* @brief 返回子视图列表。
*
* @return 子视图列表。
*/
const NCollection_Sequence<Handle<V3d_View>> &V3d_View::Subviews() const;
/**
* @brief 返回要使用的环境纹理。
*
* @return 环境纹理。
*/
Handle<Graphic3d_TextureEnv> V3d_View::TextureEnv() const;
/**
* @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);
/**
* @brief 使用指定的参数将视图的完整内容转储到像素图。
*
* 内部调用Redraw(),使用请求的目标大小(theWidth x theHeight)的离屏渲染缓冲区,因此无需调整窗口控件的大小即可制作不同大小的转储。
*
* @param theImage 目标图像。
* @param theParams 参数。
* @return Standard_Boolean 是否成功转储。
*/
Standard_Boolean V3d_View::ToPixMap(Image_PixMap &theImage, const V3d_ImageDumpOptions &theParams);
/**
* @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;
/**
* @brief 平行于屏幕参考框架的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。