User Tools

Site Tools


class:application:xviewdata



XViewData

Inherited from NULL

Inherited by NULL

Friend class NULL

Description

XViewData封装了文档的视图数据,用于协调应用程序的数据模型(Model)、用户界面视图(View)和用户交互(Controller)。该数据类扮演着连接文档数据和视图之间的重要角色,它通过提供数据的访问接口,使得视图能够获取并显示数据。同时,当用户在视图上进行操作时,文档视图数据类以观察者模式,使得视图能够注册对数据更新的监听。当数据发生改变时,数据类会通知相关的视图,使其可以及时更新显示,从而实现良好的用户体验和数据的可靠管理。 一个文档可以以多种形式的视图展现给用户并和用户交互,视图所需要的数据由XViewData准备组织完成,视图的各种设定也由XViewData管理并提供访问接口,因此XViewData是用户与文档进行交互的必要接口。

XViewData为主流的视图形式提供了大量的方法接口,如三维视图,提供了包括视角、拾取方法、拾取对象类型、显示模式、渲染模式等多种设定接口,提供了三维模型的面渲染数据、边渲染数据、体渲染数据、点渲染数据以及云图值渲染数据等的访问接口;二维曲线视图,提供了曲线数据访问接口。

XViewData与XDocument是一一对应的关系,原则上XViewData由所对应的文档类创建和销毁。

Members

Public interface


XDocument * m_pDoc

视图数据所绑定的文档类

int m_iSearchType

搜索的对象类型

int m_iCurModuleIndex

当前Ribbon模块序号

int m_iViewMid

当前视图模型ID

XPicker * m_pPicker

选择器

ulong m_ulUpdateFlag

视图更新标志

ulong m_ulGLMode

openGL渲染模式

int m_iDisplayFilter

显示模式

int m_iSecondDisplayFilter

第二显示模式

int m_iAnimationSpeed

动画速度

int m_iAnimationMode

动画模式

int m_iCurFrameIndex

当前动画帧ID

int m_iViewAngleMode

视角模式

int m_iPickMethod

选择方法

bool m_bEnableRotate

是否支持旋转

bool m_bEnableSecond

知否支持显示第二模型

bool m_bLightOn

是否激活光照模式

real m_dViewAngle[3]

视角转动角度

real m_dViewBox[6]

三维视图视域盒

TMatrix44<float> m_fTrMatrix

三维视图变换矩阵

XMap * m_pMarkerMap

对象标记渲染数据映射器

int m_iContourDiv

云图色带数

int m_iContourScheme

云图色带方案

float m_fContourMax

云图最大值

float m_fContourMin

云图最小值

float m_fContourScale

云图值比例系数

bool m_bEnforceContourMaxMin

是否强制云图最大最小值

vector<const XItem*> * m_pLocalContourItems

局部云图对象数组

vector<const XGeometry*> * m_pLocalContourGeoms

局部云图几何数组

float m_fVectorScale

变形向量比例系数

int m_iVectorIndex[3]

向量数据序列号(用于后处理显示变形),默认为0,1,2

vector<XRenderData> m_arCmdData

功能运行过程中预览视图数据数组

vector<const XElement *> * m_pFragmentElems

实体单元数组

int m_iFragBoundaryCount

实体单元数组的边界单元个数

vector<const XRenderData *> * m_pTransformViewData

变形视图数据(用于前处理的变形预览)

vector<XShaderContext> m_pShaderContexts

着色器上下文数组

vector<ItemPtr> m_pSelectedItems

选择对象数组

XPlane m_ClipPlane[MAX_CLIP_PLANE_COUNT]

裁剪平面数组

int m_ClipPlaneCount

裁剪平面个数

XCurve m_Curve

曲线数据

XVisualAngle m_VisualAngle

视角数据


XViewData(XDocument * pDoc)

  • function: 构造函数
  • parameters:
    1. [i]XDocument * pDoc: 文档对象
  • return value: 无

virtual void reset()

  • function: 重置视图数据
  • parameters: NULL
  • return value: 无

virtual void buildData()

  • function: 构建视图数据
  • parameters: NULL
  • return value: 无

