Fusion360-Addons/usr/Include/Core/Common/pCallbackSignature.h
2021-10-31 19:39:29 +01:00

244 lines
7.1 KiB
C

#ifndef __P_CALLBACK_SIGNATURE_H__
#define __P_CALLBACK_SIGNATURE_H__
#include "pCommon.h"
#include "IParameter.h"
#include "vtBBHelper.h"
#include "xDebugTools.h"
//----------------------------------------------------------------
//
// wheel contact modify callback inputs
//
typedef enum bInputsWheelContactModifyCallback
{
bbIWC_SrcObject,
bbIWC_Point,
bbIWC_Normal,
bbIWC_Position,
bbIWC_NormalForce,
bbIWC_OtherMaterialIndex,
bbIWC_Stub0,
bbIWC_Stub1,
};
static BBParameter pInMapWheelContactModifyCallback[]=
{
BB_PIN(bbIWC_SrcObject,CKPGUID_3DENTITY,"sourceObject",""),
BB_PIN(bbIWC_Point,CKPGUID_VECTOR,"point",""),
BB_PIN(bbIWC_Normal,CKPGUID_VECTOR,"normal",""),
BB_PIN(bbIWC_Position,CKPGUID_FLOAT,"position",""),
BB_PIN(bbIWC_NormalForce,CKPGUID_FLOAT,"normalForce",""),
BB_PIN(bbIWC_OtherMaterialIndex,CKPGUID_INT,"otherMaterialIndex",""),
BB_PIN(bbIWC_Stub0,CKPGUID_INT,"stub0",""),
BB_PIN(bbIWC_Stub1,CKPGUID_INT,"stub1",""),
};
//----------------------------------------------------------------
//
// wheel contact modify callback outputs
//
typedef enum bOutputsWheelContactModifyCallback
{
bbOWC_CreateContact,
bbOWC_ModificationFlags,
bbOWC_Point,
bbOWC_Normal,
bbOWC_Position,
bbOWC_NormalForce,
bbOWC_OtherMaterialIndex,
bbOWC_Stub0,
bbOWC_Stub1,
};
static BBParameter pOutMapWheelContactModifyCallback[]=
{
BB_PIN(bbOWC_CreateContact,CKPGUID_BOOL,"createContact",""),
BB_PIN(bbOWC_ModificationFlags,VTF_WHEEL_CONTACT_MODIFY_FLAGS,"modificationFlags",""),
BB_PIN(bbOWC_Point,CKPGUID_VECTOR,"_point",""),
BB_PIN(bbOWC_Normal,CKPGUID_VECTOR,"_normal",""),
BB_PIN(bbOWC_Position,CKPGUID_FLOAT,"_position",""),
BB_PIN(bbOWC_NormalForce,CKPGUID_FLOAT,"_normalForce",""),
BB_PIN(bbOWC_OtherMaterialIndex,CKPGUID_INT,"_otherMaterialIndex",""),
BB_PIN(bbOWC_Stub0,CKPGUID_INT,"_stub0",""),
BB_PIN(bbOWC_Stub1,CKPGUID_INT,"_stub1",""),
};
//----------------------------------------------------------------
//
// contact modify callback ( has input and output )
//
typedef enum bInputsContactModifyCallback
{
bbICM_SrcObject,
bbICM_OtherObject,
bbICM_MinImpulse,
bbICM_MaxImpulse,
bbICM_Error,
bbICM_Target,
bbICM_LP0,
bbICM_LP1,
bbICM_LO0,
bbICM_LO1,
bbICM_SF0,
bbICM_SF1,
bbICM_DF0,
bbICM_DF1,
bbICM_Restitution,
};
static BBParameter pInMapContactModifyCallback[]=
{
BB_PIN(bbICM_SrcObject,CKPGUID_3DENTITY,"sourceObject",""),
BB_PIN(bbICM_OtherObject,CKPGUID_3DENTITY,"otherObject",""),
BB_PIN(bbICM_MinImpulse,CKPGUID_FLOAT,"minImpulse",""),
BB_PIN(bbICM_MaxImpulse,CKPGUID_FLOAT,"maxImpulse",""),
BB_PIN(bbICM_Error,CKPGUID_VECTOR,"error",""),
BB_PIN(bbICM_Target,CKPGUID_VECTOR,"target",""),
BB_PIN(bbICM_LP0,CKPGUID_VECTOR,"localPosition0",""),
BB_PIN(bbICM_LP1,CKPGUID_VECTOR,"localPosition1",""),
BB_PIN(bbICM_LO0,CKPGUID_QUATERNION,"localOrientation0",""),
BB_PIN(bbICM_LO0,CKPGUID_QUATERNION,"localOrientation1",""),
BB_PIN(bbICM_SF0,CKPGUID_FLOAT,"staticFriction0",""),
BB_PIN(bbICM_SF1,CKPGUID_FLOAT,"staticFriction1",""),
BB_PIN(bbICM_DF0,CKPGUID_FLOAT,"dynamicFriction0",""),
BB_PIN(bbICM_DF0,CKPGUID_FLOAT,"dynamicFriction1",""),
BB_PIN(bbICM_DF0,CKPGUID_FLOAT,"restitution",""),
};
//----------------------------------------------------------------
//
// contact modify callback ( has input and output )
//
typedef enum bOutputsContactModifyCallback
{
bbOCM_ModifyFlags,
bbOCM_CreateContact,
bbOCM_MinImpulse,
bbOCM_MaxImpulse,
bbOCM_Error,
bbOCM_Target,
bbOCM_LP0,
bbOCM_LP1,
bbOCM_LO0,
bbOCM_LO1,
bbOCM_SF0,
bbOCM_SF1,
bbOCM_DF0,
bbOCM_DF1,
bbOCM_Restitution,
};
static BBParameter pOutMapContactModifyCallback[]=
{
BB_PIN(bbOCM_ModifyFlags,VTF_CONTACT_MODIFY_FLAGS,"_modifyFlags",""),
BB_PIN(bbOCM_CreateContact,CKPGUID_BOOL,"createContact",""),
BB_PIN(bbOCM_MinImpulse,CKPGUID_FLOAT,"_minImpulse",""),
BB_PIN(bbOCM_MaxImpulse,CKPGUID_FLOAT,"_maxImpulse",""),
BB_PIN(bbOCM_Error,CKPGUID_VECTOR,"_error",""),
BB_PIN(bbOCM_Target,CKPGUID_VECTOR,"_target",""),
BB_PIN(bbOCM_LP0,CKPGUID_VECTOR,"_localPosition0",""),
BB_PIN(bbOCM_LP1,CKPGUID_VECTOR,"_localPosition1",""),
BB_PIN(bbOCM_LO0,CKPGUID_QUATERNION,"_localOrientation0",""),
BB_PIN(bbOCM_LO0,CKPGUID_QUATERNION,"_localOrientation1",""),
BB_PIN(bbOCM_SF0,CKPGUID_FLOAT,"_staticFriction0",""),
BB_PIN(bbOCM_SF1,CKPGUID_FLOAT,"_staticFriction1",""),
BB_PIN(bbOCM_DF0,CKPGUID_FLOAT,"_dynamicFriction0",""),
BB_PIN(bbOCM_DF0,CKPGUID_FLOAT,"_dynamicFriction1",""),
BB_PIN(bbOCM_DF0,CKPGUID_FLOAT,"_restitution",""),
};
//----------------------------------------------------------------
//
// contact notify callback
//
typedef enum bInputsContactCallback
{
bbI_SrcObject,
bbI_EventType,
bbI_NormalForce,
bbI_FForce,
bbI_Point,
bbI_PointNormalForce,
bbI_FaceNormal,
bbI_FaceIndex,
bbI_Distance,
bbI_OtherObject,
};
static BBParameter pInMapContactCallback[]=
{
BB_PIN(bbI_SrcObject,CKPGUID_3DENTITY,"sourceObject",""),
BB_PIN(bbI_EventType,VTF_COLLISIONS_EVENT_MASK,"eventType",""),
BB_PIN(bbI_FaceNormal,CKPGUID_VECTOR,"sumNormalForce",""),
BB_PIN(bbI_FForce,CKPGUID_VECTOR,"sumFrictionForce",""),
BB_PIN(bbI_Point,CKPGUID_VECTOR,"point",""),
BB_PIN(bbI_PointNormalForce,CKPGUID_FLOAT,"pointNormalForce",""),
BB_PIN(bbI_FaceNormal,CKPGUID_VECTOR,"faceNormal",""),
BB_PIN(bbI_FaceIndex,CKPGUID_INT,"faceIndex",""),
BB_PIN(bbI_Distance,CKPGUID_FLOAT,"distance",""),
BB_PIN(bbI_OtherObject,CKPGUID_3DENTITY,"otherObject",""),
};
//----------------------------------------------------------------
//
// trigger
//
typedef enum bInputsTriggerCallback
{
bbIT_SrcObject,
bbIT_EventType,
bbIT_OtherObject,
};
static BBParameter pInMapTriggerCallback[]=
{
BB_PIN(bbIT_SrcObject,CKPGUID_3DENTITY,"sourceObject",""),
BB_PIN(bbIT_EventType,VTF_TRIGGER,"eventType",""),
BB_PIN(bbIT_OtherObject,CKPGUID_3DENTITY,"otherObject",""),
};
//----------------------------------------------------------------
//
// trigger
//
typedef enum bInputsRaycastHitCallback
{
bbRH_SrcObject,
bbRH_OtherObject,
bbRH_WorldImpact,
bbRH_WorldNormal,
bbRH_FIndex,
bbRH_FInternalIdex,
bbRH_Distance,
bbRH_UV,
bbRH_Material,
bbRH_Flags,
};
typedef enum bInputsJointBreakCallback
{
bbJB_SrcObject,
bbJB_OtherObject,
bbJB_Force,
};
static BBParameter pInMapRaycastHitCallback[]=
{
BB_PIN(bbRH_SrcObject,CKPGUID_3DENTITY,"sourceObject",""),
BB_PIN(bbRH_OtherObject,CKPGUID_3DENTITY,"otherObject",""),
BB_PIN(bbRH_WorldImpact,CKPGUID_VECTOR,"impact",""),
BB_PIN(bbRH_WorldNormal,CKPGUID_VECTOR,"normal",""),
BB_PIN(bbRH_FIndex,CKPGUID_INT,"faceIndex",""),
BB_PIN(bbRH_FInternalIdex,CKPGUID_INT,"faceInternalIndex",""),
BB_PIN(bbRH_Distance,CKPGUID_FLOAT,"distance",""),
BB_PIN(bbRH_UV,CKPGUID_2DVECTOR,"uv",""),
BB_PIN(bbRH_Material,CKPGUID_INT,"material",""),
BB_PIN(bbRH_Flags,VTF_RAY_HINTS,"flags",""),
};
static BBParameter pInMapJointBreakCallback[]=
{
BB_PIN(bbJB_SrcObject,CKPGUID_3DENTITY,"sourceObject",""),
BB_PIN(bbJB_OtherObject,CKPGUID_3DENTITY,"otherObject",""),
BB_PIN(bbJB_Force,CKPGUID_FLOAT,"Break Force",""),
};
#endif