defaultPhysicsSystemName = ODEPhysicsSystem.dll

stepsPerSecond = 90
maxAngularVelocity = 100

physXSpecific
{
	maxIterationCount = 8
	supportHeightFields = True //Default: True

	// Raycasts and Manual Movement Problems.
	//
	// PhysX SDK keeps a double-buffer of all shape states and will not update
	// until a simulation step is taken. For example the result of setting the
	// global position/rotation is not immediatly visible until a Tick occurs.
	//
	// Example: If physical body is moved (by code) you must update the 
	// state of the physics simulation inside PhysX (swap buffers). 
	// This is a CPU intensive operation! If double-buffer is not 
	// updated then raycast will fail with calculation errors
	// (phantom object with old position/rotation).
	//
	// What NOT to do:
	// 1. Body.Position = "new position"
	// 2. RayCast
	// 3. Physics update (simulate)
	//
	// This would have PhysX checking the old position of the object.
	// You would be able to walk though the object, and also the old
	// position would be un-passable creating a ghost, phantom object.
	// You must perform your physics update first, before the RayCast!
	//
	// What to do:
	// 1. Body.Position = "new position"
	// 2. Physics update (simulate)
	// 3. RayCast
	//
	// NeoAxis will do this all for you but only under certain situations.
	// If you call a RayCast after the last simulation step/tick, any physical
	// body moved more than "positionEpsilon" or turned more than 
	// "rotationEpsilon". If this condition is met NeoAxis will 
	// automatically update the PhysX swap-buffer. This will also 
	// result in RayCast irregularities, but suffers no performance loss.
	//
	immediateUpdatingBodiesForRayCasts
	{
		positionEpsilon = .5
		rotationEpsilon = 20 //Degrees
	}
}

odeSpecific
{
	maxIterationCount = 20
	hashSpaceMinLevel = 2 // 2^2 = 4 minimum cell size
	hashSpaceMaxLevel = 8 // 2^8 = 256 maximum cell size
}


materials
{
	material Default
	{
		defaultHardness = .5
		defaultStaticFriction = .5
		defaultDynamicFriction = .5
		defaultBounciness = .5
		defaultDensity = .5
	}
	material Metal
	{
		defaultHardness = 1
		defaultStaticFriction = .7
		defaultDynamicFriction = .7
		defaultBounciness = .05
		defaultDensity = 1
	}
	material Wood
	{
		defaultHardness = .8
		defaultStaticFriction = 1
		defaultDynamicFriction = 1
		defaultBounciness = .15
		defaultDensity = .2
	}
	material Rubber
	{
		defaultHardness = 0
		defaultStaticFriction = 1
		defaultDynamicFriction = 1
		defaultBounciness = 1
		defaultDensity = .4
	}
	material Ice
	{
		defaultHardness = 1
		defaultStaticFriction = 0
		defaultDynamicFriction = 0
		defaultBounciness = .05
		defaultDensity = .25
	}
}
