public unsafe override void SetInputData(InputDataTypes inputType, InputSmoothingSettings smoothingSettings,
                                                 Pair <float, float>[] steerVsForwardSpeedTable, float accel, float brake, float steer, float handbrake)
        {
            if (steerVsForwardSpeedTable.Length > 8)
            {
                Log.Fatal("PhysXPhysicsVehicle: SetInputData: The amount of steer vs forward speed table item can't be more than 8.");
            }

            if (nativeVehicle != IntPtr.Zero)
            {
                float[] smoothingSettings2 = new float[]
                {
                    smoothingSettings.RiseRateAccel,
                    smoothingSettings.RiseRateBrake,
                    smoothingSettings.RiseRateSteer,
                    smoothingSettings.RiseRateHandbrake,
                    smoothingSettings.FallRateAccel,
                    smoothingSettings.FallRateBrake,
                    smoothingSettings.FallRateSteer,
                    smoothingSettings.FallRateHandbrake
                };

                float[] steerVsForwardSpeedTable2 = new float[steerVsForwardSpeedTable.Length * 2];
                for (int n = 0; n < steerVsForwardSpeedTable.Length; n++)
                {
                    steerVsForwardSpeedTable2[n * 2 + 0] = steerVsForwardSpeedTable[n].First;
                    steerVsForwardSpeedTable2[n * 2 + 1] = steerVsForwardSpeedTable[n].Second;
                }

                fixed(float *pSmoothingSettings = smoothingSettings2, pSteerVsForwardSpeedTable = steerVsForwardSpeedTable2)
                {
                    PhysXNativeVehicle.SetInputData(nativeVehicle, inputType == InputDataTypes.Digital, pSmoothingSettings,
                                                    steerVsForwardSpeedTable.Length, pSteerVsForwardSpeedTable, accel, brake, steer, handbrake);
                }
            }
        }
Exemple #2
0
        public unsafe override void SetInputData( InputDataTypes inputType, InputSmoothingSettings smoothingSettings,
			Pair<float, float>[] steerVsForwardSpeedTable, float accel, float brake, float steer, float handbrake )
        {
            if( steerVsForwardSpeedTable.Length > 8 )
                Log.Fatal( "PhysXPhysicsVehicle: SetInputData: The amount of steer vs forward speed table item can't be more than 8." );

            if( nativeVehicle != IntPtr.Zero )
            {
                float[] smoothingSettings2 = new float[]
                {
                    smoothingSettings.RiseRateAccel,
                    smoothingSettings.RiseRateBrake,
                    smoothingSettings.RiseRateSteer,
                    smoothingSettings.RiseRateHandbrake,
                    smoothingSettings.FallRateAccel,
                    smoothingSettings.FallRateBrake,
                    smoothingSettings.FallRateSteer,
                    smoothingSettings.FallRateHandbrake
                };

                float[] steerVsForwardSpeedTable2 = new float[ steerVsForwardSpeedTable.Length * 2 ];
                for( int n = 0; n < steerVsForwardSpeedTable.Length; n++ )
                {
                    steerVsForwardSpeedTable2[ n * 2 + 0 ] = steerVsForwardSpeedTable[ n ].First;
                    steerVsForwardSpeedTable2[ n * 2 + 1 ] = steerVsForwardSpeedTable[ n ].Second;
                }

                fixed( float* pSmoothingSettings = smoothingSettings2, pSteerVsForwardSpeedTable = steerVsForwardSpeedTable2 )
                {
                    PhysXNativeVehicle.SetInputData( nativeVehicle, inputType == InputDataTypes.Digital, pSmoothingSettings,
                        steerVsForwardSpeedTable.Length, pSteerVsForwardSpeedTable, accel, brake, steer, handbrake );
                }
            }
        }