23 auto eleSet = std::dynamic_pointer_cast<DiscreteElements>(this->inTopology()->getDataPtr());
24 if (eleSet ==
nullptr)
27 auto& boxes = eleSet->getBoxes();
28 auto& spheres = eleSet->getSpheres();
29 auto& capsules = eleSet->getCapsules();
40 auto eleSet = std::dynamic_pointer_cast<DiscreteElements>(this->inTopology()->getDataPtr());
43 auto& boxes = eleSet->getBoxes();
44 if (boxes.size() > 0) {
48 auto& spheres = eleSet->getSpheres();
49 if (spheres.size() > 0) {
53 auto& capsules = eleSet->getCapsules();
54 if (capsules.size() > 0) {
63 std::vector<Vertex> vertices;
64 vertices.resize(vertSize);
66 std::vector<uint32_t> indices;
67 indices.resize(indexSize);
70 mCubeVertex.resize(vertSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
72 mCubeIndex.resize(indexSize, VK_BUFFER_USAGE_INDEX_BUFFER_BIT);
81 std::vector<Vertex> vertices;
82 vertices.resize(vertSize);
84 std::vector<uint32_t> indices;
85 indices.resize(indexSize);
88 mSphereVertex.resize(vertSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
90 mSphereIndex.resize(indexSize, VK_BUFFER_USAGE_INDEX_BUFFER_BIT);
99 std::vector<Vertex> vertices;
100 vertices.resize(vertSize);
102 std::vector<uint32_t> indices;
103 indices.resize(indexSize);
106 mCapsuleVertex.resize(vertSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
108 mCapsuleIndex.resize(indexSize, VK_BUFFER_USAGE_INDEX_BUFFER_BIT);
static const int SPHERE_INDICES[]
static const float SPHERE_VERTICES[]
static const float CUBE_VERTICES[]
position xyz, unused w, normal, uv
static const int CUBE_INDICES[]
bool initializeImpl() override
void initBoxes(VkDeviceArray< px::Box > &boxex)
void updateGraphicsContext() override
DiscreteElementRenderer()
void initSpheres(VkDeviceArray< px::Sphere > &spheres)
~DiscreteElementRenderer() override
void initCapsules(VkDeviceArray< px::Capsule > &capsules)
VkDeviceArray< Vertex > mSphereVertex
VkDeviceArray< uint32_t > mCapsuleIndex
VkDeviceArray< uint32_t > mSphereIndex
VkDeviceArray< Vertex > mCubeVertex
VkDeviceArray< px::Sphere > mSphereInstanceData
VkDeviceArray< px::Capsule > mCapsuleInstanceData
VkDeviceArray< px::Box > mCubeInstanceData
VkDeviceArray< uint32_t > mCubeIndex
VkDeviceArray< Vertex > mCapsuleVertex
This is an implementation of AdditiveCCD based on peridyno.
bool vkTransfer(VkHostArray< T > &dst, const VkDeviceArray< T > &src)