|
|
| class LowDimensionalShapes: public Scene |
| { |
| public: |
|
|
| LowDimensionalShapes(const char* name) : Scene(name) {} |
|
|
| virtual void Initialize() |
| { |
| float radius = 0.1f; |
| int group = 0; |
|
|
| Mesh* mesh = ImportMesh(GetFilePathByPlatform("../../data/box.ply").c_str()); |
|
|
| CreateParticleShape(mesh, Vec3(0.0f, 1.0f, 0.0f), Vec3(1.2f, 0.001f, 1.2f), 0.0f, radius, Vec3(0.0f, 0.0f, 0.0f), 1.0f, true, 1.0f, NvFlexMakePhase(group++, 0), true, 0.0f); |
|
|
| for (int i=0; i < 64; ++i) |
| CreateParticleShape(mesh, Vec3(i / 8 * radius, 0.0f, i % 8 * radius), Vec3(0.1f, 0.8f, 0.1f), 0.0f, radius, Vec3(0.0f, 0.0f, 0.0f), 1.0f, true, 1.0f, NvFlexMakePhase(group++, 0), true, 0.0f); |
|
|
| delete mesh; |
|
|
| g_params.radius = radius; |
| g_params.dynamicFriction = 1.0f; |
| g_params.fluidRestDistance = radius; |
| g_params.viscosity = 0.0f; |
| g_params.numIterations = 4; |
| g_params.vorticityConfinement = 0.f; |
| g_params.numPlanes = 1; |
| g_params.collisionDistance = radius*0.5f; |
| g_params.shockPropagation = 5.0f; |
| |
| g_numSubsteps = 2; |
|
|
| g_maxDiffuseParticles = 0; |
| g_diffuseScale = 0.75f; |
|
|
| g_lightDistance *= 1.5f; |
| |
| g_fluidColor = Vec4(0.2f, 0.6f, 0.9f, 1.0f); |
|
|
| |
| g_drawDensity = false; |
| g_drawDiffuse = false; |
| g_drawEllipsoids = false; |
| g_drawPoints = true; |
| g_drawMesh = false; |
|
|
| g_warmup = false; |
|
|
| } |
| |
| }; |
|
|