28#define Inside( a, iso, h ) \
29 ((a) < float(iso - 0.001953125 * h ))
31#define Outside( a, iso, h ) \
32 ((a) > float( iso + 0.001953125 * h ))
34#define OnSurface( a, iso, h ) \
35 ((a) <= float( iso + 0.001953125 * h ) && (a) >= float(iso - 0.001953125 * h ))
37 template<
typename TDataType>
41 typedef typename TDataType::Real
Real;
42 typedef typename TDataType::Coord
Coord;
GPU supported signed distance field.
static void countVerticeNumber(DArray< int > &num, DArray3D< Real > &distances, Real isoValue, Real h)
static void reconstructSDF(DArray3D< Real > &distances, Coord origin, Real h, DistanceField3D< TDataType > &sdf)
static void countVerticeNumberForOctree(DArray< uint > &num, DArray< Coord > &vertices, DArray< Real > &sdfs, Real isoValue)
static void countVerticeNumberForOctreeClipper(DArray< uint > &num, DArray< Coord > &vertices, TPlane3D< Real > plane)
static void constructTrianglesForOctree(DArray< Coord > &triangleVertices, DArray< TopologyModule::Triangle > &triangles, DArray< uint > &num, DArray< Coord > &cellVertices, DArray< Real > &sdfs, Real isoValue)
static void constructTrianglesForOctreeClipper(DArray< Real > &vertSDFs, DArray< Coord > &triangleVertices, DArray< TopologyModule::Triangle > &triangles, DArray< uint > &num, DArray< Coord > &cellVertices, DArray< Real > &sdfs, TPlane3D< Real > plane)
static void constructTrianglesForClipper(DArray< Real > &field, DArray< Coord > &vertices, DArray< TopologyModule::Triangle > &triangles, DArray< int > &vertNum, DistanceField3D< TDataType > &sdf, TPlane3D< Real > plane)
static void countVerticeNumberForClipper(DArray< int > &num, DistanceField3D< TDataType > &sdf, TPlane3D< Real > plane)
static void constructTriangles(DArray< Coord > &vertices, DArray< TopologyModule::Triangle > &triangles, DArray< int > &vertNum, DArray3D< Real > &distances, Coord origin, Real isoValue, Real h)
2D geometric primitives in three-dimensional space
This is an implementation of AdditiveCCD based on peridyno.
Array< T, DeviceType::GPU > DArray
Array3D< T, DeviceType::GPU > DArray3D