User Tools

Site Tools


class:domain:xnode

XNode

Inherited from XItem,

Inherited by NULL

Friend class NodeManager,

Description

XNode从XItem继承,是对物理模型中的节点的数据抽象,它包含节点坐标信息,是单元必不可少的组成数据,也是XT框架中模型数据的重要组成部分,在模型内节点ID不可重复,它由NodeManager创建和销毁。
为了更方便的进行网格操作(编辑、修改或优化等等),XNode缓存了所有用到这个节点的单元指针信息并以数组的形式保存下来(XItemArray<ElemPtr,8>),综合考虑几何与实体网格的数据规模以及单元节点的数量关系,该数组以固定8个单元指针的大小增加或缩减容量,数组所使用的内存空间均从内存池中分配,这样可有效避免内存碎片化。单元的创建、修改以及销毁都将及时更新到该缓存数组中,XNode提供了接口访问这些单元,它在搜索构建节点领域信息时非常高效和有用(但也需要在创建单元时更新该数组)。在某些场合,一些节点没有任何单元与之关联,称之为浮动节点(Float Node)。
为了满足实际应用开发的需要,Node还提供了标志位和扩展数据接口,以保持或关联某些临时数据,比如setFlag函数常常用于设置一个时间戳,用来判断该节点是否已经被访问或者被处理,这比使用std::set类似的数据结构更高效也更省资源(需要注意的时,这种应用不适用于多线程)。

Members

Public interface


Vector3r m_dCoord

节点坐标

ulong m_ulFlag

节点标志位

int m_ulRId

在后处理中的结果索引

void * m_pExtData

XItemArray<ElemPtr,8> m_pElems


XNode(ulong id = 0)

  • function: 构造函数
  • parameters:
    1. [i]ulong id = 0:
  • return value: 无

void setFlag(int i)

  • function:设置辅助标志,一般做临时辅助用途
  • parameters:
    1. [i]int i: 标志值
  • return value: 无

int getFlag() const

  • function: 获取当前标志值
  • parameters: NULL
  • return value: 当前标志值

void setExtData(const void * pData)

  • function: 设置扩展数据地址
  • parameters:
    1. [i]const void * pData: 扩展数据地址
  • return value: 无

void * getExtData() const

  • function: 获取当前扩展项数据地址
  • parameters: NULL
  • return value: 扩展数据地址

void increaseFlag()

  • function: 标志值增加1
  • parameters: NULL
  • return value: 无

void increaseElementCount()

  • function:
  • parameters: NULL
  • return value:

void decreaseElementCount()

  • function:
  • parameters: NULL
  • return value:

int getRId() const

  • function: 获取节点的结果位置索引
  • parameters: NULL
  • return value: 节点的结果位置索引

void setRId(int id)

  • function: 设置节点的结果位置索引
  • parameters:
    1. [i]int id: 节点的结果位置索引
  • return value: 无

void setCoord(const real * coord)

  • function: 设置坐标
  • parameters:
    1. [i]const real * coord: 新的坐标值
  • return value: 无

const real * getCoord() const

  • function: 获取坐标值
  • parameters: NULL
  • return value: 坐标数组指针

int getElementCount() const

  • function:
  • parameters: NULL
  • return value:

int find(ElemPtr el) const

  • function:
  • parameters:
    1. [i]ElemPtr el:
  • return value:

void read(XBinaryIO * io)

  • function:
  • parameters:
    1. [i]XBinaryIO * io:
  • return value:

void write(XBinaryIO * io)

  • function:
  • parameters:
    1. [i]XBinaryIO * io:
  • return value:

ElemPtr getElement(int index) const

  • function:
  • parameters:
    1. [i]int index:
  • return value:

void copyElementToArray(XArray<ElemPtr> & elArr) const

  • function:
  • parameters:
    1. [i]XArray<ElemPtr> & elArr:
  • return value:
class/domain/xnode.txt · Last modified: 2023/05/06 07:01 (external edit)