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 metadata 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有效地将表层的表述与用户数据的互动脱钩。我们介绍了数据结构和相关算法的创新和设计原则。这包括一种对任何维度的简化都具有常识的具有消亡意识的元数据算法。我们还介绍了该图书馆的一个应用实例,以代表一个可调整的表面网格。