void bindPicker(XPicker * picker)

  • function: 绑定选择器
  • parameters:
    1. [i]XPicker * picker: 选择器
  • return value: 无

virtual void updateData(ulong update_flag)

  • function: 更新视图数据
  • parameters:
    1. [i]ulong update_flag: 更新标志
  • return value: 无

virtual void clear()

  • function: 清空视图数据
  • parameters: NULL
  • return value: 无

const real * getViewBox()

  • function: 获取三维视图视域包围盒
  • parameters: NULL
  • return value: 三维视图视域包围盒

void setViewBox(const real * box)

  • function: 设置三维视图视域包围盒
  • parameters:
    1. [i]const real * box: 三维视图视域包围盒
  • return value: 无

virtual void updateViewBox()

  • function: 更新三维视图视域包围盒
  • parameters: NULL
  • return value: 无

XDocument * getDocument()

  • function: 获取视图所属的文档对象
  • parameters: NULL
  • return value: 文档对象指针

virtual ~XViewData()

  • function: 析构函数
  • parameters: NULL
  • return value: 无

virtual void setRenderState(RenderStateTypeID type, void * value)

  • function: 设置渲染状态
  • parameters:
    1. [i]RenderStateTypeID type: 渲染状态类型
    2. [i] void * value: 状态参数
  • return value: 无

virtual void getRenderState(RenderStateTypeID type, void * value)

  • function: 获取渲染状态
  • parameters:
    1. [i]RenderStateTypeID type: 渲染状态类型
    2. [i] void * value: 状态参数值
  • return value: 无

void setSearchType(TypeID type)

  • function: 设置搜索对象类型
  • parameters:
    1. [i]TypeID type: 对象类型
  • return value: 无

TypeID getSearchType() const

  • function: 获取搜索对象类型
  • parameters: NULL
  • return value: 搜索对象类型

void setCurrentModule(int i)

  • function: 设置当前Ribbon模块索引号
  • parameters:
    1. [i]int i: 当前Ribbon模块索引号
  • return value: 无

int getCurrentModule() const

  • function: 获取当前Ribbon模块索引号
  • parameters: NULL
  • return value: 当前Ribbon模块索引号

ulong getRenderMode() const

  • function: 获取渲染模式
  • parameters: NULL
  • return value: 渲染模式

void setRenderMode(ulong m)

  • function: 设置渲染模式
  • parameters:
    1. [i]ulong m: 渲染模式
  • return value: 无

bool checkRenderMode(ulong m)

  • function: 检查当前渲染模式是否匹配给定模式
  • parameters:
    1. [i]ulong m: 给定渲染模式
  • return value: 匹配则返回true,否则返回false

void enableRenderMode(TypeID mode)

  • function: 激活渲染模式
  • parameters:
    1. [i]TypeID mode: 渲染模式
  • return value: 无

void disableRenderMode(TypeID mode)

  • function: 使给定渲染模式失效
  • parameters:
    1. [i]TypeID mode: 失效的渲染模式
  • return value: 无

TypeID getPickType() const

  • function: 获取拾取对象类型
  • parameters: NULL
  • return value: 拾取对象类型

void setPickType(TypeID tid)

  • function: 设置拾取对象类型
  • parameters:
    1. [i]TypeID tid: 拾取对象类型
  • return value: 无

int getDisplayFilter() const

  • function: 获取显示模式
  • parameters: NULL
  • return value: 显示模式

void setDisplayFilter(int f)

  • function: 设置显示模式
  • parameters:
    1. [i]int f: 显示模式
  • return value: 无

bool checkDisplayFilter(ulong m)

  • function: 检查当前显示模式是否匹配给定显示模式
  • parameters:
    1. [i]ulong m: 给定显示模式
  • return value: 匹配则返回true,否则返回false

void enableDisplayFilter(TypeID mode)

  • function: 激活显示模式
  • parameters:
    1. [i]TypeID mode: 显示模式
  • return value: 无

void disableDisplayFilter(TypeID mode)

  • function: 抑制给定显示模式
  • parameters:
    1. [i]TypeID mode: 给定显示模式
  • return value: 无

ulong getEnityColor(const XGeometry * g)

  • function: 获取几何体颜色
  • parameters:
    1. [i]const XGeometry * g: 几何体对象
  • return value: 几何体颜色

