This repository has been archived on 2023-01-27. You can view files and clone it, but cannot push or open issues or pull requests.
cad/fusion360/usr/Src/old/PhysicManagerJointVSL.cpp
2022-10-15 19:16:08 +02:00

217 lines
5.7 KiB
C++

#include <StdAfx.h>
#include "vtPhysXAll.h"
#include "VSLManagerSDK.h"
//#include "pVehicle.h"
PhysicManager *ourMan = NULL;
CKGUID GetPhysicManagerGUID() { return GUID_MODULE_MANAGER;}
void __newpVehicleDescr(BYTE *iAdd)
{
new (iAdd)pVehicleDesc();
}
void __newpVehicleMotorDesc(BYTE *iAdd)
{
new (iAdd)pVehicleMotorDesc();
}
void __newpVehicleGearDesc(BYTE *iAdd)
{
new(iAdd)pVehicleGearDesc();
}
//////////////////////////////////////////////////////////////////////////
#define TESTGUID CKGUID(0x2c5c47f6,0x1d0755d9)
void PhysicManager::_RegisterVSL()
{
ourMan = GetPMan();
int z = D6DT_Position;
int y = D6DT_Velocity;
STARTVSLBIND(m_Context)
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(pWheelDescr)
DECLARECTOR_0(__newpWheelDescr)
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)
DECLAREPOINTERTYPE(pWheel)
DECLAREPOINTERTYPE(pVehicle)
DECLAREPOINTERTYPE(pVehicleMotor)
DECLAREPOINTERTYPE(pVehicleGears)
DECLAREPOINTERTYPE(pWheel1)
DECLAREPOINTERTYPE(pWheel2)
DECLAREINHERITANCESIMPLE("pWheel","pWheel1")
DECLAREINHERITANCESIMPLE("pWheel","pWheel2")
//////////////////////////////////////////////////////////////////////////
//
// Vehicle :
//
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_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)
DECLAREMETHOD_2(pFactory,pVehicle*,createVehicle,CK3dEntity*,pVehicleDesc)
//////////////////////////////////////////////////////////////////////////
//
// MANAGER
//
DECLAREFUN_C_0(CKGUID, GetPhysicManagerGUID)
DECLAREOBJECTTYPE(PhysicManager)
DECLARESTATIC_1(PhysicManager,PhysicManager*,Cast,CKBaseManager* iM)
DECLAREFUN_C_0(PhysicManager*, GetPhysicManager)
DECLAREMETHOD_0(PhysicManager,pWorld*,getDefaultWorld)
DECLAREMETHOD_1(PhysicManager,pRigidBody*,getBody,CK3dEntity*)
DECLAREMETHOD_1(PhysicManager,pWorld*,getWorldByBody,CK3dEntity*)
DECLAREMETHOD_1(PhysicManager,pWorld*,getWorld,CK_ID)
DECLAREMETHOD_3_WITH_DEF_VALS(PhysicManager,pJoint*,getJoint,CK3dEntity*,NODEFAULT,CK3dEntity*,NULL,JType,JT_Any)
// DECLAREMETHOD_0(PhysicManager,void,makeDongleTest)
//////////////////////////////////////////////////////////////////////////
//
// World
//
DECLAREMETHOD_1(pWorld,pRigidBody*,getBody,CK3dEntity*)
DECLAREMETHOD_1(pWorld,pVehicle*,getVehicle,CK3dEntity*)
DECLAREMETHOD_3(pWorld,pJoint*,getJoint,CK3dEntity*,CK3dEntity*,JType)
DECLAREMETHOD_3(pWorld,void,setFilterOps,pFilterOp,pFilterOp,pFilterOp)
DECLAREMETHOD_1(pWorld,void,setFilterBool,bool)
DECLAREMETHOD_1(pWorld,void,setFilterConstant0,const pGroupsMask&)
DECLAREMETHOD_1(pWorld,void,setFilterConstant1,const pGroupsMask&)
//
DECLAREMETHOD_5_WITH_DEF_VALS(pWorld,bool,raycastAnyBounds,const VxRay&,NODEFAULT,pShapesType,NODEFAULT,pGroupsMask,NODEFAULT,int,0xffffffff,float,NX_MAX_F32)
DECLAREMETHOD_8(pWorld,bool,overlapSphereShapes,CK3dEntity*,const VxSphere&,CK3dEntity*,pShapesType,CKGroup*,int,const pGroupsMask*,BOOL)
//(const VxRay& worldRay, pShapesType shapesType, pGroupsMask groupsMask,unsigned int groups=0xffffffff, float maxDist=NX_MAX_F32);
STOPVSLBIND
}
PhysicManager*GetPhysicManager()
{
return GetPMan();
}
/*
void __newvtWorldSettings(BYTE *iAdd)
{
new (iAdd) pWorldSettings();
}
void __newvtSleepingSettings(BYTE *iAdd)
{
new (iAdd) pSleepingSettings();
}
void __newvtJointSettings(BYTE *iAdd)
{
new (iAdd) pJointSettings();
}
int TestWS(pWorldSettings pWS)
{
VxVector grav = pWS.Gravity();
return 2;
}
pFactory* GetPFactory();
pFactory* GetPFactory()
{
return pFactory::Instance();
}
extern pRigidBody*getBody(CK3dEntity*ent);
*/