Example #1
0
        public void InitalizePhysics()
        {
            // Construct engine objects
            this.Camera = new Camera(this);

            // Construct physics objects
            ErrorOutput errorOutput = new ErrorOutput();

            Foundation foundation = new Foundation(errorOutput);

            this.Physics = new Physics(foundation, checkRuntimeFiles: true);

#if GPU
            var cudaContext = new CudaContextManager(foundation);
#endif

            var sceneDesc = new SceneDesc()
            {
                Gravity = new System.Numerics.Vector3(0, -9.81f, 0),
#if GPU
                GpuDispatcher = cudaContext.GpuDispatcher
#endif
                FilterShader = new SampleFilterShader()
            };

            this.Scene = this.Physics.CreateScene(sceneDesc);

            this.Scene.SetVisualizationParameter(VisualizationParameter.Scale, 2.0f);
            this.Scene.SetVisualizationParameter(VisualizationParameter.CollisionShapes, true);
            this.Scene.SetVisualizationParameter(VisualizationParameter.JointLocalFrames, true);
            this.Scene.SetVisualizationParameter(VisualizationParameter.JointLimits, true);
            this.Scene.SetVisualizationParameter(VisualizationParameter.ParticleSystemPosition, true);
            this.Scene.SetVisualizationParameter(VisualizationParameter.ActorAxes, true);

            // Connect to the remote debugger (if it's there)
            if (this.Physics.RemoteDebugger != null)
            {
                this.Physics.RemoteDebugger.Connect("localhost");
            }

            CreateGroundPlane();
        }
Example #2
0
        protected virtual SceneDesc CreateSceneDesc(Foundation foundation)
        {
#if GPU
            var cudaContext = new CudaContextManager(foundation);
#endif

            var sceneDesc = new SceneDesc
            {
                Gravity = new Vector3(0, -9.81f, 0),
#if GPU
                GpuDispatcher = cudaContext.GpuDispatcher,
#endif
                FilterShader = new SampleFilterShader()
            };

#if GPU
            sceneDesc.Flags          |= SceneFlag.EnableGpuDynamics;
            sceneDesc.BroadPhaseType |= BroadPhaseType.Gpu;
#endif

            _sceneDescCallback?.Invoke(sceneDesc);

            return(sceneDesc);
        }
Example #3
0
		public void InitalizePhysics()
		{
			// Construct engine objects
			this.Camera = new Camera(this);

			// Construct physics objects
			ErrorOutput errorOutput = new ErrorOutput();

			Foundation foundation = new Foundation(errorOutput);
			
			this.Physics = new Physics(foundation, checkRuntimeFiles: true);

#if GPU
			var cudaContext = new CudaContextManager(foundation);
#endif

			var sceneDesc = new SceneDesc()
			{
				Gravity = new Math.Vector3(0, -9.81f, 0),
#if GPU
				GpuDispatcher = cudaContext.GpuDispatcher
#endif
			};

			this.Scene = this.Physics.CreateScene(sceneDesc);

			this.Scene.SetVisualizationParameter(VisualizationParameter.Scale, 2.0f);
			this.Scene.SetVisualizationParameter(VisualizationParameter.CollisionShapes, true);
			this.Scene.SetVisualizationParameter(VisualizationParameter.JointLocalFrames, true);
			this.Scene.SetVisualizationParameter(VisualizationParameter.JointLimits, true);
			this.Scene.SetVisualizationParameter(VisualizationParameter.ParticleSystemPosition, true);
			this.Scene.SetVisualizationParameter(VisualizationParameter.ActorAxes, true);

			// Connect to the remote debugger if it's there
			if (this.Physics.RemoteDebugger != null)
			{
				this.Physics.RemoteDebugger.Connect("localhost");
			}

			CreateGroundPlane();
		}