- [Main Page](index.md)
- [Classes](annotated.md)
- [Files](files.md)
- [Directories](dirs.md)
- [Related Pages](pages.md)
- [File List](files.md)
- [File Members](globals.md)
HCP.h¶
Go to the documentation of this file.
00001 // BC 12/1/2004 \BobL120\Include\SDK\HCP.h
00002
00003 #define __HCP_H
00004
00005 #ifndef __HHASHOBJ_H
00006 #include "HHashObj.h"
00007 #endif
00008
00009 #ifndef __CPINTERP_H
00010 #include "CPInterp.h"
00011 #endif
00012
00013 #ifndef _SMALLPDB
00014
00015 class HTranslatePropertyNoSubs;
00016 class HBiasProperty;
00017 class HCPInstance;
00018 class HSpline;
00019 class HGroupCP;
00020 class HDecalClip;
00021 class HSegmentCache;
00022 class HCPWeight;
00023
00024 //*********************************************************
00025 //** HCP
00026 //*********************************************************
00027 class PLUGINEXPORT HCP : public HAnimObject
00028 {
00029 public:
00030 const Vector *GetPosition(); // Position of the CP, includes Muscle, and pose motion, but no Skeletal
00031 const Vector *GetModelPosition(); // Position of the CP with no motion, raw model data
00032 const Vector *GetWorldPosition(); // Position of the CP completely transformed
00033 const Vector *GetScreenPosition(); // Position of the CP completely transformed in world style coordinated, but facing the camera
00034
00035 HCPInstance *GetCPInstance();
00036 HCPInstance *CreateCPInstance();// will return the instance if it already exists
00037
00038 HSpline *GetSpline();
00039 HCP *GetNext();
00040 HCP *GetPrev();
00041 float GetInGamma();
00042 float GetInAlpha();
00043 float GetInMagnitude();
00044 float GetOutGamma() ;
00045 float GetOutAlpha() ;
00046 float GetOutMagnitude();
00047 Vector GetInTangent();
00048 Vector GetOutTangent();
00049 Vector GetModelInTangent();
00050 Vector GetModelOutTangent();
00051 Vector GetWorldInTangent();
00052 Vector GetWorldOutTangent();
00053 Vector GetScreenInTangent();
00054 Vector GetScreenOutTangent();
00055 HCP *GetNextAttached();
00056 HCP *GetPrevAttached();
00057 HCP *GetHead();
00058 HCPWeight *GetCPWeightHead(); //if walking through all cps should only be called when hcp == hcp->GetHead()
00059 BOOL AddToGroup( HGroupCP **gh);
00060 BOOL AddStackToGroup( HGroupCP **gh);
00061 void SetPosition( Vector *p ); // Sets the model position
00062 void SetInGamma(float fValue);
00063 void SetInAlpha(float fValue);
00064 void SetInMagnitude(float fValue);
00065 void SetOutGamma(float fValue);
00066 void SetOutAlpha(float fValue);
00067 void SetOutMagnitude(float fValue);
00068 void SetPeaked();
00069 void SetSmooth();
00070 void SetHide(BOOL bHide);
00071 void ComputeInBias(const Vector &goalit, float &alpha, float &gamma, float &magnitude);
00072 void ComputeOutBias(const Vector &goalot, float &alpha, float &gamma, float &magnitude);
00073 UINT GetID();
00074 HCPWeight *AddCPWeight(); //adds a new cpweight to the head cp
00075 void RemoveCPWeight(HCPWeight *hcpweight ); //frees handle
00076 // flags
00077 BOOL IsLoop();
00078 BOOL IsPeaked();
00079 BOOL IsSmooth();
00080 BOOL IsHook();
00081 BOOL IsFlip();
00082 BOOL IsHide();
00083 BOOL IsGroup();
00084 BOOL IsLocked();
00085 BOOL IsEndHook();
00086 BOOL IsHookBase();
00087 HSegmentCache *GetSegmentCache(); // returns the primary owner of this control point
00088 };
00089
00090 //*********************************************************
00091 //** HHookCP
00092 //*********************************************************
00093 class PLUGINEXPORT HHookCP : public HCP
00094 {
00095 public:
00096 float GetS();
00097 };
00098
00099 //*********************************************************
00100 //** HCPShortcut
00101 //*********************************************************
00102 class PLUGINEXPORT HCPShortcut : public HAnimObjectShortcut
00103 {
00104 public:
00105 ULONG GetCPID();
00106 BOOL CanCompactForSaving();
00107 };
00108
00109 //*********************************************************
00110 //** HCPInstance
00111 //*********************************************************
00112 class PLUGINEXPORT HCPInstance : public HAnimObject
00113 {
00114 public:
00115 HBiasProperty *GetInBias();
00116 HBiasProperty *GetOutBias();
00117 HTranslatePropertyNoSubs *GetPosition();
00118
00119 HCP *GetCP();
00120 };
00121
00122 //*********************************************************
00123 //** HGroupCP
00124 //*********************************************************
00125 class HCP;
00126 class PLUGINEXPORT HGroupCP : public HHashObject
00127 {
00128 public:
00129 HGroupCP *GetNext();
00130 HCP *GetCP();
00131 // creation
00132 static HGroupCP *New();
00133 void Delete();
00134 };
00135
00136 class HDecalClipContainer;
00137 class HAttrProperty;
00138 class HClip;
00139 class HPolyModifierShortcut;
00140 //*********************************************************
00141 //** HGroup
00142 //*********************************************************
00143 class PLUGINEXPORT HGroup : public HHashObject
00144 {
00145 public:
00146 // Properties
00147 HAttrProperty *GetAttr();
00148
00149 HGroupCP *GetGroupCP();
00150 Matrix34 *GetMatrix();
00151 BOOL IsTempGroup();
00152 void SetTempGroup(BOOL istemp);
00153
00154 BOOL AddCP(HCP *cp);
00155 BOOL RemoveCP(HCP *cp);
00156
00157 HDecalClipContainer *GetChildDecalClipContainer();
00158 BOOL IsPatchInGroup(HPatch *patch);
00159 BOOL IsCPInGroup(HCP *hcp);
00160
00161 HDecalClip *CreateGroupDecal(HClip *clipcache=NULL);// Will prompt if NULL
00162 void RotateGroupImages();
00163 HPolyModifierShortcut *GetPolyModifierHead();
00164 };
00165
00166 //*********************************************************
00167 //** HGroupContainer
00168 //*********************************************************
00169 class PLUGINEXPORT HGroupContainer : public HHashObject
00170 {
00171 public:
00172 HGroup *GetChildGroup();
00173 };
00174
00175 //*********************************************************
00176 //** HChannelCP
00177 //*********************************************************
00178 class PLUGINEXPORT HChannelCP
00179 {
00180 public:
00181 void operator delete( void *ptr ) { DeleteHandle( (HChannelCP *)ptr ); }
00182 static void DeleteHandle(HChannelCP *handle);
00183
00184 CPInterpolationMethod GetInterpolationMethod();
00185 void SetInterpolationMethod(CPInterpolationMethod method);
00186
00187 // Traversal
00188 HChannelCP *GetNext();
00189
00190 // Operations
00191 float GetInGamma();
00192 float GetInMagnitude();
00193 float GetOutGamma();
00194 float GetOutMagnitude();
00195 void SetInGamma(float fValue);
00196 void SetInMagnitude(float fValue);
00197 void SetOutGamma(float fValue);
00198 void SetOutMagnitude(float fValue);
00199 void SetBias(const Vector2 &goalit, const Vector2 &goalot);
00200 BOOL IsPeaked();
00201 BOOL IsSmooth();
00202 Time GetTime();
00203 float GetValue();
00204 Vector2 GetInTangent();
00205 Vector2 GetOutTangent();
00206 BOOL IsLoop();
00207 };
00208
00209 #endif
This A:M SDK v12.0 documentation is maintained by Hash Inc. Please address any comments concerning this documentation to AMReports. If you have any information, knowledge, or documentation to share with the A:M developer community, please post them on the Hash SDK forum.
Generated on Thu Oct 27 11:46:45 2005 with doxygen 1.4.5 written by Dimitri van Heesch, © 1997-2001