X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FSkeleton.h;h=8bc7b74752c724b9b566a6d1a2be1a2b64e7256f;hb=47bd467205c41f5c993fb9d3f2b31338989c641c;hp=b9075fb0a6a1d5f40e52970a0c473cf7f788bb3e;hpb=320a287705c0463c6f8943ad9cf4c407c556f703;p=lugaru.git diff --git a/Source/Skeleton.h b/Source/Skeleton.h index b9075fb..8bc7b74 100644 --- a/Source/Skeleton.h +++ b/Source/Skeleton.h @@ -1,22 +1,21 @@ /* Copyright (C) 2003, 2010 - Wolfire Games +Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) This file is part of Lugaru. -Lugaru is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +Lugaru is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. -This program is distributed in the hope that it will be useful, +Lugaru is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +along with Lugaru. If not, see . */ #ifndef _SKELETON_H_ @@ -137,7 +136,6 @@ public: Animation & operator = (const Animation & ani); void Load(const char *fileName, int aheight, int aattack); - void Move(XYZ how); protected: void deallocate(); @@ -198,24 +196,36 @@ public: bool freefall; void FindForwards(); - void FindForwardsfirst(); float DoConstraints(XYZ *coords, float *scale); void DoGravity(float *scale); - void DoBalance(); - void MusclesSet(); + void FindRotationJoint(int which); + void FindRotationJointSameTwist(int which); + void FindRotationMuscle(int which, int animation); + void Load(const char *fileName, const char *lowfileName, const char *clothesfileName, const char *modelfileName, const char *model2fileName, const char *model3fileName, const char *model4fileName, const char *model5fileNamee, const char *model6fileName, const char *model7fileName, const char *modellowfileName, const char *modelclothesfileName, bool aclothes); + + /* + // unused + void FindForwardsfirst(); void Draw(int muscleview); void AddJoint(float x, float y, float z, int which); void SetJoint(float x, float y, float z, int which, int whichjoint); void DeleteJoint(int whichjoint); void AddMuscle(int attach1, int attach2, float maxlength, float minlength, int type); void DeleteMuscle(int whichmuscle); - void FindRotationJoint(int which); - void FindRotationJointSameTwist(int which); - void FindRotationMuscle(int which, int animation); - void Load(const char *fileName, const char *lowfileName, const char *clothesfileName, const char *modelfileName, const char *model2fileName, const char *model3fileName, const char *model4fileName, const char *model5fileNamee, const char *model6fileName, const char *model7fileName, const char *modellowfileName, const char *modelclothesfileName, bool aclothes); + void DoBalance(); + void MusclesSet(); + */ Skeleton(); ~Skeleton(); + +private: + // convenience functions + // only for Skeleton.cpp + inline Joint& joint(int bodypart) { return joints[jointlabels[bodypart]]; } + inline XYZ& jointPos(int bodypart) { return joint(bodypart).position; } + inline XYZ& jointVel(int bodypart) { return joint(bodypart).velocity; } + }; #endif