int getAnimationSpeed() const

  • function: 获取动画速度
  • parameters: NULL
  • return value: 动画速度

void setAnimationSpeed(int s)

  • function: 设置动画速度
  • parameters:
    1. [i]int s: 动画速度
  • return value: 无

int getAnimationMode() const

  • function: 获取动画模式
  • parameters: NULL
  • return value: 动画模式

void setAnimationMode(int m)

  • function: 设置动画模式
  • parameters:
    1. [i]int m: 动画模式
  • return value: 无

virtual int getAnimationFrameCount() const

  • function: 获取动画总帧数
  • parameters: NULL
  • return value: 动画总帧数

int getCurrentAnimationFrame() const

  • function: 获取当前动画帧序号
  • parameters: NULL
  • return value: 当前动画帧序号

void setCurrentAnimationFrame(int fid)

  • function: 设置当前动画帧序号
  • parameters:
    1. [i]int fid: 当前动画帧序号
  • return value: 无

virtual void nextAnimationFrame()

  • function: 转到下一动画帧
  • parameters: NULL
  • return value: 无

virtual void prevAnimationFrame()

  • function: 转到上一动画帧
  • parameters: NULL
  • return value: 无

void resetAnimationFrame()

  • function: 重置动画帧
  • parameters: NULL
  • return value: 无

virtual void clearAnimationFrame()

  • function: 清空动画帧数据
  • parameters: NULL
  • return value: 无

virtual bool prepareAnimationData(int mode)

  • function: 准备动画帧数据
  • parameters:
    1. [i]int mode: 动画模式
  • return value: 无

int getPickMethod() const

  • function: 获取拾取方法
  • parameters: NULL
  • return value: 拾取方法

void setPickMethod(int m)

  • function: 设置拾取方法
  • parameters:
    1. [i]int m: 拾取方法
  • return value: 无

int getViewAngle(real * a = 0) const

  • function: 获取视角类型
  • parameters:
    1. [i]real * a = 0: 存放视角角度,默认不获取角度
  • return value: 视角类型

void setViewAngle(int m, const real * a = 0)

  • function: 设置视角类型
  • parameters:
    1. [i]int m: 视角类型
    2. [i] const real * a = 0: 视角角度
  • return value: 无

ulong getUpdateFlag() const

  • function: 获取视图数据更新标志
  • parameters: NULL
  • return value: 数据更新标志

void resetUpdateFlag()

  • function: 重置视图数据更新标志
  • parameters: NULL
  • return value: 无

void showAll()

  • function: 显示所有对象
  • parameters: NULL
  • return value: 无

void hideItems(vector<XUniqueObjectID*> * items)

  • function: 隐藏指定对象
  • parameters:
    1. [i]vector<XUniqueObjectID*> * items: 隐藏的对象数组
  • return value: 无

void showItems(vector<XUniqueObjectID*> * items)

  • function: 显示指定对象
  • parameters:
    1. [i]vector<XUniqueObjectID*> * items: 显示的对象数组
  • return value: 无

void hideItems(vector<XUniqueObjectID> * items)

  • function: 隐藏指定对象
  • parameters:
    1. [i]vector<XUniqueObjectID> * items: 隐藏的对象数组
  • return value: 无

void showItems(vector<XUniqueObjectID> * items)

  • function: 显示指定对象
  • parameters:
    1. [i]vector<XUniqueObjectID> * items: 显示的对象数组
  • return value: 无

void showRelatedItems(vector<XUniqueObjectID*> * items)

  • function: 显示指定对象数组的相邻对象
  • parameters:
    1. [i]vector<XUniqueObjectID*> * items: 指定对象数组
  • return value: 无

void setColorScheme(ColorScheme cs, uint8 r, uint8 g, uint8 b, uint8 a)

  • function: 设置颜色方案
  • parameters:
    1. [i]ColorScheme cs: 颜色方案类型
    2. [i] uint8 r: 颜色red分量
    3. [i] uint8 g: 颜色green分量
    4. [i] uint8 b: 颜色blue分量
    5. [i] uint8 a: 颜色alpha分量
  • return value:

