1#include "ContactsToPointSet.h"
5 IMPLEMENT_TCLASS(ContactsToPointSet, TDataType);
7 template<typename TDataType>
8 ContactsToPointSet<TDataType>::ContactsToPointSet()
13 template<typename Coord>
14 __global__ void SetupContactPoints(
15 DArray<Coord> vertices,
16 DArray<TContactPair<Real>> contacts)
18 int tId = threadIdx.x + (blockIdx.x * blockDim.x);
19 if (tId >= contacts.size()) return;
21 auto contact = contacts[tId];
22 Coord v0 = contact.pos1;
27 template<typename TDataType>
28 bool ContactsToPointSet<TDataType>::apply()
30 if (this->outPointSet()->isEmpty())
32 this->outPointSet()->allocate();
35 auto outSet = this->outPointSet()->getDataPtr();
37 if (this->inContacts()->isEmpty())
43 auto& inContacts = this->inContacts()->getData();
45 auto& vertices = outSet->getPoints();
47 uint contactNum = inContacts.size();
48 vertices.resize(contactNum);
58 template<typename TDataType>
59 bool ContactsToPointSet<TDataType>::validateInputs()
64 DEFINE_CLASS(ContactsToPointSet);