14 #ifndef _H_HBhvBehaviorManager_H
15 #define _H_HBhvBehaviorManager_H
25 #include "HBhvInterpolator.h"
30 class HUtilityXMLGenerator;
104 void SetTargetKey(HC_KEY key) { m_key = key; }
118 bool IsEqual(
const char *target);
132 static void ResolveTarget(
const char *in,
char *result,
char *targettype,
HBaseModel *model,
HBhvCameraType &ctype);
134 static void CreateTargetString(
const char *type,
const char *path,
char *result,
bool addquotes =
false);
168 void SetPivot(
float x,
float y,
float z) { m_Pivot.Set(x,y,z); }
180 void Serialize(HUtilityXMLGenerator *xmlgen);
185 static void *XMLCallback(HUtilityXMLTag *xt,
bool open,
void *m_pExtraData);
205 void SetSerializeFromKey(
bool sfk ) { m_bSerializeFromKey = sfk; }
210 static void CollapseTarget(
const char *target,
char *collapsedtarget);
212 char m_Name[MVO_SMALL_BUFFER_SIZE];
213 char m_Path[MVO_SEGMENT_PATHNAME_BUFFER];
214 char m_ResolvedPath[MVO_SEGMENT_PATHNAME_BUFFER];
215 char m_Type[MVO_SMALL_BUFFER_SIZE];
226 bool m_bSerializeFromKey;
265 void Serialize(HUtilityXMLGenerator *xmlgen);
272 void ScheduleAnimation(
HBhvAnimation* animation,
float currenttime);
295 virtual bool Tick(
float request_time,
float actual_time );
308 void DeleteAllAnimations();
317 HBhvAnimation * FindAnimation(
const char *target,
const char *interpolatortype);
329 void ScheduleAllAnimations(
bool reset =
false);
345 HBhvTargetObject * CreateTargetObjectByPath(
const char *name,
const char *path);
372 void WriteToFile(
const __wchar_t *filename);
374 void WriteToFile(
const unsigned short *filename);
376 void WriteToFile(
const char *filename);
383 static void ReadFromFile(
HBaseModel *model,
const __wchar_t *filename);
385 static void ReadFromFile(
HBaseModel *model,
const unsigned short *filename);
387 static void ReadFromFile(
HBaseModel *model,
const char *filename);
394 static void ProcessXMLData(
HBaseModel *model,
const char *buffer);
399 static void *XMLCallback(HUtilityXMLTag *xt,
bool open,
void *m_pExtraData);
412 void SetCurrentTick(
float tick);
415 void SetCurrentTick();
422 void SetCurrentTickByPercentage(
float percentage);
425 float GetCurrentTickByPercentage();
434 HC_KEY GetActiveSceneKey();
454 bool IsAtFinalTick();
465 int GetNextKeyframe(
int ticknum,
bool forward);
476 bool HasAnimations();
484 HBhvSensor * FindSensorByName(
const char *name);
489 void ExecuteAnimations(
float currenttick,
float starttick);
533 void SetTargetMatrix(
float *mat) {
for (
int i=0;i<16;i++) m_targetmatrix[i] = mat[i]; }
536 void GetTargetMatrix(
float *mat) {
for (
int i=0;i<16;i++) mat[i] = m_targetmatrix[i]; }
541 void GetFov(
float fov) { UNREFERENCED(fov); }
548 void DeactivateAllAnimations();
551 void ActivateAllAnimations();
556 void ActivateAnimationByName(
const char *name,
bool AllowPartial =
true);
561 void DeactivateAnimationByName(
const char *name,
bool AllowPartial =
true);
590 void AddPositionKeyframe(
const char *animname,
int tick,
HPoint pos,
bool linear);
597 void AddQuatSquadKeyframe(
const char *animname,
int tick,
HQuat rot,
bool linear);
603 void AddMatrixKeyframe(
const char *animname,
int tick,
float matrix[]);
611 void AddSegmentMoveKeyframe(
const char *animname,
int tick,
char *path);
622 void AddTrailKeyframe(
const char *animname,
int tick,
HPoint pos,
bool linear, TrailInterpolatorType *trailtype = 0,
int *weight = 0,
const char *style =0,
const char *color = 0);
629 void AddAxisRotateKeyframe(
const char *animname,
int tick,
float rot,
HPoint *axis = 0);
636 void AddColorKeyframe(
const char *animname,
int tick,
HPoint color,
const char *colorcomponent = 0,
const char *geomtype = 0);
641 void AddScaleKeyframe(
const char *animname,
int tick,
HPoint scale);
647 void AddAttributeSwitchKeyframe(
const char *animname,
int tick,
const char *att);
654 void AddVertexMorphInterpolator(
const char *animname,
int tick,
const char *mident,
bool discrete);
662 void AddColorMorphInterpolator(
const char *animname,
int tick,
const char *mident,
bool discrete);
668 void AddSegmentSwitchKeyframe(
const char *animname,
int tick,
const char *ss);
674 void AddInstanceCreateKeyframe(
const char *animname,
int tick,
const char *instance);
684 void AddVertexMorphDataToAnimation(
const char *animname,
HPoint *md,
int pnum,
HBaseModel *model,
int pos = -1);
693 void AddColorMorphDataToAnimation(
const char *animname,
HPoint *md,
int pnum,
HBaseModel *model,
int pos = -1);
701 void ResolveInstances();
735 float m_positionmatrix[16];
736 float m_targetmatrix[16];
741 bool m_bShellSelectionActive;
void SetStartTime(float time)
Definition: HBhvBehaviorManager.h:567
void SetCurrentTickByTime(float t)
Definition: HBhvBehaviorManager.h:407
void GetPositionMatrix(float *mat)
Definition: HBhvBehaviorManager.h:529
The HBhvTimeline class encpasulates an animation timeline.
Definition: HBhvTimeline.h:38
The HKeyframe class is the base class for all keyframe types.
Definition: HBhvUtility.h:257
const char * GetResolvedPath()
Definition: HBhvBehaviorManager.h:107
void SetMerge(bool merge)
Definition: HBhvBehaviorManager.h:572
int m_LastTick
Definition: HBhvBehaviorManager.h:721
The HQuat class defines the data type of a Quaternion.
Definition: HBhvUtility.h:83
const char * GetName()
Definition: HBhvBehaviorManager.h:96
const char * GetPath()
Definition: HBhvBehaviorManager.h:99
void SetPositionMatrix(float *mat)
Definition: HBhvBehaviorManager.h:527
bool m_bCollision
Definition: HBhvBehaviorManager.h:220
The HBhvBehaviorManager class stores and manages all animation related data.
Definition: HBhvBehaviorManager.h:237
bool m_bInfinitePlay
Definition: HBhvBehaviorManager.h:738
void GetPivot(HPoint &pv)
Definition: HBhvBehaviorManager.h:171
void FlagForCollision()
Definition: HBhvBehaviorManager.h:199
HBhvBehaviorManager * m_pBehaviorManager
Definition: HBhvBehaviorManager.h:217
HPoint m_Pivot
Definition: HBhvBehaviorManager.h:219
bool m_bHasMoved
Definition: HBhvBehaviorManager.h:221
struct vlist_s * m_TargetObjectList
Definition: HBhvBehaviorManager.h:725
HBaseModel * GetModel()
Definition: HBhvBehaviorManager.h:402
#define BHV_MAX_NAME_LENGTH
Maximum Length of "Names" in animations.
Definition: HBhvUtility.h:41
bool m_bMerge
Definition: HBhvBehaviorManager.h:739
void CameraUpdated()
Definition: HBhvBehaviorManager.h:510
float m_fov
Definition: HBhvBehaviorManager.h:737
int m_Tps
Definition: HBhvBehaviorManager.h:717
void SetInfinitePlay(bool inf)
Definition: HBhvBehaviorManager.h:502
void GetTargetMatrix(float *mat)
Definition: HBhvBehaviorManager.h:536
Definition: HTManager.h:157
bool m_bContinuousPlay
Definition: HBhvBehaviorManager.h:733
int GetTicksPerSecond()
Definition: HBhvBehaviorManager.h:259
void SetRenderEveryTick(bool everytick)
Definition: HBhvBehaviorManager.h:448
vlist_s * GetAnimationList()
Definition: HBhvBehaviorManager.h:299
void ResetForCollision()
Definition: HBhvBehaviorManager.h:202
HPoint * GetPivot()
Definition: HBhvBehaviorManager.h:174
struct vlist_s * m_SensorList
Definition: HBhvBehaviorManager.h:726
int m_Delay
Definition: HBhvBehaviorManager.h:718
HBaseView * m_pView
Definition: HBhvBehaviorManager.h:730
The HBhvTargetObject class encapsulates various target types for animations and sensors.
Definition: HBhvBehaviorManager.h:82
There is no camera animation.
Definition: HBhvBehaviorManager.h:42
bool m_bCameraUpdated
Definition: HBhvBehaviorManager.h:734
The HBhvInterpolator class is the abstract base class for all interpolator types. ...
Definition: HBhvInterpolator.h:64
float GetCurrentTick()
Definition: HBhvBehaviorManager.h:418
The camera target is independently defined but works in conjunction with CameraPositionFree.
Definition: HBhvBehaviorManager.h:45
bool GetRenderEveryTick()
Definition: HBhvBehaviorManager.h:444
bool m_bRenderEveryFrame
Definition: HBhvBehaviorManager.h:731
The HBhvSensor class encapsulates an animation sensor.
Definition: HBhvSensor.h:33
bool GetContinuousPlay()
Definition: HBhvBehaviorManager.h:507
The HBaseModel class is used to store and manage model information.
Definition: HBaseModel.h:47
void SetPivot(float x, float y, float z)
Definition: HBhvBehaviorManager.h:168
void GetFov(float fov)
Definition: HBhvBehaviorManager.h:541
bool IsPlaying()
Definition: HBhvBehaviorManager.h:431
The HPoint class is the data type of a three-dimensional point.
Definition: HGlobals.h:121
float m_CurrentTick
Definition: HBhvBehaviorManager.h:720
void SetFov(float fov)
Definition: HBhvBehaviorManager.h:539
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:332
HBhvCameraType m_CameraType
Definition: HBhvBehaviorManager.h:218
bool GetMerge()
Definition: HBhvBehaviorManager.h:574
Animation keyframe defines the camera target and position.
Definition: HBhvBehaviorManager.h:47
bool GetCameraUpdated()
Definition: HBhvBehaviorManager.h:513
The HBhvAnimation class defines an animation.
Definition: HBhvAnimation.h:43
bool GetUpdateCamera()
Definition: HBhvBehaviorManager.h:451
virtual bool Tick(float request_time, float actual_time)
Definition: HTManager.h:186
HBhvCameraType GetCameraType()
Definition: HBhvBehaviorManager.h:121
struct vlist_s * m_AnimationList
Definition: HBhvBehaviorManager.h:723
Animation is position driven. The target location is derived from the position location.
Definition: HBhvBehaviorManager.h:44
HBaseModel * m_pModel
Definition: HBhvBehaviorManager.h:728
bool m_bUpdateCamera
Definition: HBhvBehaviorManager.h:732
The camera position is independently defined but works in conjunction with CameraTargetFree.
Definition: HBhvBehaviorManager.h:46
HBhvCameraType
Definition: HBhvBehaviorManager.h:40
#define BHV_MAX_VENDOR_LENGTH
Maximum Length of "Vendor" string.
Definition: HBhvUtility.h:43
void SetContinuousPlay(bool cont)
Definition: HBhvBehaviorManager.h:495
bool m_bPlaying
Definition: HBhvBehaviorManager.h:729
float m_StartTime
Definition: HBhvBehaviorManager.h:719
HBaseView * GetActiveView()
Definition: HBhvBehaviorManager.h:441
Animation is target driven. The position location is derived from the target location.
Definition: HBhvBehaviorManager.h:43
void SetTicksPerSecond(int tps)
Definition: HBhvBehaviorManager.h:256
void SetCollision(bool collision)
Definition: HBhvBehaviorManager.h:158
struct vlist_s * m_ScheduledAnimationList
Definition: HBhvBehaviorManager.h:724
void SetPivot(HPoint pv)
Definition: HBhvBehaviorManager.h:149
bool GetCollision()
Definition: HBhvBehaviorManager.h:161
bool HasMoved()
Definition: HBhvBehaviorManager.h:204
void SetTargetMatrix(float *mat)
Definition: HBhvBehaviorManager.h:533
const char * GetType()
Definition: HBhvBehaviorManager.h:111
HC_KEY m_key
Definition: HBhvBehaviorManager.h:216
void SetUpdateCamera(bool updatecamera)
Definition: HBhvBehaviorManager.h:458
#define BHV_MAX_VERSION_LENGTH
Maximum Length of "Version" string.
Definition: HBhvUtility.h:42