30 auto sdfTopo = this->inLevelSet()->getDataPtr();
31 auto isoValue = this->varIsoValue()->getData();
33 auto& sdf = sdfTopo->getSDF();
35 Coord lowerBound = sdf.lowerBound();
36 Coord upperBound = sdf.upperBound();
38 Real h = this->varGridSpacing()->getData();
40 int nx = (upperBound[0] - lowerBound[0]) / h;
41 int ny = (upperBound[1] - lowerBound[1]) / h;
42 int nz = (upperBound[2] - lowerBound[2]) / h;
59 int totalVNum = reduce.
accumulate(voxelVertNum.begin(), voxelVertNum.size());
62 scan.
exclusive(voxelVertNum.begin(), voxelVertNum.size());
77 if (this->stateTriangleSet()->isEmpty()) {
81 auto triSet = this->stateTriangleSet()->getDataPtr();
82 triSet->setPoints(vertices);
83 triSet->setTriangles(triangles);
static void constructTriangles(DArray< Coord > &vertices, DArray< TopologyModule::Triangle > &triangles, DArray< int > &vertNum, DArray3D< Real > &distances, Coord origin, Real isoValue, Real h)