23 Real iso = this->varIsoValue()->getValue();
25 auto levelset = this->ioVolume()->constDataPtr();
27 auto& sdf = levelset->getSDF();
29 Coord lowerBound = sdf.lowerBound();
30 Coord upperBound = sdf.upperBound();
32 Real h = sdf.getGridSpacing();
37 int nx = (upperBound[0] - lowerBound[0]) / h;
38 int ny = (upperBound[1] - lowerBound[1]) / h;
39 int nz = (upperBound[2] - lowerBound[2]) / h;
56 int totalVNum = reduce.
accumulate(voxelVertNum.begin(), voxelVertNum.size());
59 scan.
exclusive(voxelVertNum.begin(), voxelVertNum.size());
74 if (this->outTriangleSet()->isEmpty()) {
75 this->outTriangleSet()->allocate();
78 auto triSet = this->outTriangleSet()->getDataPtr();
79 triSet->setPoints(vertices);
80 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)