2017-04-17 06:17:10 -06:00

94 lines
4.8 KiB
C++
Executable File

/******************************************************************************
*<
FILE: ourexp.h
DESCRIPTION: Export Interface Functionality for Biped
This is used internally inside CS plugins
It is not for use by non-CS developers, since it contains all sorts of internal function calls
Other developers should use bipexp.h
CREATED BY: Susan Amkraut
HISTORY: created February 2001
*> Copyright (c) Unreal Pictures, Inc. 1997, 2001 All Rights Reserved.
*******************************************************************************/
#ifndef OUREXP_H
#define OUREXP_H
#include "bipexp.h" // included to avoid double definitions
// This is the interface ID for a Biped Controller Interface
#define I_OURINTERFACE 0x00100111
// IOurBipExport: This class can be returned by calling the method GetInterface() from a Biped controller
// Given controller *c points to a Biped controller, then:
// IOurBipExport *BipIface = (IOurBipExport *) (c->GetInterface(I_OURINTERFACE));
// will return the interface for this Biped Controller, else returns NULL.
class IOurBipExport
{
public:
BIPExport virtual ~IOurBipExport() {}
// For the BipedExport you got from the center of mass (root) controller, send in:
// VERTICAL_SUBANIM, HORIZONTAL_SUBANIM, and ROTATION_SUBANIM
// to get information for those tracks.
// For other BipedExports this method is irrelevant.
// The SetSubAnim method is actually included for future releases,
// when more methods will be added to the IOurBipExport class.
// Then you could call these methods for the three center of mass subanims.
// It is not presently useful.
BIPExport virtual void SetSubAnim (int i) {};
// call this from any IOurBipExport instance to remove or restore non uniform scaling
BIPExport virtual void RemoveNonUniformScale(BOOL onOFF) {};
// call these to begin and end figure mode
BIPExport virtual void BeginFigureMode(int redraw) {};
BIPExport virtual void EndFigureMode(int redraw) {};
BIPExport virtual ScaleValue GetBipedScale(TimeValue t, INode *node){ return ScaleValue(); }
BIPExport virtual Point3 GetBipedPosition(TimeValue t, INode *node){ return Point3(); }
BIPExport virtual Quat GetBipedRotation(TimeValue t, INode *node){ return Quat(); }
BIPExport virtual void SetBipedScale(const ScaleValue &scale, TimeValue t, INode *node){}
BIPExport virtual void SetBipedPosition(const Point3 &p, TimeValue t, INode *node){}
BIPExport virtual void SetBipedRotation(const Quat &q, TimeValue t, INode *node, int global_reference){}
BIPExport virtual void ScaleBiped(const float scale) {};
BIPExport virtual float GetHeight() {return 1.0;}
BIPExport virtual void GetVelocity(int frame, Point3 *vel) {};
BIPExport virtual void GetProjectedVel(int frame, Point3 *vel) {};
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){};
BIPExport virtual void GetRedirectedVel(int frame, Point3 *desiredVel, Point3 *vel, Point3 *biped_skel_dir, int after_avoid_pass_flag, int avoid_needed) {};
BIPExport virtual void SetAfterAvoidVel(int frame, Point3 *vel, Point3 *bip_vel_before_avoid, Point3 *bip_vel_after_avoid){};
BIPExport virtual void EndFlow(int end_frame){};
BIPExport virtual void InitializeFlow( Point3 *pos, Point3 *vel, float *max_speed, int start_frame, int use_random_start){};
//BIPExport virtual void InitiateBackTrack(int start_frame, int last_frame){};
BIPExport virtual void FinishBacktrack(){};
BIPExport virtual void StartBacktrack(){};
BIPExport virtual void FinishRetrace(){};
BIPExport virtual void StartRetrace(){};
BIPExport virtual void ClearPathsAhead(){};
//BIPExport virtual void SendBackTrackingState(int backtrack){};
BIPExport virtual void GetBackTrackingFrame( int *backtrack_frame, int last_frame){};
//BIPExport virtual void NumPossibleTransitions(int *num_transitions){};
//BIPExport virtual void NumBlockedTransitions(int *num_transitions){};
BIPExport virtual void GetPosition(int frame, Point3 *pos) {};
BIPExport virtual void SetFlowHeight(int frame, float height) {};
BIPExport virtual BOOL IsReadyForCrowdComputation(int starttype) {return FALSE;};
BIPExport virtual void SetStartFrame(int startframe) {};
BIPExport virtual void InitializeMoflowAnalysis() {};
BIPExport virtual void SetDetourAngle(float angle) {};
// make authorization available in one place to all dlls
BIPExport virtual int BipAuthorize(HWND hwndParent) {return FALSE;};
BIPExport virtual int BipIsAuthorized() {return FALSE;};
BIPExport virtual void BipAuthorizedFromOutside() {};
};
#endif