24 template<
typename TDataType>
31 typedef typename TDataType::Real
Real;
32 typedef typename TDataType::Coord
Coord;
42 DEF_VAR(
bool, ReverseNormal,
false,
"ReverseNormal");
52 EarClipper(std::vector<DataType3f::Coord> vts, std::vector<TopologyModule::Triangle>& outTriangles) {
polyClip(vts,outTriangles); };
56 void polyClip(std::vector<DataType3f::Coord> vts, std::vector<TopologyModule::Triangle>& outTriangles);
60 if (vts.isEmpty()) {
return; }
64 std::vector<DataType3f::Coord> vtsvector;
65 for (
size_t i = 0; i < c_vts.size(); i++)
67 vtsvector.push_back(c_vts[i]);
70 this->
polyClip(vtsvector, outTriangles);
74 if (vts.isEmpty()) {
return; }
76 std::vector<DataType3f::Coord> vtsvector;
77 for (
size_t i = 0; i < vts.size(); i++)
79 vtsvector.push_back(vts[i]);
82 this->
polyClip(vtsvector, outTriangles);
#define IMPLEMENT_TCLASS(name, T1)
void polyClip(CArray< Coord > vts, std::vector< TopologyModule::Triangle > &outTriangles)
DEF_VAR(bool, ReverseNormal, false, "ReverseNormal")
void polyClip(DArray< Coord > vts, std::vector< TopologyModule::Triangle > &outTriangles)
EarClipper(std::vector< DataType3f::Coord > vts, std::vector< TopologyModule::Triangle > &outTriangles)
DEF_INSTANCE_IN(PointSet< TDataType >, PointSet, "")
void resetStates() override
DECLARE_TCLASS(EarClipper, TDataType)
void polyClip(std::vector< DataType3f::Coord > vts, std::vector< TopologyModule::Triangle > &outTriangles)
DEF_INSTANCE_STATE(TriangleSet< TDataType >, TriangleSet, "")
A PointSet stores the coordinates for a set of independent points.
This is an implementation of AdditiveCCD based on peridyno.
Array< T, DeviceType::GPU > DArray
Array< T, DeviceType::CPU > CArray