Lee Christopher T, Moody John B, Amaro Rommie E, McCammon J Andrew, Holst Michael J
Department of Chemistry and Biochemistry, University of California San Diego.
ViaSat, Inc. Carlsbad-Bldg 10-2063, 6155 El Camino Real, Carlsbad, CA 92009.
ACM Trans Math Softw. 2019 Aug;45(3). doi: 10.1145/3321515.
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中引入的可变参数模板参数以及C++14中的自动函数返回类型推导。实际上,CASC将拓扑结构的表示与用户数据的交互解耦。我们展示了数据结构和相关算法的创新点与设计原则。这包括一种元数据感知的简化算法,该算法对于折叠任何维度的单纯形都具有通用性。我们还展示了该库在表示可定向曲面网格方面的一个示例应用。