PeriDyno 1.0.0
Loading...
Searching...
No Matches
DiscreteElements.cpp
Go to the documentation of this file.
1#include "DiscreteElements.h"
2#include "VkTransfer.h"
3
4namespace dyno
5{
10
14
15 void DiscreteElements::setBoxes(std::vector<px::Box> boxes)
16 {
17 if (boxes.size() == 0)
18 return;
19
20 mBoxes.resize(boxes.size());
21 vkTransfer(mBoxes, boxes);
22 }
23
24 void DiscreteElements::setSpheres(std::vector<px::Sphere> spheres)
25 {
26 if (spheres.size() == 0)
27 return;
28
29 mSpheres.resize(spheres.size());
30 vkTransfer(mSpheres, spheres);
31 }
32
33 void DiscreteElements::setCapsules(std::vector<px::Capsule> capsules)
34 {
35 if (capsules.size() == 0)
36 return;
37
38 mCapsules.resize(capsules.size());
39 vkTransfer(mCapsules, capsules);
40 }
41
43 {
44 ElementOffset offset;
45 offset.box_bound = mBoxes.size();
46 offset.capsule_bound = offset.box_bound + mCapsules.size();
47 offset.sphere_bound = offset.capsule_bound + mSpheres.size();
48
49 return offset;
50 }
51
53 {
54 return mBoxes.size() + mSpheres.size() + mCapsules.size();
55 }
56
57}
VkDeviceArray< px::Capsule > mCapsules
VkDeviceArray< px::Box > mBoxes
void setCapsules(DArray< Capsule3D > &capsules)
ElementOffset getElementOffset()
void setBoxes(DArray< Box3D > &boxes)
VkDeviceArray< px::Sphere > mSpheres
void setSpheres(DArray< Sphere3D > &spheres)
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
bool vkTransfer(VkHostArray< T > &dst, const VkDeviceArray< T > &src)
Definition VkTransfer.inl:7