aboutsummaryrefslogtreecommitdiff
path: root/demo/scenes/lowdimensionalshapes.h
blob: 83147441de8b6f889065b53e98eb014373b07314 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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);

		// draw options
		g_drawDensity = false;
		g_drawDiffuse = false;
		g_drawEllipsoids = false;
		g_drawPoints = true;
		g_drawMesh = false;

		g_warmup = false;

	}
		
};