ulong getContourColor(real v, real maxLimit, real minLimit)

  • function: 获取云图颜色
  • parameters:
    1. [i]real v: 云图值
    2. [i] real maxLimit: 云图最大值
    3. [i] real minLimit: 云图最小值
  • return value: 颜色RGBA值

const unsigned char * getColorScheme(ColorScheme ds)

  • function: 获取颜色方案字符串
  • parameters:
    1. [i]ColorScheme ds: 颜色方案类型
  • return value: 颜色方案字符串

bool isRotateEnable()

  • function: 视图是否可旋转
  • parameters: NULL
  • return value: 可旋转返回true,否则返回false

void setRotateEnable(bool b)

  • function: 设置视图可旋转
  • parameters:
    1. [i]bool b: 是否是否可旋转
  • return value: 无

const XPlane * getClipPlane(int idx = 0) const

  • function: 获取第idx个裁剪平面
  • parameters:
    1. [i]int idx = 0: 裁剪平面序号
  • return value: 第idx个裁剪平面

void setLightState(bool b)

  • function: 设置是否激活光照模式
  • parameters:
    1. [i]bool b: 光照是否激活
  • return value: 无

bool getLightState()

  • function: 获取光照模式是否激活
  • parameters: NULL
  • return value: 激活返回true,否则返回false

bool isContourEnable() const

  • function: 云图是否激活
  • parameters: NULL
  • return value: 云图激活返回true,否则返回false

float getContourMax()

  • function: 获取云图最大值
  • parameters: NULL
  • return value: 云图最大值

float getContourMin()

  • function: 获取云图最小值
  • parameters: NULL
  • return value: 云图最小值

float getContourScale()

  • function: 获取云图值比例系数
  • parameters: NULL
  • return value: 云图值比例系数

int getContourDiv()

  • function: 获取云图色带数
  • parameters: NULL
  • return value: 云图色带数

int getContourScheme()

  • function: 获取云图颜色方案
  • parameters: NULL
  • return value: 云图颜色方案类型

void setContourScheme(TypeID type)

  • function: 设置云图颜色方案
  • parameters:
    1. [i]TypeID type: 云图颜色方案类型
  • return value: 无

void setContourScale(float s)

  • function: 设置云图值比例系数
  • parameters:
    1. [i]float s: 云图值比例系数
  • return value: 无

void setContour(float fMax, float fMin, int div)

  • function: 设置云图
  • parameters:
    1. [i]float fMax: 云图最大值
    2. [i] float fMin: 云图最小值
    3. [i] int div: 云图色带数
  • return value: 无

virtual const char * getContourLabel()

  • function: 获取云图标签字符串
  • parameters: NULL
  • return value: 云图标签字符串

void setContourMaxMinEnforced(bool b)

  • function: 设置是否强制云图极值
  • parameters:
    1. [i]bool b: 是否强制云图极值
  • return value: 无

bool isContourMaxMinEnforced()

  • function: 云图极值是否被强制指定
  • parameters: NULL
  • return value: 云图极值被强制指定返回true,否则返回false

vector<const XGeometry*> * getLocalContourGeometry()

  • function: 获取局部云图几何对象数组
  • parameters: NULL
  • return value: 局部云图几何对象数组

vector<const XItem*> * getLocalContourItems()

  • function: 获取局部云图对象数组
  • parameters: NULL
  • return value: 局部云图对象数组

void setLocalContourItems(vector<const XItem*> * items)

  • function: 设置局部云图对象数组
  • parameters:
    1. [i]vector<const XItem*> * items: 局部云图对象数组
  • return value: 无

void clearLocalContourItems()

  • function: 清空局部云图对象数组
  • parameters: NULL
  • return value: 无

void resetModelFaceContourData(XModel * mdl, float v = XREAL_MAX)

  • function: 重置模型的所有面云图数据
  • parameters:
    1. [i]XModel * mdl: 模型对象
    2. [i] float v = XREAL_MAX: 重置的默认面云图值
  • return value: 无

void updateLocalContourMaxMin()

  • function: 更新局部云图的极值
  • parameters: NULL
  • return value: 无

float getVectorScale()

  • function: 获取变形向量的比例系数
  • parameters: NULL
  • return value: 变形向量的比例系数

