We introduce CASC: a new, modern, and header-only C++ library which provides a data structure to represent arbitrary dimension abstract simplicial complexes (ASC) with user-defined classes stored directly on the simplices at each dimension. This is accomplished by using the latest C++ language features including variadic template parameters introduced in C++11 and automatic function return type deduction from C++14. Effectively CASC decouples the representation of the topology from the interactions of user data. We present the innovations and design principles of the data structure and related algorithms. This includes a meta-data aware decimation algorithm which is general for collapsing simplices of any dimension. We also present an example application of this library to represent an orientable surface mesh.
翻译:我们引入了CASC:一个新的、现代的和信头唯一的 C++ 库,它提供了一个数据结构,代表任意的尺寸抽象的简化综合体(ASC),其用户定义的分类直接储存在每个维度的简化分类上。这是通过使用最新的C++语言特征实现的,包括C++11中引入的 variadic 模板参数和C++14中的自动函数返回类型扣减。CASC有效地将表层的表述与用户数据的互动区分开来。我们介绍了数据结构和相关算法的创新和设计原则。这包括一个具有元数据意识的毁灭算法,该算法对于任何维度的崩溃的简化是一般的。我们还介绍了该图书馆的一个示例应用,以代表一个可调整的表面网格。