PeriDyno 1.0.0
Loading...
Searching...
No Matches
TriangleSet.cpp
Go to the documentation of this file.
1#include "TriangleSet.h"
2#include "VkTransfer.h"
3
4namespace dyno
5{
6
8 {
9 this->addKernel(
10 "SetupTriangleIndices",
11 std::make_shared<VkProgram>(
12 BUFFER(uint32_t), //int: height
13 BUFFER(Triangle), //in: CapillaryTexture
14 CONSTANT(uint) //in: horizon & realSize
15 )
16 );
17 kernel("SetupTriangleIndices")->load(getAssetPath() + "shaders/glsl/topology/SetupTriangleIndices.comp.spv");
18 }
19
24
25 void TriangleSet::setTriangles(std::vector<Triangle>& indices)
26 {
27 mTriangleIndex.assign(indices);
28 }
29
31 {
32 mTriangleIndex.assign(indices);
33 }
34
41
43 {
44 uint num = mTriangleIndex.size();
45
46 mIndex.resize(3 * num);
47
48 kernel("SetupTriangleIndices")->flush(
49 vkDispatchSize(num, 64),
50 mIndex.handle(),
51 mTriangleIndex.handle(),
52 &VkConstant<uint>(num));
53 }
54}
#define BUFFER(T)
Definition VkProgram.h:96
#define CONSTANT(T)
Definition VkProgram.h:100
void updateTopology() override
Definition EdgeSet.cpp:30
virtual void updateTriangles()
void updateTopology() override
void setTriangles(std::vector< Triangle > &triangles)
DArray< Triangle > mTriangleIndex
~TriangleSet() override
TopologyModule::Triangle Triangle
DArray< uint32_t > mIndex
Definition TriangleSet.h:27
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
static dim3 vkDispatchSize(uint totalSize, uint blockSize)
Definition VkProgram.h:34
Array< T, DeviceType::GPU > DArray
Definition Array.inl:89
unsigned int uint
Definition VkProgram.h:14