AnyCAD Rapid API 2026
Help you to create a better world!
载入中...
搜索中...
未找到
AnyCAD.Foundation.TopoShape类 参考

几何拓扑形状对象 更多...

类 AnyCAD.Foundation.TopoShape 继承关系图:
AnyCAD.Foundation.AObject

Public 成员函数

 TopoShape (global::System.IntPtr cPtr, bool cMemoryOwn)
 仅供内部使用
 
override ClassId GetClassId ()
 获取对象的类型信息
 
EnumTopoShapeType GetShapeType ()
 获取拓扑形状类型
 
bool IsShapeType (EnumTopoShapeType type)
 测试形状是否为指定类型
 
bool IsNullShape ()
 测试形状是否为空
 
GBBox GetBBox ()
 获取轴对齐包围盒(AABB)
 
GBBox GetOptimalBBox ()
 获取精确包围盒(OBB)
 
GTrsf GetLocalTransform ()
 获取局部变换矩阵
 
TopoShapeList GetChildren (EnumTopoShapeType subType)
 获取指定类型的子形状列表
 
TopoShape FindChild (EnumTopoShapeType subType, int idx)
 查找指定索引的子形状
 
int FindChildIndex (TopoShape subShape)
 获取子形状在父形状中的索引
 
bool IsOrientable ()
 检查形状是否可定向
 
TopoShape Reversed ()
 获取反向形状
 
EnumTopoOrientation GetOrientation ()
 获取当前形状的方向
 
void SetOrientation (EnumTopoOrientation orient)
 设置形状的方向
 
TopoShape Oriented (EnumTopoOrientation orient)
 创建指定方向的新形状
 
bool IsConvex ()
 检查形状是否为凸形状
 
bool IsEqualShape (TopoShape other)
 判断两个形状是否相等(严格比较)
 
bool IsSameShape (TopoShape other)
 判断两个形状是否相同(忽略方向)
 
bool IsPartnerShape (TopoShape other)
 判断两个形状是否为伙伴(共享底层几何)
 
bool IsClosed ()
 检查形状是否封闭
 
string toString ()
 将形状转换为字符串表示
 
ulong HashCode ()
 计算形状的哈希码
 
bool Write (string fileName)
 将形状保存到文件
 
- Public 成员函数 继承自 AnyCAD.Foundation.AObject
 AObject (global::System.IntPtr cPtr, bool cMemoryOwn)
 仅供内部使用
 
void Dispose ()
 
virtual bool IsEqual (AObject other)
 对象是否相同,或同一个对象
 

静态 Public 成员函数

static new ClassId GetStaticClassId ()
 
static TopoShape Cast (AObject obj)
 
static TopoShape Read (string buffer)
 从文件读取形状
 
- 静态 Public 成员函数 继承自 AnyCAD.Foundation.AObject
static ClassId GetStaticClassId ()
 获取类信息
 

详细描述

几何拓扑形状对象

TopoShape是几何内核中的核心类,用于表示和管理三维几何拓扑结构。 它提供了对顶点、边、线框、面、壳、实体和复合体等 拓扑元素的操作和查询功能。支持形状的变换、方向控制、属性查询以及序列化操作。

成员函数说明

◆ FindChild()

TopoShape AnyCAD.Foundation.TopoShape.FindChild ( EnumTopoShapeType subType,
int idx )

查找指定索引的子形状

参数
subType子形状的拓扑类型
idx索引值(从0开始)
返回
TopoShapePtr 子形状的智能指针,如果索引无效则返回nullptr

根据类型和索引获取特定的子形状。

◆ FindChildIndex()

int AnyCAD.Foundation.TopoShape.FindChildIndex ( TopoShape subShape)

获取子形状在父形状中的索引

参数
subShape要查找的子形状
返回
索引值,如果查找失败返回-1

用于确定子形状在其同类型兄弟形状中的位置。

◆ GetBBox()

GBBox AnyCAD.Foundation.TopoShape.GetBBox ( )

获取轴对齐包围盒(AABB)

返回
Bnd_Box 包围盒对象

计算并返回形状的轴对齐包围盒,用于快速的空间查询和碰撞检测。 此方法性能较好,但可能不是最紧密的包围盒。

◆ GetChildren()

TopoShapeList AnyCAD.Foundation.TopoShape.GetChildren ( EnumTopoShapeType subType)

获取指定类型的子形状列表

参数
subType子形状的拓扑类型
返回
TopoShapeList 子形状列表

遍历形状的所有子元素,返回指定类型的子形状集合。 例如,可以从实体中获取所有面,或从复合体中获取所有边。

◆ GetClassId()

override ClassId AnyCAD.Foundation.TopoShape.GetClassId ( )
virtual

获取对象的类型信息

返回
类信息

重载 AnyCAD.Foundation.AObject .

◆ GetLocalTransform()

GTrsf AnyCAD.Foundation.TopoShape.GetLocalTransform ( )

获取局部变换矩阵

返回
gp_Trsf 变换矩阵

返回形状相对于其父形状的局部坐标变换,包括平移、旋转和缩放。

◆ GetOptimalBBox()

GBBox AnyCAD.Foundation.TopoShape.GetOptimalBBox ( )

