OurExp.h

Go to the documentation of this file.
00001 /******************************************************************************
00002  *<
00003     FILE: ourexp.h
00004                   
00005     DESCRIPTION:  Export Interface Functionality for Biped
00006                   This is used internally inside CS plugins
00007                   It is not for use by non-CS developers, since it contains all sorts of internal function calls
00008                   Other developers should use bipexp.h
00009 
00010     CREATED BY: Susan Amkraut 
00011 
00012     HISTORY: created February 2001
00013 
00014  *>     Copyright (c) Unreal Pictures, Inc. 1997, 2001 All Rights Reserved.
00015  *******************************************************************************/
00016 
00017 #pragma once
00018 
00019 #include "..\maxheap.h"
00020 #include "bipexp.h" // included to avoid double definitions
00021 #include "..\control.h"
00022 // This is the interface ID for a Biped Controller Interface
00023 #define I_OURINTERFACE  0x00100111
00024 
00025 
00026 // IOurBipExport: This class can be returned by calling the method GetInterface() from a Biped controller
00027 // Given controller *c points to a Biped controller, then:
00028 // IOurBipExport *BipIface = (IOurBipExport *) (c->GetInterface(I_OURINTERFACE));
00029 // will return the interface for this Biped Controller, else returns NULL.
00030 #pragma warning(push)
00031 #pragma warning(disable:4100)
00032 class IOurBipExport: public MaxHeapOperators
00033 {
00034     public:
00035         
00036         BIPExport virtual ~IOurBipExport() {}
00037 
00038         // For the BipedExport you got from the center of mass (root) controller, send in: 
00039         // VERTICAL_SUBANIM, HORIZONTAL_SUBANIM, and ROTATION_SUBANIM 
00040         // to get information for those tracks.
00041         // For other BipedExports this method is irrelevant.
00042         // The SetSubAnim method is actually included for future releases, 
00043         // when more methods will be added to the IOurBipExport class.
00044         // Then you could call these methods for the three center of mass subanims.
00045         // It is not presently useful.
00046         BIPExport virtual void SetSubAnim (int i) {};
00047 
00048         // call this from any IOurBipExport instance to remove or restore non uniform scaling
00049         BIPExport virtual void RemoveNonUniformScale(BOOL onOFF) {};
00050 
00051         // call these to begin and end figure mode
00052         BIPExport virtual void BeginFigureMode(int redraw) {};
00053         BIPExport virtual void EndFigureMode(int redraw) {};
00054 
00055         BIPExport virtual ScaleValue GetBipedScale(TimeValue t, INode *node){ return ScaleValue(); }
00056         BIPExport virtual Point3 GetBipedPosition(TimeValue t, INode *node){ return Point3(); }
00057         BIPExport virtual Quat GetBipedRotation(TimeValue t, INode *node){ return Quat(); }
00058         BIPExport virtual void SetBipedScale(const ScaleValue &scale, TimeValue t, INode *node){}
00059         BIPExport virtual void SetBipedPosition(const Point3 &p, TimeValue t, INode *node){}
00060         BIPExport virtual void SetBipedRotation(const Quat &q, TimeValue t, INode *node,  int global_reference){}
00061         BIPExport virtual void ScaleBiped(const float scale) {};
00062         BIPExport virtual float GetHeight() {return 1.0;}
00063         BIPExport virtual void GetVelocity(int frame, Point3 *vel) {};
00064         BIPExport virtual void GetProjectedVel(int frame, Point3 *vel) {};
00065         BIPExport virtual void SendDesiredProperties(int frame, Point3 *pos, Point3 *vel, Point3 *goal, int goal_exists, int stop_needed, int stop_time, float stop_distance, float speed_change){};
00066         BIPExport virtual void GetRedirectedVel(int frame, Point3 *desiredVel, Point3 *vel, Point3 *biped_skel_dir, int after_avoid_pass_flag, int avoid_needed) {};
00067         BIPExport virtual void SetAfterAvoidVel(int frame, Point3 *vel, Point3 *bip_vel_before_avoid, Point3 *bip_vel_after_avoid){};
00068         BIPExport virtual void EndFlow(int end_frame){};
00069         BIPExport virtual void InitializeFlow( Point3 *pos, Point3 *vel, float *max_speed, int start_frame, int use_random_start){};
00070         //BIPExport virtual void InitiateBackTrack(int start_frame, int last_frame){};
00071         BIPExport virtual void FinishBacktrack(){};
00072         BIPExport virtual void StartBacktrack(){}; 
00073         BIPExport virtual void FinishRetrace(){};
00074         BIPExport virtual void StartRetrace(){}; 
00075         BIPExport virtual void ClearPathsAhead(){};
00076         //BIPExport virtual void SendBackTrackingState(int  backtrack){};
00077         BIPExport virtual void GetBackTrackingFrame( int *backtrack_frame, int last_frame){};
00078         //BIPExport virtual void NumPossibleTransitions(int *num_transitions){};
00079         //BIPExport virtual void NumBlockedTransitions(int *num_transitions){};
00080         BIPExport virtual void GetPosition(int frame, Point3 *pos) {};
00081         BIPExport virtual void SetFlowHeight(int frame, float height) {};
00082         BIPExport virtual BOOL IsReadyForCrowdComputation(int starttype) {return FALSE;};
00083         BIPExport virtual void SetStartFrame(int startframe) {};
00084         BIPExport virtual void InitializeMoflowAnalysis() {};
00085         BIPExport virtual void SetDetourAngle(float angle) {};
00086 
00087         // make authorization available in one place to all dlls
00088         BIPExport virtual int  BipAuthorize(HWND hwndParent) {return FALSE;};
00089         BIPExport virtual int  BipIsAuthorized() {return FALSE;};
00090         BIPExport virtual void BipAuthorizedFromOutside() {};
00091 };
00092 
00093 #pragma warning(pop)
00094 
00095