protected Simulation(BufferPool bufferPool, SimulationAllocationSizes initialAllocationSizes) { BufferPool = bufferPool; Shapes = new Shapes(bufferPool, initialAllocationSizes.ShapesPerType); BroadPhase = new BroadPhase(bufferPool, initialAllocationSizes.Bodies, initialAllocationSizes.Bodies + initialAllocationSizes.Statics); Activator = new IslandActivator(); Bodies = new Bodies(bufferPool, Activator, Shapes, BroadPhase, initialAllocationSizes.Bodies, initialAllocationSizes.Islands, initialAllocationSizes.ConstraintCountPerBodyEstimate); Statics = new Statics(bufferPool, Shapes, Bodies, BroadPhase, Activator, initialAllocationSizes.Statics); Solver = new Solver(Bodies, BufferPool, 8, initialCapacity: initialAllocationSizes.Constraints, initialIslandCapacity: initialAllocationSizes.Islands, minimumCapacityPerTypeBatch: initialAllocationSizes.ConstraintsPerTypeBatch); Bodies.Initialize(Solver); Deactivator = new Deactivator(Bodies, Solver, BufferPool); PoseIntegrator = new PoseIntegrator(Bodies, Shapes, BroadPhase); SolverBatchCompressor = new BatchCompressor(Solver, Bodies); BodyLayoutOptimizer = new BodyLayoutOptimizer(Bodies, BroadPhase, Solver, bufferPool); ConstraintLayoutOptimizer = new ConstraintLayoutOptimizer(Bodies, Solver); }
/// <summary> /// Constructs a new static reference. /// </summary> /// <param name="handle">Handle of the static to refer to.</param> /// <param name="statics">Collection containing the static.</param> public StaticReference(StaticHandle handle, Statics statics) { Handle = handle; Statics = statics; }