获取精确包围盒(OBB)

返回
Bnd_Box 包围盒对象

计算并返回形状的最优包围盒,比GetBBox()更精确但性能较低。 适用于需要精确包围盒的场景。

◆ GetOrientation()

EnumTopoOrientation AnyCAD.Foundation.TopoShape.GetOrientation ( )

获取当前形状的方向

返回
EnumTopoOrientation 方向枚举值

返回形状的拓扑方向:FORWARD、REVERSED、INTERNAL或EXTERNAL。

参见
EnumTopoOrientation

◆ GetShapeType()

EnumTopoShapeType AnyCAD.Foundation.TopoShape.GetShapeType ( )

获取拓扑形状类型

返回
EnumTopoShapeType 拓扑类型枚举值

返回当前形状的拓扑类型,如顶点、边、线框、面、壳、实体或复合体。

参见
EnumTopoShapeType

◆ HashCode()

ulong AnyCAD.Foundation.TopoShape.HashCode ( )

计算形状的哈希码

返回
uint64_t 哈希值

基于形状的底层数据生成唯一的哈希值,可用于快速比较和哈希表存储。

◆ IsClosed()

bool AnyCAD.Foundation.TopoShape.IsClosed ( )

检查形状是否封闭

返回
如果形状是封闭的则返回true,否则返回false

封闭形状没有边界,如球面、环面或封闭的实体。

◆ IsConvex()

bool AnyCAD.Foundation.TopoShape.IsConvex ( )

检查形状是否为凸形状

返回
如果形状是凸的则返回true,否则返回false

凸形状的定义是:形状内任意两点的连线都在形状内部。

◆ IsEqualShape()

bool AnyCAD.Foundation.TopoShape.IsEqualShape ( TopoShape other)

判断两个形状是否相等(严格比较)

参数
other要比较的另一个形状
返回
如果两个形状完全相等则返回true

相等条件:两个形状共享相同的TShape、位置和方向。 这是最严格的比较方式。

◆ IsNullShape()

bool AnyCAD.Foundation.TopoShape.IsNullShape ( )

测试形状是否为空

返回
如果形状为空(null)则返回true,否则返回false

检查内部是否包含有效的拓扑形状数据。

◆ IsOrientable()

bool AnyCAD.Foundation.TopoShape.IsOrientable ( )

检查形状是否可定向

返回
如果形状可定向则返回true,否则返回false

可定向形状具有明确的内外侧定义,如封闭的面或实体。

◆ IsPartnerShape()

bool AnyCAD.Foundation.TopoShape.IsPartnerShape ( TopoShape other)

判断两个形状是否为伙伴(共享底层几何)

参数
other要比较的另一个形状
返回
如果两个形状是伙伴关系则返回true

伙伴关系条件:两个形状共享相同的TShape,但位置和方向可以不同。 这表示它们引用相同的底层几何数据。

◆ IsSameShape()

bool AnyCAD.Foundation.TopoShape.IsSameShape ( TopoShape other)

判断两个形状是否相同(忽略方向)

参数
other要比较的另一个形状
返回
如果两个形状相同则返回true

相同条件:两个形状共享相同的TShape和位置,但方向可以不同。

◆ IsShapeType()

bool AnyCAD.Foundation.TopoShape.IsShapeType ( EnumTopoShapeType type)

测试形状是否为指定类型

参数
type要测试的拓扑类型
返回
如果形状是指定类型则返回true,否则返回false

用于快速判断形状的拓扑类型,避免多次调用GetShapeType()。

◆ Oriented()

TopoShape AnyCAD.Foundation.TopoShape.Oriented ( EnumTopoOrientation orient)

创建指定方向的新形状

参数
orient指定的方向
返回
TopoShapePtr 具有指定方向的新形状

创建一个与原形状几何相同但方向不同的新形状,原形状保持不变。

◆ Read()

static TopoShape AnyCAD.Foundation.TopoShape.Read ( string buffer)
static

从文件读取形状

参数
buffer文件路径或数据缓冲区
返回
TopoShapePtr 读取的形状智能指针

从文件或数据缓冲区加载形状,自动识别文件格式。

◆ Reversed()

TopoShape AnyCAD.Foundation.TopoShape.Reversed ( )

获取反向形状

返回
TopoShapePtr 方向反转后的新形状

创建一个新的形状对象,其拓扑方向与原形状相反。 原形状保持不变。

◆ SetOrientation()

void AnyCAD.Foundation.TopoShape.SetOrientation ( EnumTopoOrientation orient)

设置形状的方向

参数
orient要设置的方向枚举值

修改当前形状的拓扑方向。注意这可能影响面的法向和实体的内外侧判断。

参见
EnumTopoOrientation

◆ toString()

string AnyCAD.Foundation.TopoShape.toString ( )

将形状转换为字符串表示

返回
std::string 形状的文本描述

返回包含形状类型、拓扑信息等内容的字符串,用于调试和日志记录。

◆ Write()

bool AnyCAD.Foundation.TopoShape.Write ( string fileName)

将形状保存到文件

参数
fileName文件路径
返回
如果保存成功则返回true,否则返回false