Fusion360-Addons/usr/Src/Core/Manager/PhysicManagerVehcileVSL.cpp
2021-10-31 19:39:29 +01:00

345 lines
10 KiB
C++

#include <StdAfx.h>
#include "vtPhysXAll.h"
#include "VSLManagerSDK.h"
#include "pVehicleAll.h"
void __newpVehicleDescr(BYTE *iAdd)
{
new (iAdd)pVehicleDesc();
}
void __newpVehicleMotorDesc(BYTE *iAdd)
{
new (iAdd)pVehicleMotorDesc();
}
void __newpVehicleGearDesc(BYTE *iAdd)
{
new(iAdd)pVehicleGearDesc();
}
void PhysicManager::_RegisterVSLVehicle()
{
STARTVSLBIND(m_Context)
//----------------------------------------------------------------
//
// vehicle base types
//
DECLAREPOINTERTYPE(pVehicleMotorDesc)
DECLAREMEMBER(pVehicleMotorDesc,float,maxRpmToGearUp)
DECLAREMEMBER(pVehicleMotorDesc,float,minRpmToGearDown)
DECLAREMEMBER(pVehicleMotorDesc,float,maxRpm)
DECLAREMEMBER(pVehicleMotorDesc,float,minRpm)
DECLAREMETHOD_0(pVehicleMotorDesc,void,setToCorvette)
DECLAREPOINTERTYPE(pVehicleGearDesc)
DECLAREMEMBER(pVehicleGearDesc,int,nbForwardGears)
DECLAREMETHOD_0(pVehicleGearDesc,void,setToDefault)
DECLAREMETHOD_0(pVehicleGearDesc,void,setToCorvette)
DECLAREMETHOD_0(pVehicleGearDesc,bool,isValid)
DECLAREOBJECTTYPE(pVehicleDesc)
DECLARECTOR_0(__newpVehicleDescr)
DECLAREMEMBER(pVehicleDesc,float,digitalSteeringDelta)
DECLAREMEMBER(pVehicleDesc,VxVector,steeringSteerPoint)
DECLAREMEMBER(pVehicleDesc,VxVector,steeringTurnPoint)
DECLAREMEMBER(pVehicleDesc,float,steeringMaxAngle)
DECLAREMEMBER(pVehicleDesc,float,transmissionEfficiency)
DECLAREMEMBER(pVehicleDesc,float,differentialRatio)
DECLAREMEMBER(pVehicleDesc,float,maxVelocity)
DECLAREMEMBER(pVehicleDesc,float,motorForce)
DECLAREMETHOD_0(pVehicleDesc,pVehicleGearDesc*,getGearDescription)
DECLAREMETHOD_0(pVehicleDesc,pVehicleMotorDesc*,getMotorDescr)
DECLAREMETHOD_0(pVehicleDesc,void,setToDefault)
//----------------------------------------------------------------
//
// vehicle specific
//
DECLAREMETHOD_1(pVehicle,void,setPreScript,int)
DECLAREMETHOD_1(pVehicle,void,setPostScript,int)
DECLAREMETHOD_1(pVehicle,void,setOverrideMask,int)
DECLAREMETHOD_1(pVehicle,int,initEngine,int)
DECLAREMETHOD_0(pVehicle,BOOL,isValidEngine)
DECLAREMETHOD_0(pVehicle,pEngine*,getEngine)
DECLAREMETHOD_0(pVehicle,pGearBox*,getGearBox)
DECLAREMETHOD_0(pVehicle,int,getStateFlags)
DECLAREMETHOD_1(pVehicle,void,setClutch,float)
DECLAREMETHOD_0(pVehicle,float,getClutch)
//----------------------------------------------------------------
//
// egine
//
DECLAREMETHOD_1(pEngine,void,SetInertia,float)
DECLAREMETHOD_1(pEngine,void,setIdleRPM,float)
DECLAREMETHOD_1(pEngine,void,setStallRPM,float)
DECLAREMETHOD_1(pEngine,void,setStartRPM,float)
DECLAREMETHOD_1(pEngine,void,setTimeScale,float)
DECLAREMETHOD_1(pEngine,void,setEndRotationalFactor,float)
DECLAREMETHOD_1(pEngine,void,setForceFeedbackScale,float)
DECLAREMETHOD_0(pEngine,float,getForceFeedbackScale)
//----------------------------------------------------------------
//
// engine
//
DECLAREMETHOD_0(pVehicle,pEngine*,getEngine)
DECLAREMETHOD_0(pEngine,pLinearInterpolation,getTorqueCurve)
DECLAREMETHOD_1(pEngine,void,setTorqueCurve,pLinearInterpolation)
DECLAREMETHOD_0(pEngine,float,getRPM)
DECLAREMETHOD_0(pEngine,float,getTorque)
DECLAREMETHOD_0(pEngine,void,setToDefault)
DECLAREMETHOD_1(pEngine,void,updateUserControl,int)
DECLAREMETHOD_1(pEngine,void,setMaxTorque,float)
DECLAREMETHOD_1(pEngine,void,setMaxRPM,float)
DECLAREMETHOD_1(pEngine,void,setIdleRPM,float)
DECLAREMETHOD_1(pEngine,void,setBrakingCoeff,float)
DECLAREMETHOD_0(pEngine,float,getBrakingCoeff)
DECLAREMETHOD_1(pEngine,void,setFriction,float)
DECLAREMETHOD_0(pEngine,float,getFriction)
DECLAREMETHOD_1(pEngine,void,SetInertia,float)
DECLAREMETHOD_1(pEngine,void,setStartRPM,float)
DECLAREMETHOD_0(pEngine,float,getStartRPM)
DECLAREMETHOD_0(pEngine,int,GetGears)
DECLAREMETHOD_0(pVehicle,void,PreCalcDriveLine)
//DECLAREMETHOD_1(pEngine,float,GetGearRatio,int)
//----------------------------------------------------------------
//
// interpolation curve, used for for torque and gears
//
DECLAREMETHOD_0(pLinearInterpolation,int,getSize)
DECLAREMETHOD_1(pLinearInterpolation,int,isValid,float)
DECLAREMETHOD_1(pLinearInterpolation,float,getValue,float)
DECLAREMETHOD_1(pLinearInterpolation,int,getValueAtIndex,int)
DECLAREMETHOD_2(pLinearInterpolation,void,insert,float,float)
//----------------------------------------------------------------
//
// gearbox
//
DECLAREMETHOD_1(pGearBox,float,GetTorqueForWheel,pWheel2*)
DECLAREMETHOD_0(pGearBox,pLinearInterpolation,getGearRatios)
DECLAREMETHOD_1(pGearBox,void,setGearRatios,pLinearInterpolation)
DECLAREMETHOD_0(pGearBox,pLinearInterpolation,getGearTensors)
DECLAREMETHOD_1(pGearBox,void,setGearTensors,pLinearInterpolation)
//----------------------------------------------------------------
//
// wheel2
//
DECLAREMETHOD_1(pWheel2,void,setPreScript,int)
DECLAREMETHOD_1(pWheel2,void,setPostScript,int)
DECLAREMETHOD_1(pWheel2,void,setOverrideMask,int)
DECLAREMETHOD_0(pWheel2,float,getEndBrakingTorqueForWheel)
DECLAREMETHOD_0(pWheel2,float,getEndTorqueForWheel)
DECLAREMETHOD_0(pWheel2,float,getEndAccForWheel)
DECLAREMETHOD_0(pWheel2,float,getWheelTorque)
DECLAREMETHOD_0(pWheel2,float,getWheelBreakTorque)
DECLAREMETHOD_0(pWheel2,float,getAxleSpeed)
DECLAREMETHOD_0(pWheel2,VxVector,GetForceRoadTC)
DECLAREMETHOD_0(pWheel2,VxVector,GetForceBodyCC)
DECLAREMETHOD_0(pWheel2,VxVector,GetTorqueTC)
DECLAREMETHOD_0(pWheel2,VxVector,GetTorqueFeedbackTC)
DECLAREMETHOD_0(pWheel2,VxVector,GetTorqueBrakingTC)
DECLAREMETHOD_0(pWheel2,VxVector,GetTorqueRollingTC)
DECLAREMETHOD_0(pWheel2,float,GetSlipAngle)
DECLAREMETHOD_0(pWheel2,float,GetSlipRatio)
DECLAREMETHOD_0(pWheel2,float,GetHeading)
DECLAREMETHOD_0(pWheel2,float,GetRotation)
DECLAREMETHOD_0(pWheel2,float,GetRotationV)
DECLAREMETHOD_0(pWheel2,float,GetAcceleration)
DECLAREMETHOD_0(pWheel2,VxVector,GetVelocity)
//DECLAREMETHOD_0(pWheel2,VxVector,GetAcceleration)
DECLAREMETHOD_0(pWheel2,VxVector,GetSlipVectorCC)
DECLAREMETHOD_0(pWheel2,VxVector,GetPosContactWC)
DECLAREMETHOD_0(pWheel2,float,getEndBrakingTorqueForWheel)
DECLAREMETHOD_0(pWheel2,float,getEndTorqueForWheel)
DECLAREMETHOD_0(pWheel2,float,getEndAccForWheel)
DECLAREMETHOD_0(pWheel2,float,getWheelTorque)
DECLAREMETHOD_0(pWheel2,float,getWheelBreakTorque)
DECLAREMETHOD_0(pWheel2,bool,isAxleSpeedFromVehicle)
DECLAREMETHOD_0(pWheel2,bool,isTorqueFromVehicle)
DECLAREMEMBER(pWheel2,float,radius)
DECLAREMEMBER(pWheel2,VxVector,forceGravityCC)
DECLAREMEMBER(pWheel2,VxVector,forceBrakingTC)
DECLAREMEMBER(pWheel2,VxVector,torqueTC)
DECLAREMEMBER(pWheel2,VxVector,forceRoadTC)
DECLAREMEMBER(pWheel2,VxVector,rotation)
DECLAREMEMBER(pWheel2,VxVector,rotationA)
DECLAREMEMBER(pWheel2,VxVector,rotationV)
DECLAREMEMBER(pWheel2,VxVector,velWheelTC)
DECLAREMEMBER(pWheel2,VxVector,velWheelCC)
DECLAREMETHOD_1(pWheel2,void,setMass,float)
DECLAREMETHOD_1(pWheel2,void,setTireRate,float)
DECLAREMETHOD_0(pWheel2,float,getCsSlipLen)
DECLAREMETHOD_1(pWheel2,void,setRollingCoeff,float)
DECLAREMETHOD_0(pWheel2,float,getSuspensionTravel)
//----------------------------------------------------------------
//
// pwheel contactdata
//
DECLAREMETHOD_0(pWheel2,pWheelContactData*,getContact)
DECLAREMETHOD_1(pWheel2,bool,getContact,pWheelContactData&dst)
DECLAREMEMBER(pWheel2,bool,hadContact)
DECLAREMEMBER(pWheelContactData,VxVector,contactPoint)
DECLAREMEMBER(pWheelContactData,VxVector,contactNormal)
DECLAREMEMBER(pWheelContactData,VxVector,longitudalDirection)
DECLAREMEMBER(pWheelContactData,VxVector,lateralDirection)
DECLAREMEMBER(pWheelContactData,CK3dEntity*,contactEntity)
DECLAREMEMBER(pWheelContactData,float,contactForce,)
DECLAREMEMBER(pWheelContactData,float,longitudalSlip,)
DECLAREMEMBER(pWheelContactData,float,lateralSlip)
DECLAREMEMBER(pWheelContactData,float,longitudalImpulse)
DECLAREMEMBER(pWheelContactData,float,lateralImpulse)
DECLAREMEMBER(pWheelContactData,float,contactPosition)
DECLAREMEMBER(pWheelContactData,int,otherShapeMaterialIndex)
//----------------------------------------------------------------
//
//
//
DECLAREMETHOD_0(pWheel2,pPacejka*,getPacejka)
DECLAREMETHOD_1(pPacejka,void,SetFx,float)
DECLAREMETHOD_1(pPacejka,void,SetFy,float)
DECLAREMETHOD_1(pPacejka,void,SetMz,float)
DECLAREMETHOD_1(pPacejka,void,SetCamber,float)
DECLAREMETHOD_1(pPacejka,void,SetSlipAngle,float)
DECLAREMETHOD_1(pPacejka,void,SetSlipRatio,float)
DECLAREMETHOD_1(pPacejka,void,SetNormalForce,float)
DECLAREMETHOD_0(pPacejka,void,setToDefault)
DECLAREMETHOD_0(pPacejka,void,Calculate)
DECLAREMETHOD_0(pPacejka,float,GetMaxLongForce)
DECLAREMETHOD_0(pPacejka,float,GetMaxLatForce)
DECLAREMETHOD_1(pPacejka,void,SetMaxLongForce,float)
DECLAREMETHOD_1(pPacejka,void,SetMaxLatForce,float)
DECLAREMETHOD_0(pPacejka,float,GetLongitudinalStiffness)
DECLAREMETHOD_0(pPacejka,float,GetCorneringStiffness)
DECLAREMETHOD_0(pPacejka,float,GetFx)
DECLAREMETHOD_0(pPacejka,float,GetFy)
DECLAREMETHOD_0(pPacejka,float,GetMz)
DECLAREMETHOD_1(pRigidBody,pWheel2*,getWheel2,CK3dEntity*)
DECLAREMETHOD_0(pVehicle,void,PreCalcDriveLine)
//----------------------------------------------------------------
//
//
//
/*
DECLAREMETHOD_1(pVehicle,void,updateVehicle,float)
DECLAREMETHOD_5(pVehicle,void,setControlState,float,bool,float,bool,bool)
DECLAREMETHOD_1(pVehicle,pWheel*,getWheel,CK3dEntity*)
DECLAREMETHOD_0(pVehicle,pVehicleMotor*,getMotor)
DECLAREMETHOD_0(pVehicle,pVehicleGears*,getGears)
DECLAREMETHOD_1(pVehicle,void,setPreProcessingScript,int)
DECLAREMETHOD_1(pVehicle,void,setPostProcessingScript,int)
DECLAREMETHOD_0(pVehicle,void,gearUp)
DECLAREMETHOD_0(pVehicle,void,gearDown)
DECLAREMETHOD_0(pVehicleGears,int,getGear)
*/
//////////////////////////////////////////////////////////////////////////
//motor :
/*DECLAREMETHOD_0(pVehicleMotor,float,getRpm)
DECLAREMETHOD_0(pVehicleMotor,float,getTorque)
DECLAREMETHOD_0(pWheel,pWheel1*,castWheel1)
DECLAREMETHOD_0(pWheel,pWheel2*,castWheel2)
DECLAREMETHOD_0(pWheel,float,getWheelRollAngle)
DECLAREMETHOD_0(pWheel2,float,getRpm)
DECLAREMETHOD_0(pWheel2,float,getAxleSpeed)
DECLAREMETHOD_0(pWheel2,float,getSuspensionTravel)
DECLAREMETHOD_0(pWheel2,VxVector,getGroundContactPos)
*/
STOPVSLBIND
}