void setVectorScale(float v)

  • function: 设置变形向量的比例系数
  • parameters:
    1. [i]float v: 变形向量的比例系数
  • return value: 无

void setVectorViewIndex(int i0, int i1, int i2)

  • function: 设置变形向量的分量序号
  • parameters:
    1. [i]int i0: 第一个向量序号
    2. [i] int i1: 第二个向量序号
    3. [i] int i2: 第三个向量序号
  • return value: 无

int getVectorViewIndex(int i)

  • function: 获取变形向量的分量序号
  • parameters:
    1. [i]int i: 分量
  • return value: 分量序号

void setClipPlane(const double * base, const double * normal, int idx = 0)

  • function: 设置裁剪平面
  • parameters:
    1. [i]const double * base: 裁剪平面基点
    2. [i] const double * normal: 裁剪平面法向
    3. [i] int idx = 0: 裁剪平面序号
  • return value: 无

void getClipPlaneEquation(double *eqn, int idx = 0)

  • function: 获取裁剪平面方程
  • parameters:
    1. [i]double *eqn: 方程系数数组(大小为4)
    2. [i] int idx = 0: 裁剪平面序号
  • return value: 无

void setClipPlaneCount(int cnt)

  • function: 设置裁剪平面个数
  • parameters:
    1. [i]int cnt: 裁剪平面个数
  • return value: 无

int getClipPlaneCount()

  • function: 获取裁剪平面个数
  • parameters: NULL
  • return value: 裁剪平面个数

void setClipPlane(const XPlane * fp, bool bUpdateViewData = true, int idx = 0)

  • function: 设置裁剪平面
  • parameters:
    1. [i]const XPlane * fp: 平面对象
    2. [i] bool bUpdateViewData = true: 是否更新视图
    3. [i] int idx = 0: 裁剪平面序号
  • return value: 无

void resetClipPlane(const real * box, int idx = 0)

  • function: 重置裁剪平面
  • parameters:
    1. [i]const real * box: 视图包围盒,用于计算裁剪平面的中心
    2. [i] int idx = 0: 裁剪平面序号
  • return value: 无

virtual ulong updatePickedItemColor(const XUniqueObjectID * ue = NULL, UpdateItemColorMode updateMode = UpdateColor_UnpickItem)

  • function: 更新拾取对象的颜色
  • parameters:
    1. [i]const XUniqueObjectID * ue = NULL: 拾取对象,若为空更新所有被拾取的对象
    2. [i] UpdateItemColorMode updateMode = UpdateColor_UnpickItem: 更新策略
  • return value: 视图数据的更新标志,用于指示XRender更新相关视图显示

vector<XRenderData> * getCmdRenderDataArray()

  • function: 获取功能预览视图数据数组
  • parameters: NULL
  • return value: 功能预览视图数据数组

XRenderData * getCmdRenderData(ulong cid)

  • function: 获取指定功能命令的预览数据
  • parameters:
    1. [i]ulong cid: 命令ID
  • return value: 指定功能命令的预览数据

void bindBuffer(XRenderData * r, int vBuf, int elBuf)

  • function: 将渲染数据绑定到给定ID号的VBO中
  • parameters:
    1. [i]XRenderData * r: 渲染数据
    2. [i] int vBuf: 顶点VBO ID号
    3. [i] int elBuf: 单元索引VBO ID号
  • return value: 无

virtual int getVertexBufferSize(TypeID bufType, bool bSecond = false)

  • function: 获取顶点数组的大小
  • parameters:
    1. [i]TypeID bufType: 顶点数组类型
    2. [i] bool bSecond = false: 是否第二模型
  • return value: 顶点数组的大小

int getVertexBufferSize(XModel * mdl, TypeID bufType)

  • function: 获取模型顶点数组的大小
  • parameters:
    1. [i]XModel * mdl: 模型对象
    2. [i] TypeID bufType: 顶点数组类型
  • return value: 模型顶点数组的大小

virtual XBoundBox getBoundBoxOfItems(vector<ItemPtr> * items)

  • function: 获取指定对象的包围盒
  • parameters:
    1. [i]vector<ItemPtr> * items: 指定数据对象数组
  • return value: 指定对象的包围盒

