| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /******************************************************************************/
- /******************************************************************************
- Usage of 'rotateToDir' instead of setting 'dir' and calling 'fix' gives better precision for cases when we're rotating the bone by 90 deg.
- /******************************************************************************/
- class AdjustBoneOrns : PropWin
- {
- enum HAND_MODE
- {
- HAND_SKIP,
- HAND_MIDDLE,
- HAND_AVG,
- HAND_PARENT,
- };
- static cchar8 *HandMode[]
- ;
- enum FOOT_MODE
- {
- FOOT_SKIP,
- FOOT_DEFAULT,
- FOOT_DOWN,
- FOOT_PARENT,
- };
- static cchar8 *FootMode[]
- ;
- enum ROT_SHOULDER_MODE
- {
- ROT_SHOULDER_NO,
- ROT_SHOULDER_SRC,
- ROT_SHOULDER_DEST,
- };
- static cchar8 *RotShoulder[]
- ;
- bool zero_child,
- one_child,
- multi_child,
- force_eye_forward,
- force_nose_forward,
- force_spine_up,
- force_neck_up,
- force_head_up,
- force_toe_forward,
- add_shoulder,
- reset_perp,
- refresh_needed;
- HAND_MODE hand_mode;
- FOOT_MODE foot_mode;
- ROT_SHOULDER_MODE rotate_shoulder;
- Button adjust;
- Skeleton skel;
- static void Changed(C Property &prop);
- static void Adjust(AdjustBoneOrns &abo);
- static bool SetTarget(SkelBone &bone, C Vec &pos);
- static flt BoneMeshLength(C SkelBone &bone);
- static Str8 UniqueName(C Skeleton &skel, C Str8 &name);
- void setBoneLength(Skeleton &skel, SkelBone &bone, flt min_length); // set length as Max of all children
- bool adjustDo(Skeleton &skel, Mesh *mesh=null); // return if mesh was changed
- Skeleton& getSkel();
- void refresh();
- AdjustBoneOrns& create();
- public:
- AdjustBoneOrns();
- };
- /******************************************************************************/
- /******************************************************************************/
- /******************************************************************************/
|