diff options
Diffstat (limited to 'Runtime/Animation/ScriptBindings/Avatar.txt')
-rw-r--r-- | Runtime/Animation/ScriptBindings/Avatar.txt | 340 |
1 files changed, 340 insertions, 0 deletions
diff --git a/Runtime/Animation/ScriptBindings/Avatar.txt b/Runtime/Animation/ScriptBindings/Avatar.txt new file mode 100644 index 0000000..52b0e93 --- /dev/null +++ b/Runtime/Animation/ScriptBindings/Avatar.txt @@ -0,0 +1,340 @@ +C++RAW + +#include "UnityPrefix.h" +#include "Runtime/Mono/MonoBehaviour.h" +#include "Runtime/Mono/MonoScript.h" +#include "Runtime/Graphics/Transform.h" +#include "Runtime/Animation/Avatar.h" +#include "Runtime/mecanim/human/human.h" + +using namespace Unity; + +CSRAW + +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Collections; + +namespace UnityEngine +{ + +ENUM internal BodyDoF + + SpineFrontBack = 0, + SpineLeftRight, + SpineRollLeftRight, + ChestFrontBack, + ChestLeftRight, + ChestRollLeftRight, + LastBodyDoF +END + +ENUM internal HeadDoF + NeckFrontBack = 0, + NeckLeftRight, + NeckRollLeftRight, + HeadFrontBack, + HeadLeftRight, + HeadRollLeftRight, + LeftEyeDownUp, + LeftEyeInOut, + RightEyeDownUp, + RightEyeInOut, + JawDownUp, + JawLeftRight, + LastHeadDoF +END + +ENUM internal LegDoF + UpperLegFrontBack = 0, + UpperLegInOut, + UpperLegRollInOut, + LegCloseOpen, + LegRollInOut, + FootCloseOpen, + FootInOut, + ToesUpDown, + LastLegDoF +END + +ENUM internal ArmDoF + ShoulderDownUp = 0, + ShoulderFrontBack, + ArmDownUp, + ArmFrontBack, + ArmRollInOut, + ForeArmCloseOpen, + ForeArmRollInOut, + HandDownUp, + HandInOut, + LastArmDoF +END + +ENUM internal FingerDoF + ProximalDownUp = 0, + ProximalInOut, + IntermediateCloseOpen, + DistalCloseOpen, + LastFingerDoF +END + +ENUM internal DoF + BodyDoFStart = 0, + HeadDoFStart = (int)BodyDoFStart + (int)BodyDoF.LastBodyDoF, + LeftLegDoFStart = (int)HeadDoFStart + (int)HeadDoF.LastHeadDoF, + RightLegDoFStart = (int)LeftLegDoFStart + (int)LegDoF.LastLegDoF, + LeftArmDoFStart = (int)RightLegDoFStart + (int)LegDoF.LastLegDoF, + RightArmDoFStart = (int)LeftArmDoFStart + (int)ArmDoF.LastArmDoF, + + LeftThumbDoFStart = (int)RightArmDoFStart + (int)ArmDoF.LastArmDoF, + LeftIndexDoFStart = (int)LeftThumbDoFStart + (int)FingerDoF.LastFingerDoF, + LeftMiddleDoFStart = (int)LeftIndexDoFStart + (int)FingerDoF.LastFingerDoF, + + LeftRingDoFStart = (int)LeftMiddleDoFStart + (int)FingerDoF.LastFingerDoF, + LeftLittleDoFStart = (int)LeftRingDoFStart + (int)FingerDoF.LastFingerDoF, + + RightThumbDoFStart = (int)LeftLittleDoFStart + (int)FingerDoF.LastFingerDoF, + RightIndexDoFStart = (int)RightThumbDoFStart + (int)FingerDoF.LastFingerDoF, + RightMiddleDoFStart = (int)RightIndexDoFStart + (int)FingerDoF.LastFingerDoF, + RightRingDoFStart = (int)RightMiddleDoFStart + (int)FingerDoF.LastFingerDoF, + RightLittleDoFStart = (int)RightRingDoFStart + (int)FingerDoF.LastFingerDoF, + + LastDoF = (int)RightLittleDoFStart + (int)FingerDoF.LastFingerDoF +END + +// Human Body Bones +ENUM HumanBodyBones + // This is the Hips bone + Hips = 0, + + // This is the Left Upper Leg bone + LeftUpperLeg = 1, + + // This is the Right Upper Leg bone + RightUpperLeg = 2, + + // This is the Left Knee bone + LeftLowerLeg = 3, + + // This is the Right Knee bone + RightLowerLeg = 4, + + // This is the Left Ankle bone + LeftFoot = 5, + + // This is the Right Ankle bone + RightFoot = 6, + + // This is the first Spine bone + Spine = 7, + + // This is the Chest bone + Chest = 8, + + // This is the Neck bone + Neck = 9, + + // This is the Head bone + Head = 10, + + // This is the Left Shoulder bone + LeftShoulder = 11, + + // This is the Right Shoulder bone + RightShoulder = 12, + + // This is the Left Upper Arm bone + LeftUpperArm = 13, + + // This is the Right Upper Arm bone + RightUpperArm = 14, + + // This is the Left Elbow bone + LeftLowerArm = 15, + + // This is the Right Elbow bone + RightLowerArm = 16, + + // This is the Left Wrist bone + LeftHand = 17, + + // This is the Right Wrist bone + RightHand = 18, + + // This is the Left Toes bone + LeftToes = 19, + + // This is the Right Toes bone + RightToes = 20, + + // This is the Left Eye bone + LeftEye = 21, + + // This is the Right Eye bone + RightEye = 22, + + // This is the Jaw bone + Jaw = 23, + + // This is the Last bone index delimiter + LastBone = 24 +END + +ENUM internal HumanFingerBones + ThumbProximal = 0, + ThumbIntermediate, + ThumbDistal, + + IndexProximal, + IndexIntermediate, + IndexDistal, + + MiddleProximal, + MiddleIntermediate, + MiddleDistal, + + RingProximal, + RingIntermediate, + RingDistal, + + LittleProximal, + LittleIntermediate, + LittleDistal, + LastBone +END + +ENUM internal HumanBodyPart + BodyStart = 0, + LeftFingerStart = (int)BodyStart + (int)HumanBodyBones.LastBone, + RightFingerStart = (int)LeftFingerStart + (int)HumanFingerBones.LastBone +END + +ENUM internal HumanParameter + UpperArmTwist = 0, + LowerArmTwist, + UpperLegTwist, + LowerLegTwist, + ArmStretch, + LegStretch, + FeetSpacing +END + + +// Avatar definition +CLASS Avatar : Object + // Return true if this avatar is a valid mecanim avatar. It can be a generic avatar or a human avatar. + CUSTOM_PROP bool isValid { + return self->IsValid(); + } + + // Return true if this avatar is a valid human avatar. + CUSTOM_PROP bool isHuman + { + return self->IsValid() && self->GetAsset()->isHuman(); + } + + CUSTOM internal void SetMuscleMinMax(int muscleId, float min, float max) + { + self->SetMuscleMinMax(muscleId, min, max); + } + + CUSTOM internal void SetParameter(int parameterId, float value) + { + self->SetParameter(parameterId, value); + } + + CUSTOM internal float GetAxisLength(int humanId) + { + return self->GetAxisLength(humanId); + } + + CUSTOM internal Quaternion GetPreRotation(int humanId) + { + return self->GetPreRotation(humanId); + } + + CUSTOM internal Quaternion GetPostRotation(int humanId) + { + return self->GetPostRotation(humanId); + } + + CUSTOM internal Quaternion GetZYPostQ(int humanId, Quaternion parentQ, Quaternion q) { + return self->GetZYPostQ(humanId, parentQ, q); + } + + CUSTOM internal Quaternion GetZYRoll(int humanId, Vector3 uvw) { + return self->GetZYRoll(humanId, uvw); + } + + CUSTOM internal Vector3 GetLimitSign(int humanId){ + return self->GetLimitSign(humanId); + } + +END + +// Humanoid definition +CLASS HumanTrait : Object + + // Number of muscles + CUSTOM_PROP static int MuscleCount + { + return HumanTrait::MuscleCount; + } + + // Muscle's name + CUSTOM_PROP static string[] MuscleName + { + return Scripting::StringVectorToMono( HumanTrait::GetMuscleName() ); + } + + // Number of bones + CUSTOM_PROP static int BoneCount + { + return HumanTrait::BoneCount; + } + + // Bone's name + CUSTOM_PROP static string[] BoneName + { + return Scripting::StringVectorToMono( HumanTrait::GetBoneName() ); + } + + // Return muscle index linked to bone i, dofIndex allow you to choose between X, Y and Z muscle's axis + CUSTOM static int MuscleFromBone(int i, int dofIndex){ + return HumanTrait::MuscleFromBone(i, dofIndex); + } + + // Return bone index linked to muscle i + CUSTOM static int BoneFromMuscle(int i){ + return HumanTrait::BoneFromMuscle(i); + } + + // Return true if bone i is a required bone. + CUSTOM static bool RequiredBone(int i){ + return HumanTrait::RequiredBone(i); + } + + // Number of required bones. + CUSTOM_PROP static int RequiredBoneCount + { + return HumanTrait::RequiredBoneCount(); + } + + CUSTOM internal static bool HasCollider(Avatar avatar, int i){ + return HumanTrait::HasCollider(*avatar, i); + } + + // Return default minimum values for muscle. + CUSTOM static float GetMuscleDefaultMin(int i){ + return HumanTrait::GetMuscleDefaultMin(i); + } + + // Return default maximum values for muscle. + CUSTOM static float GetMuscleDefaultMax(int i){ + return HumanTrait::GetMuscleDefaultMax(i); + } + +END + +CSRAW } |