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)