8#include "Topology/TriangleSet.h"
14 template<
typename TDataType>
22 template<
typename TDataType>
46 template<
typename TDataType>
55 for (
size_t t = 0; t < m_obstacles.size(); t++)
57 for (
int i = 0; i <
pSys.size(); i++)
63 m_obstacles[t]->varNormalFriction()->setValue(this->
varNormalFriction()->getValue());
65 m_obstacles[t]->constrain(
posFd->getData(),
velFd->getData(), dt);
72 template<
typename TDataType>
75 auto boundary = std::make_shared<BoundaryConstraint<TDataType>>();
85 template<
typename TDataType>
88 auto boundary = std::make_shared<BoundaryConstraint<TDataType>>();
97 Coord scale = (hi - lo) / 2;
98 Coord center = (hi + lo) / 2;
103 template<
typename TDataType>
106 auto boundary = std::make_shared<BoundaryConstraint<TDataType>>();
116 template<
typename TDataType>
119 for (
int i = 0; i < m_obstacles.size(); i++)
121 m_obstacles[i]->m_cSDF->scale(s);
125 template<
typename TDataType>
128 for (
int i = 0; i < m_obstacles.size(); i++)
130 m_obstacles[i]->m_cSDF->translate(t);
136 template<
typename TDataType>
GPU supported signed distance field.
#define DEFINE_CLASS(name)
#define IMPLEMENT_TCLASS(name, T1)
void loadShpere(Coord center, Real r, Real distance=0.005f, bool bOutBoundary=false, bool bVisible=false)
void loadSDF(std::string filename, bool bOutBoundary=false)
void updateStates() override
~StaticBoundary() override
std::shared_ptr< Node > loadCube(Coord lo, Coord hi, Real distance=0.005f, bool bOutBoundary=false)
This is an implementation of AdditiveCCD based on peridyno.
ArrayMap< T, DeviceType::GPU > DArrayMap