bool isMarkerAutoScale() const

  • function: 标记是否自动缩放
  • parameters: NULL
  • return value: 自动缩放返回true,否则返回false

bool isSecondEnable() const

  • function: 是否激活第二模型显示模式
  • parameters: NULL
  • return value: 激活返回true,否则返回false

void enableSecond(int showFlag)

  • function: 激活第二模型渲染模式
  • parameters:
    1. [i]int showFlag: 第二模型的渲染模式
  • return value: 无

void disableSecond()

  • function: 抑制第二模型渲染
  • parameters: NULL
  • return value: 无

int getSecondDisplayFilter() const

  • function: 获取第二模型的显示模式
  • parameters: NULL
  • return value: 第二模型的显示模式

void updateResultToVFF(XModel * mdl, const XResult * rlt, const XResult * deformRlt, int comp, int cid, VertexFrameFile * vff)

  • function: 更新结果数据的顶点帧文件中
  • parameters:
    1. [i]XModel * mdl: 模型对象
    2. [i] const XResult * rlt: 结果对象
    3. [i] const XResult * deformRlt: 变形结果对象
    4. [i] int comp: 结果分量
    5. [i] int cid: 参考坐标系
    6. [i] VertexFrameFile * vff: 顶点帧文件
  • return value: 无

XCurve * getCurveData()

  • function: 获取视图的曲线数据
  • parameters: NULL
  • return value: 视图的曲线数据

virtual void updateCurveData(int updateFlag)

  • function: 更新曲线数据
  • parameters:
    1. [i]int updateFlag: 更新标志
  • return value: 无

XVisualAngle * getVisualAngle()

  • function: 获取视角设置
  • parameters: NULL
  • return value: 视角设置

void getViewBoxByModel(XModel * mdl, bool bCheckInvisible, double * viewbox)

  • function: 获取模型对象的包围盒
  • parameters:
    1. [i]XModel * mdl: 模型对象
    2. [i] bool bCheckInvisible: 是否检查不可视对象
    3. [i] double * viewbox: 视图包围盒
  • return value: 无

void updateConditionMarker(XModel * mdl, TypeID type, float scale)

  • function:
  • parameters: 更新条件的标记
    1. [i]XModel * mdl: 模型对象
    2. [i] TypeID type: 条件类型
    3. [i] float scale: 缩放比例
  • return value: 无

virtual void initMarkerRenderData(TypeID type, XRenderData * rd)

  • function: 初始化标记渲染数据
  • parameters:
    1. [i]TypeID type: 标记类型
    2. [i] XRenderData * rd: 渲染数据结构体
  • return value: 无

XRenderData * getMarkerRenderData(TypeID type)

  • function: 获取标记渲染数据
  • parameters:
    1. [i]TypeID type: 标记类型
  • return value: 渲染数据结构体

vector<const XRenderData *> * getTransformViewData()

  • function: 获取变形渲染数据数组
  • parameters: NULL
  • return value: 变形渲染数据数组

void setTransformViewData(vector<const XRenderData *> * geoms)

  • function: 设置变形渲染数据
  • parameters:
    1. [i]vector<const XRenderData *> * geoms: 变形渲染数据数组
  • return value: 无

const float * getTransformMatrix() const

  • function: 获取变形视图变换矩阵
  • parameters: NULL
  • return value: 变形视图变换矩阵

void setTransformMatrix(const double * mat)

  • function: 设置变形视图变换矩阵
  • parameters:
    1. [i]const double * mat: 变形视图变换矩阵
  • return value: 无

vector<const XElement *> * getFragmentElems()

  • function: 获取实体单元对象数组
  • parameters: NULL
  • return value: 实体单元对象数组

void setFragmentElems(vector<const XElement *> * els)

  • function: 设置实体单元对象数组
  • parameters:
    1. [i]vector<const XElement *> * els: 实体单元对象数组
  • return value: 无

int getFragmentElemCount()

  • function: 获取实体单元对象个数
  • parameters: NULL
  • return value: 实体单元对象个数

void clearFragmentElems()

  • function: 清空实体单元对象数组
  • parameters: NULL
  • return value: 无

