====== XRenderData ====== **//Inherited from//** NULL **//Inherited by//** NULL **//Friend class//** NULL **//Description//** XRenderData封装了用于OpenGL三维显示的渲染数据结构体,它将一次典型的OpenGL渲染中所使用的各种顶点数据都组装在该结构体中,包括顶点数组、法线数组、边标志位数组、纹理数组、顶点编码数组、顶点序号数组、值数组、变形向量数组等,开发者根据需要将所需数据分别存入到对应数组中,供XRender的渲染接口调用完成绘制。 **//Members//** * ulong [[xrenderdata#ulcid|ulCid]] * int [[xrenderdata#imode|iMode]] * int [[xrenderdata#imethod|iMethod]] * int [[xrenderdata#ivertexcount|iVertexCount]] * FArray [[xrenderdata#vertexarr|vertexArr]] * FArray [[xrenderdata#normalarr|normalArr]] * FArray [[xrenderdata#texarr|texArr]] * IArray [[xrenderdata#colorarr|colorArr]] * IArray [[xrenderdata#elcolorarr|elColorArr]] * IArray [[xrenderdata#indexarr|indexArr]] * FArray [[xrenderdata#valuearr|valueArr]] * FArray [[xrenderdata#vectorxarr|vectorXArr]] * FArray [[xrenderdata#vectoryarr|vectorYArr]] * FArray [[xrenderdata#vectorzarr|vectorZArr]] **//Private interface//** * [[xrenderdata#xrenderdata1|XRenderData]](int mode = Render_Tri, int ver_size = 0, int index_size = 0) * [[xrenderdata#~xrenderdata|~XRenderData]]() * void [[xrenderdata#makesolidcube|makeSolidCube]](const real * center, const real * size) * void [[xrenderdata#makesolidsphere|makeSolidSphere]](const real * center, const real * r) * void [[xrenderdata#makesolidcylinder|makeSolidCylinder]](const real * center, real baseR, real topR, real height) * void [[xrenderdata#makesolidarrow|makeSolidArrow]](real H, real w, real r, real angle) * void [[xrenderdata#makelinearrow|makeLineArrow]](real H, real w, real r, real angle) * void [[xrenderdata#makeline|makeLine]](const real * start, const real * end) * void [[xrenderdata#maketris|makeTris]](const Vector3r * pts, int ptCount) * void [[xrenderdata#makepoints|makePoints]](const Vector3r * pts, int ptCount) * XRenderData & operator [[xrenderdata#copy|=]] (const XRenderData & r) * [[xrenderdata#xrenderdata2|XRenderData]](const [[xrenderdata#xrenderdata2|XRenderData]] & r) * void [[xrenderdata#allocvertex|allocVertex]](int ver_size) * void [[xrenderdata#allocnormal|allocNormal]](int normal_size = 0) * void [[xrenderdata#alloctex|allocTex]](int normal_size = 0) * void [[xrenderdata#allocindex|allocIndex]](int indexSize) * void [[xrenderdata#allocedgeflag|allocEdgeFlag]](int flagSize) * bool * [[xrenderdata#edgeflagdata|edgeFlagData]]() * const bool * [[xrenderdata#edgeflagdata|edgeFlagData]]() const * int * [[xrenderdata#elemcolordata|elemColorData]]() * const int * [[xrenderdata#elemcolordata|elemColorData]]() const * void [[xrenderdata#alloccolor|allocColor]](int colorSize = -1) * void [[xrenderdata#alloctricolor|allocTriColor]](int colorSize = -1) * void [[xrenderdata#allocvalue|allocValue]](int valueSize = -1) * void [[xrenderdata#allocdeform|allocDeform]](int valueSize = -1) * void [[xrenderdata#reset|reset]]() * void [[xrenderdata#release|release]]() * void [[xrenderdata#enableextendcapacity|enableExtendCapacity]]() * void [[xrenderdata#disableextendcapacity|disableExtendCapacity]]() * bool [[xrenderdata#iscapacityextended|isCapacityExtended]]() const * int [[xrenderdata#getvertexcount|getVertexCount]]() const * void [[xrenderdata#updatecapacity|updateCapacity]](int newVertexCount) * void [[xrenderdata#append|append]](const XRenderData & rd) ---- {{anchor:ulcid}} **ulong ulCid** 关联的功能命令ID {{anchor:imode}} **int iMode** 渲染模式(面、线、点) {{anchor:imethod}} **int iMethod** 渲染数据的构造方法 {{anchor:ivertexcount}} **int iVertexCount** 渲染数据顶点数 {{anchor:vertexarr}} **FArray vertexArr** 顶点坐标数组 {{anchor:normalarr}} **FArray normalArr** 顶点法向数组 {{anchor:texarr}} **FArray texArr** 顶点纹理数组 {{anchor:colorarr}} **IArray colorArr** 顶点颜色数组 {{anchor:elcolorarr}} **IArray elColorArr** 顶点单元编码数组 {{anchor:indexarr}} **IArray indexArr** 顶点索引数组 {{anchor:valuearr}} **FArray valueArr** 顶点值数组 {{anchor:vectorxarr}} **FArray vectorXArr** 顶点矢量属性X数组 {{anchor:vectoryarr}} **FArray vectorYArr** 顶点矢量属性Y数组 {{anchor:vectorzarr}} **FArray vectorZArr** 顶点矢量属性Z数组 ---- {{anchor:xrenderdata1}} **XRenderData(int mode = Render_Tri, int ver_size = 0, int index_size = 0) ** *function: 构造函数 *parameters: - [i]int mode = Render_Tri: 三角片渲染模式 - [i] int ver_size = 0: 顶点个数 - [i] int index_size = 0: 索引个数 *return value: 无 {{anchor:~xrenderdata}} **~XRenderData()** *function: 析构函数 *parameters: NULL *return value: 无 {{anchor:makesolidcube}} **void makeSolidCube(const real * center, const real * size)** *function: 构建立方体面渲染数据 *parameters: - [i]const real * center: 立方体中心 - [i] const real * size: 立方体尺寸 *return value: 无 {{anchor:makesolidsphere}} **void makeSolidSphere(const real * center, const real * r)** *function: 构建球体面渲染数据 *parameters: - [i]const real * center: 球心坐标 - [i] const real * r: 球半径 *return value: 无 {{anchor:makesolidcylinder}} **void makeSolidCylinder(const real * center, real baseR, real topR, real height)** *function: 构建圆柱体面渲染数据 *parameters: - [i]const real * center: 底面中心 - [i] real baseR: 底半径 - [i] real topR: 顶半径 - [i] real height: 圆柱高度 *return value: 无 {{anchor:makesolidarrow}} **void makeSolidArrow(real H, real w, real r, real angle)** *function: 构建箭头渲染数据 *parameters: - [i]real H: 箭头高度 - [i] real w: 箭尾直径 - [i] real r: 箭头半径 - [i] real angle: 箭头角度 *return value: 无 {{anchor:makelinearrow}} **void makeLineArrow(real H, real w, real r, real angle)** *function: 构建线状箭头渲染数据 *parameters: - [i]real H: 箭头高度 - [i] real w: 箭尾直径 - [i] real r: 箭头半径 - [i] real angle: 箭头角度 *return value: 无 {{anchor:makeline}} **void makeLine(const real * start, const real * end)** *function: 构建线渲染数据 *parameters: - [i]const real * start: 起始坐标 - [i] const real * end: 结束坐标 *return value: 无 {{anchor:maketris}} **void makeTris(const Vector3r * pts, int ptCount)** *function: 构建三角片渲染数据 *parameters: - [i]const Vector3r * pts: 三角片数据顶点数组 - [i] int ptCount: 顶点数 *return value: 无 {{anchor:makepoints}} **void makePoints(const Vector3r * pts, int ptCount)** *function: 构建点渲染数据 *parameters: - [i]const Vector3r * pts: 点数组 - [i] int ptCount: 点个数 *return value: 无 {{anchor:copy}} **XRenderData & operator = (const XRenderData & r)** *function: 赋值构造函数 *parameters: - [i]const XRenderData & r: 复制对象 *return value: 本对象引用 {{anchor:xrenderdata2}} **XRenderData(const XRenderData & r)** *function: 复制构造函数 *parameters: - [i]const [[xrenderdata#xrenderdata2|XRenderData]] & r: 复制对象 *return value: 无 {{anchor:allocvertex}} **void allocVertex(int ver_size)** *function: 分配顶点数组内存空间 *parameters: - [i]int ver_size: 顶点数 *return value: 无 {{anchor:allocnormal}} **void allocNormal(int normal_size = 0)** *function: 分配顶点法线数组内存空间 *parameters: - [i]int normal_size = 0: 法线数组个数 *return value: 无 {{anchor:alloctex}} **void allocTex(int normal_size = 0)** *function: 分配顶点纹理数组内存空间 *parameters: - [i]int normal_size = 0: 纹理数组个数 *return value: 无 {{anchor:allocindex}} **void allocIndex(int indexSize)** *function: 分配顶点索引数组内存空间 *parameters: - [i]int indexSize: 索引数组个数 *return value: 无 {{anchor:allocedgeflag}} **void allocEdgeFlag(int flagSize)** *function: 分配顶点边标志数组内存空间 *parameters: - [i]int flagSize: 顶点边标志数组大小 *return value: 无 {{anchor:edgeflagdata}} **bool * edgeFlagData()** *function: 获取顶点边标志数组 *parameters: NULL *return value: 顶点边标志数组 {{anchor:edgeflagdata}} **const bool * edgeFlagData() const** *function: 获取顶点边标志数组 *parameters: NULL *return value: 顶点边标志数组 {{anchor:elemcolordata}} **int * elemColorData()** *function: 获取顶点单元编码数组 *parameters: NULL *return value: 顶点单元编码数组 {{anchor:elemcolordata}} **const int * elemColorData() const** *function: 获取顶点单元编码数组 *parameters: NULL *return value: 顶点单元编码数组 {{anchor:alloccolor}} **void allocColor(int colorSize = -1)** *function: 分配顶点颜色数组内存空间 *parameters: - [i]int colorSize = -1: 颜色数组个数 *return value: 无 {{anchor:alloctricolor}} **void allocTriColor(int colorSize = -1)** *function: 分配顶点颜色数组内存空间 *parameters: - [i]int colorSize = -1: 颜色数组个数 *return value: 无 {{anchor:allocvalue}} **void allocValue(int valueSize = -1)** *function: 分配顶点属性值数组内存空间 *parameters: - [i]int valueSize = -1: 属性值数组大小 *return value: 顶点属性值数组内存空间 {{anchor:allocdeform}} **void allocDeform(int valueSize = -1)** *function: 分配顶点变形数组内存空间 *parameters: - [i]int valueSize = -1: 变形数组大小 *return value: 无 {{anchor:reset}} **void reset()** *function: 重置渲染数据对象 *parameters: NULL *return value: 无 {{anchor:release}} **void release()** *function: 释放渲染数据对象内存空间 *parameters: NULL *return value: 无 {{anchor:enableextendcapacity}} **void enableExtendCapacity()** *function: 渲染数据数组可动态扩展大小 *parameters: NULL *return value: 无 {{anchor:disableextendcapacity}} **void disableExtendCapacity()** *function: 渲染数据数组不可动态扩展大小 *parameters: NULL *return value: 无 {{anchor:iscapacityextended}} **bool isCapacityExtended() const** *function: 渲染数据数组是否可动态扩展大小 *parameters: NULL *return value: 可动态扩展返回true,否则返回false {{anchor:getvertexcount}} **int getVertexCount() const** *function: 获取顶点个数 *parameters: NULL *return value: 顶点个数 {{anchor:updatecapacity}} **void updateCapacity(int newVertexCount)** *function: 扩展渲染数据数组大小 *parameters: - [i]int newVertexCount: 新的顶点数组大小无 *return value: 无 {{anchor:append}} **void append(const XRenderData & rd)** *function: 将其他渲染数据对象添加到本对象尾部 *parameters: - [i]const XRenderData & rd: 待添加的渲染数据对象 *return value: 无