21 auto uGrid = std::dynamic_pointer_cast<UniformGrid3D>(this->inTopology()->getDataPtr());
29 for (
int k = 0; k < uGrid->nz(); k++)
31 for (
int j = 0; j < uGrid->ny(); j++)
33 for (
int i = 0; i < uGrid->nx(); i++)
53 std::make_shared<VkProgram>(
59 kernel(
"SetupBox")->load(getAssetPath() +
"shaders/glsl/phasefield/SetupBox.comp.spv");
66 auto uGrid = std::dynamic_pointer_cast<UniformGrid3D>(this->inTopology()->getDataPtr());
71 gridInfo.
setValue(uGrid->getGridInfo());
72 gridSize.
setValue(uGrid->totalGridSize());
73 kernel(
"SetupBox")->flush(
90 std::vector<Vertex> vertices;
91 vertices.resize(vertSize);
93 std::vector<uint32_t> indices;
94 indices.resize(indexSize);
97 mCubeVertex.resize(vertSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
99 mCubeIndex.resize(indexSize, VK_BUFFER_USAGE_INDEX_BUFFER_BIT);
static const float CUBE_VERTICES[]
position xyz, unused w, normal, uv
static const int CUBE_INDICES[]
void setValue(const T val)
VkDeviceArray< Vertex > mCubeVertex
VkDeviceArray< px::Box > mCubeInstanceData
VkDeviceArray< uint32_t > mCubeIndex
This is an implementation of AdditiveCCD based on peridyno.
std::vector< px::Box > hBox
bool vkTransfer(VkHostArray< T > &dst, const VkDeviceArray< T > &src)
static dim3 vkDispatchSize3D(uint size_x, uint size_y, uint size_z, uint blockSize)