virtual const XRenderData * getFragmentViewData()

  • function: 获取实体单元对象渲染数据
  • parameters: NULL
  • return value: 实体单元对象渲染数据

virtual const XRenderData * getSectionViewData()

  • function: 获取截面视图数据
  • parameters: NULL
  • return value: 截面视图数据

virtual void updateShaderContextVar(const char * name)

  • function: 更新着色器上下文变量参数
  • parameters:
    1. [i]const char * name: 着色器名字
  • return value: 无

XShaderContext * getShaderContext(const char * name)

  • function: 获取指定名字的着色器上下文
  • parameters:
    1. [i]const char * name: 着色器名字
  • return value: 着色器上下文

void setShaderContext(const char * name, const char * vert, const char * frag)

  • function: 设置着色器上下文
  • parameters:
    1. [i]const char * name: 着色器名字
    2. [i] const char * vert: vert着色器程序文件名
    3. [i] const char * frag: frag着色器程序文件名
  • return value:

void setShaderContextEnable(const char * name, bool bEnable)

  • function: 设置着色器是否可用
  • parameters:
    1. [i]const char * name: 着色器名字
    2. [i] bool bEnable: 可用设置true,否则设为false
  • return value: 无

void buildViewDataForNodes(XModel * mdl, XRenderData * rd)

  • function: 构建顶点的视图数据
  • parameters:
    1. [i]XModel * mdl: 模型对象
    2. [i] XRenderData * rd: 顶点的视图数据
  • return value: 无

void buildViewDataForElems(vector<const XElement *> * elems, XRenderData * rd, bool bEnableNormal = false)

  • function: 构建单元的视图数据
  • parameters:
    1. [i]vector<const XElement *> * elems: 单元对象数组
    2. [i] XRenderData * rd: 渲染数据结构体
    3. [i] bool bEnableNormal = false: 是否构建法线数据
  • return value: 无

void buildViewDataForElemsWithIndex(vector<const XElement *> * els, XRenderData * rd, bool bEnableNormal)

  • function: 构建使用索引的单元视图数据
  • parameters:
    1. [i]vector<const XElement *> * els: 单元对象数组
    2. [i] XRenderData * rd: 渲染数据结构体
    3. [i] bool bEnableNormal: 是否构建法线数据
  • return value: 无

void buildRenderDataForPickedElems(XRenderData * rd, bool bUseIndex = false)

  • function: 构建拾取单元的渲染数据
  • parameters:
    1. [i]XRenderData * rd: 渲染数据结构体
    2. [i] bool bUseIndex = false: 使用单元索引(ELEMENT INDEX),表示使用glDrawElements渲染,否则使用glDrawArray渲染
  • return value: 无

virtual void refresh()

  • function: 更新视图
  • parameters: NULL
  • return value: 无

XModel * getViewModel()

  • function: 获取视图模型对象
  • parameters: NULL
  • return value: 视图模型对象

void setViewModel(ulong mid)

  • function: 设置视图模型对象
  • parameters:
    1. [i]ulong mid: 模型对象ID
  • return value: 无

void updateSectionRenderData(const XPlane * fp, vector<SegmentPoint> * sectionPoints, const float ** deform, const float * v, XRenderData * rd, ResultIndexMap * rim, int colorID = -1)

  • function: 更新截面视图数据
  • parameters:
    1. [i]const XPlane * fp: 截平面
    2. [i] vector<SegmentPoint> * sectionPoints: 截面交点数组(按三角片来组织)
    3. [i] const float ** deform: 变形向量数组
    4. [i] const float * v: 场数组
    5. [i] XRenderData * rd: 渲染数据
    6. [i] ResultIndexMap * rim: 结果编号索引
    7. [i] int colorID = -1: 默认颜色值
  • return value: 无

void buildSectionFacets(XModel * mdl, const XPlane * fp, vector<SegmentPoint> * sectionPoints)

  • function: 构建截面三角片数据
  • parameters:
    1. [i]XModel * mdl: 模型对象
    2. [i] const XPlane * fp: 截平面
    3. [i] vector<SegmentPoint> * sectionPoints: 三角片的顶点(交点)数组
  • return value: 无
class/application/xviewdata.txt · Last modified: 2023/08/04 08:40 (external edit)