Public Member Functions

IBipMaster8 Class Reference

Search for all occurrences

Detailed Description

Interface into the biped master controller for Max 8.

This contains functions supporting new biped features in Max 8. These include euler versus quaternion rotations, locked com, twist bones, twist poses, bend links functions, and copy collections.

#include <Biped8Api.h>

Inheritance diagram for IBipMaster8:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual void  RefreshBipedUI ()=0
  Updates the biped user interface.
virtual IMixer8 GetMixer8 ()=0
  Get the new mixer interface for max 8 that supports max objects.
Quaternion / Euler Track Specification
virtual bool  GetEulerActive (const int id)=0
  Gets whether or not a biped track is euler.
virtual int  GetEulerOrder (const int id)=0
  Gets the euler order of a biped track.
virtual bool  SetEulerActive (int id, int eulerOrder)=0
  Sets a biped track to euler with the specified euler order.
virtual bool  SetQuaternionActive (int id)=0
  Sets a biped track to quaternion.
virtual bool  SetEulerOrder (int id, int eulerOrder)=0
  Sets a biped track to the specified euler order.
Center of Mass Selection
virtual bool  IsComLocked ()=0
  Queries the locked state of the com.
virtual void  LockCom (bool lock)=0
  Locks or unlocks the com.
Manipulation of Twist Bones
virtual bool  GetTwist () const =0
  Queries the state of Twists for this biped.
virtual void  SetTwist (bool enable)=0
  Enables or disables the twists for this biped.
virtual float  GetTwistBias (int twisttrack) const =0
  Gets the twist bias for the specified twist track of this biped.
virtual void  SetTwistBias (int twisttrack, float bias)=0
  Sets the twist bias for the specified twist track of this biped.
Twist Poses
virtual int  NumTwistPoses (int keytrack)=0
  Queries the number of twist poses for the specified limb.
virtual bool  CreateTwistPose (int keytrack)=0
  Creates a new arm or leg twist pose, and appends it the the existing poses.
virtual bool  SetTwistPose (int keytrack, int index)=0
  Sets an existing arm or leg twist pose.
virtual bool  DeleteTwistPose (int keytrack, int index)=0
  Deletes an arm or leg twist pose.
virtual void  SetDefaultTwistPoses (int keytrack)=0
  Sets the arm or leg twist poses to the default poses.
virtual bool  SetTwistPoseName (int keytrack, int index, const MCHAR *name)=0
  Sets the name of an arm or leg twist pose.
virtual bool  SetTwistPoseTwist (int keytrack, int index, float twist)=0
  Sets the twist value of an arm or leg twist pose.
virtual bool  SetTwistPoseBias (int keytrack, int index, float bias)=0
  Sets the bias value of an arm or leg twist pose.
virtual const MCHAR *  GetTwistPoseName (int keytrack, int index)=0
  Returns the name of an arm or leg twist pose.
virtual float  GetTwistPoseTwist (int keytrack, int index)=0
  Returns the twist value of an arm or leg twist pose.
virtual float  GetTwistPoseBias (int keytrack, int index)=0
  Returns the bias value of an arm or leg twist pose.
virtual void  SetLimbToTwistPose (int keytrack, int index, bool opposite)=0
  Updates the limb to match an arm or leg twist pose.
virtual int  LoadFigNoTwists (const MCHAR *fname, BOOL redraw=false, BOOL msgs=false)=0
  Loads a figure file without loading the twist poses stored in the file.
virtual int  LoadFigJustTwists (const MCHAR *fname, BOOL redraw=false, BOOL msgs=false)=0
  Loads only the twist poses from a figure file.
Bend Links Menu Functions

For spine, neck.tail, and pony tail link rotations

virtual void  ZeroTwist (int keytrack)=0
  Zeros out the twist for the specified track of this biped.
virtual void  ZeroAll (int keytrack)=0
  Zeros out all the angles for all the links of the specified track of this biped.
virtual void  SmoothTwist (int keytrack, float bias)=0
  Smooths the twist between the first and last link of the specified track of this biped.
Copy/Paste Functions and Copy Collections
virtual int  NumCopyCollections () const =0
  Queries the number of copy collections.
virtual ICopyCollection GetCopyCollection (int index) const =0
  Gets a copy collection.
virtual ICopyCollection GetCopyCollection (const MCHAR *name, int *index) const =0
  Gets a copy collection.
virtual ICopyCollection CreateCopyCollection (const MCHAR *colname)=0
  Creates a copy collection.
virtual bool  DeleteCopyCollection (int index)=0
  Deletes a copy collection.
virtual void  DeleteAllCopyCollections ()=0
  Deletes all copy collections.
virtual IBipedCopy CopyBipPosture (ICopyCollection *ICC, INodeTab *nodes, int snapshottype)=0
  Copies the posture of the specified parts of this biped.
virtual IBipedCopy CopyBipPose (ICopyCollection *ICC, int snapshottype)=0
  Copies the biped's pose.
virtual IBipedCopy CopyBipTrack (ICopyCollection *ICC, INodeTab *nodes, int snapshottype)=0
  Copies the animation of the specified parts of this biped.
virtual bool  PasteBipPosture (IBipedCopy *CP, bool opposite, int KeyPasteType, bool Hor, bool Ver, bool Trn, bool ByVel)=0
  Pastes a posture onto this biped.
virtual bool  PasteBipPose (IBipedCopy *CP, bool opposite, int KeyPasteType, bool Hor, bool Ver, bool Trn, bool ByVel)=0
  Pastes a pose onto this biped.
virtual bool  PasteBipTrack (IBipedCopy *CP, bool opposite, bool Hor, bool Ver, bool Trn)=0
  Pastes a track onto this biped.

Member Function Documentation

virtual void RefreshBipedUI ( ) [pure virtual]

Updates the biped user interface.

This will update all biped menus in the creation or motion panel, whichever is visible.

virtual bool GetEulerActive ( const int  id ) [pure virtual]

Gets whether or not a biped track is euler.

Parameters:
[in] id - a biped track, as defined in tracks.h
Returns:
true if if the track is euler, false if it is quaternion
virtual int GetEulerOrder ( const int  id ) [pure virtual]

Gets the euler order of a biped track.

Parameters:
[in] id - a biped track, as defined in tracks.h
Returns:
eulerOrder - an EULERTYPE, as defined in euler.h
virtual bool SetEulerActive ( int  id,
int  eulerOrder 
) [pure virtual]

Sets a biped track to euler with the specified euler order.

Parameters:
[in] id - a biped track, as defined in tracks.h. Props, fingers, toes, footprints, horizontal, and vertical tracks cannot be set to euler.
[in] eulerOrder - any of the EULERTYPEs, as defined euler.h, except for EULERTYPE_XYX, EULERTYPE_YZY, and EULERTYPE_ZXZ
Returns:
true if successful, false if not
virtual bool SetQuaternionActive ( int  id ) [pure virtual]

Sets a biped track to quaternion.

Parameters:
[in] id - a biped track, as defined in tracks.h
Returns:
true if successful, false if not
virtual bool SetEulerOrder ( int  id,
int  eulerOrder 
) [pure virtual]

Sets a biped track to the specified euler order.

The euler order is only relevant if the track is euler or when it becomes euler.

Parameters:
[in] id - a biped track, as defined in tracks.h
[in] eulerOrder - any of the EULERTYPEs, as defined in euler.h, except for EULERTYPE_XYX, EULERTYPE_YZY, and EULERTYPE_ZXZ
Returns:
true if successful, false if not
virtual bool IsComLocked ( ) [pure virtual]

Queries the locked state of the com.

Returns:
true if the com is locked, false if not
virtual void LockCom ( bool  lock ) [pure virtual]

Locks or unlocks the com.

Parameters:
[in] lock - true to lock the com, false to unlock the com
virtual bool GetTwist ( ) const [pure virtual]

Queries the state of Twists for this biped.

Returns:
true if the twists are on, false if the twists are off
virtual void SetTwist ( bool  enable ) [pure virtual]

Enables or disables the twists for this biped.

Precondition:
Biped must be in figure mode or must be active in the biped creation panel.
Parameters:
[in] enable - If true, new twists will be added. If false, all twists will be removed.
virtual float GetTwistBias ( int  twisttrack ) const [pure virtual]

Gets the twist bias for the specified twist track of this biped.

Parameters:
[in] twisttrack - one of the following twist track identifiers: TWS_LFARM, TWS_RFARM, TWS_LCALF, TWS_RCALF, TWS_LHORSE, TWS_RHORSE
Returns:
the twist bias, a number between 0.0 and 1.0
virtual void SetTwistBias ( int  twisttrack,
float  bias 
) [pure virtual]

Sets the twist bias for the specified twist track of this biped.

Parameters:
[in] twisttrack - one of the following twist track identifiers: TWS_LFARM, TWS_RFARM, TWS_LCALF, TWS_RCALF, TWS_LHORSE, TWS_RHORSE
[in] bias - the bias, between 0.0 and 1.0
virtual int NumTwistPoses ( int  keytrack ) [pure virtual]

Queries the number of twist poses for the specified limb.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM for arm poses, KEY_LLEG or KEY_RLEG for leg poses
Returns:
the number of arm or leg twist poses
virtual bool CreateTwistPose ( int  keytrack ) [pure virtual]

Creates a new arm or leg twist pose, and appends it the the existing poses.

The pose will be the current rotation of the upper arm for the arm track, and the thigh for the leg track.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to create an arm pose, and KEY_LLEG or KEY_RLEG to create a leg pose
Returns:
true if the function was successful, false if not
virtual bool SetTwistPose ( int  keytrack,
int  index 
) [pure virtual]

Sets an existing arm or leg twist pose.

The pose will be the current rotation of the upper arm for the arm track, and the thigh for the leg track.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to set an arm pose, and KEY_LLEG or KEY_RLEG to set a leg pose
[in] index - the index of the pose in the pose list
Returns:
true if the function was successful, false if not
virtual bool DeleteTwistPose ( int  keytrack,
int  index 
) [pure virtual]

Deletes an arm or leg twist pose.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to set an arm pose, and KEY_LLEG or KEY_RLEG to set a leg pose
[in] index - the index of the pose in the pose list
Returns:
true if the function was successful, false if not
virtual void SetDefaultTwistPoses ( int  keytrack ) [pure virtual]

Sets the arm or leg twist poses to the default poses.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to set the arm poses, and KEY_LLEG or KEY_RLEG to set the leg poses
virtual bool SetTwistPoseName ( int  keytrack,
int  index,
const MCHAR *  name 
) [pure virtual]

Sets the name of an arm or leg twist pose.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to set an arm pose, and KEY_LLEG or KEY_RLEG to set a leg pose
[in] index - the index of the pose in the pose list
[in] name - the name to call the pose
Returns:
true if the function was successful, false if not
virtual bool SetTwistPoseTwist ( int  keytrack,
int  index,
float  twist 
) [pure virtual]

Sets the twist value of an arm or leg twist pose.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to set an arm pose, and KEY_LLEG or KEY_RLEG to set a leg pose
[in] index - the index of the pose in the pose list
[in] twist - the twist value in degrees, between -180 and 180
Returns:
true if the function was successful, false if not
virtual bool SetTwistPoseBias ( int  keytrack,
int  index,
float  bias 
) [pure virtual]

Sets the bias value of an arm or leg twist pose.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to set an arm pose, and KEY_LLEG or KEY_RLEG to set a leg pose
[in] index - the index of the pose in the pose list
[in] bias - the bias value, between 0.0 and 1.0
Returns:
true if the function was successful, false if not
virtual const MCHAR* GetTwistPoseName ( int  keytrack,
int  index 
) [pure virtual]

Returns the name of an arm or leg twist pose.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to get an arm pose, and KEY_LLEG or KEY_RLEG to get a leg pose
[in] index - the index of the pose in the pose list
Returns:
the name of the specified pose
virtual float GetTwistPoseTwist ( int  keytrack,
int  index 
) [pure virtual]

Returns the twist value of an arm or leg twist pose.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to get an arm pose, and KEY_LLEG or KEY_RLEG to get a leg pose
[in] index - the index of the pose in the pose list
Returns:
the twist value of the specified twist pose
virtual float GetTwistPoseBias ( int  keytrack,
int  index 
) [pure virtual]

Returns the bias value of an arm or leg twist pose.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to get an arm pose, and KEY_LLEG or KEY_RLEG to get a leg pose
[in] index - the index of the pose in the pose list
Returns:
the bias value of the specified pose
virtual void SetLimbToTwistPose ( int  keytrack,
int  index,
bool  opposite 
) [pure virtual]

Updates the limb to match an arm or leg twist pose.

Parameters:
[in] keytrack - KEY_LARM or KEY_RARM to get an arm pose, and KEY_LLEG or KEY_RLEG to get a leg pose
[in] index - the index of the pose in the pose list
[in] opposite - the twisties of the opposite limb will also be updated if this is true
virtual int LoadFigNoTwists ( const MCHAR *  fname,
BOOL  redraw = false,
BOOL  msgs = false 
) [pure virtual]

Loads a figure file without loading the twist poses stored in the file.

Parameters:
[in] fname - name of figure file
[in] redraw - redraw viewports if true
[in] msgs - pop up error dialogs if an error occurs
Returns:
true if the function was successful, false if not
virtual int LoadFigJustTwists ( const MCHAR *  fname,
BOOL  redraw = false,
BOOL  msgs = false 
) [pure virtual]

Loads only the twist poses from a figure file.

Parameters:
[in] fname - name of figure file
[in] redraw - redraw viewports if true
[in] msgs - pop up error dialogs if an error occurs
Returns:
true if the function was successful, false if not
virtual void ZeroTwist ( int  keytrack ) [pure virtual]

Zeros out the twist for the specified track of this biped.

Parameters:
[in] keytrack - one of the following track identifiers: KEY_SPINE,KEY_NECK,KEY_TAIL,KEY_PONY1,KEY_PONY2
virtual void ZeroAll ( int  keytrack ) [pure virtual]

Zeros out all the angles for all the links of the specified track of this biped.

Parameters:
[in] keytrack - one of the following track identifiers: KEY_SPINE,KEY_NECK,KEY_TAIL,KEY_PONY1,KEY_PONY2
virtual void SmoothTwist ( int  keytrack,
float  bias 
) [pure virtual]

Smooths the twist between the first and last link of the specified track of this biped.

Parameters:
[in] keytrack - one of the following track identifiers: KEY_SPINE,KEY_NECK,KEY_TAIL,KEY_PONY1,KEY_PONY2
[in] bias - the bias, between 0.0 and 1.0
virtual int NumCopyCollections ( ) const [pure virtual]

Queries the number of copy collections.

Returns:
the number of copy collections.
virtual ICopyCollection* GetCopyCollection ( int  index ) const [pure virtual]

Gets a copy collection.

Parameters:
[in] index - index of desired copy collection
Returns:
the specified copy collection, NULL if the index was out of bounds
virtual ICopyCollection* GetCopyCollection ( const MCHAR *  name,
int *  index 
) const [pure virtual]

Gets a copy collection.

Parameters:
[in] name - name of desired copy collection
[out] index - index of desired copy collection
Returns:
the specified copy collection, NULL if the index was out of bounds
virtual ICopyCollection* CreateCopyCollection ( const MCHAR *  colname ) [pure virtual]

Creates a copy collection.

Parameters:
[in] colname - name of new copy collection
Returns:
the newly created copy collection
virtual bool DeleteCopyCollection ( int  index ) [pure virtual]

Deletes a copy collection.

Parameters:
[in] index - index of copy collection to delete
Returns:
true if the collection was deleted, false if the index was out of bounds
virtual void DeleteAllCopyCollections ( ) [pure virtual]

Deletes all copy collections.

virtual IBipedCopy* CopyBipPosture ( ICopyCollection ICC,
INodeTab nodes,
int  snapshottype 
) [pure virtual]

Copies the posture of the specified parts of this biped.

Parameters:
[in] ICC - copy collection in which to place the new copy
[in] nodes - parts of the biped whose posture will be copied. If this is NULL, the posture of the selected parts of the biped will be copied.
[in] snapshottype - type of snapshot to store, one of the following: SNAP_VIEW (active viewport), SNAP_AUTO (automatic), SNAP_NONE (none)
Returns:
the new copy, NULL if a copy was not created
virtual IBipedCopy* CopyBipPose ( ICopyCollection ICC,
int  snapshottype 
) [pure virtual]

Copies the biped's pose.

Parameters:
[in] ICC - copy collection in which to place the new copy
[in] snapshottype - type of snapshot to store, one of the following: SNAP_VIEW (active viewport), SNAP_AUTO (automatic), SNAP_NONE (none)
Returns:
the new copy, NULL if a copy was not created
virtual IBipedCopy* CopyBipTrack ( ICopyCollection ICC,
INodeTab nodes,
int  snapshottype 
) [pure virtual]

Copies the animation of the specified parts of this biped.

Parameters:
[in] ICC - copy collection in which to place the new copy
[in] nodes - parts of the biped whose animation will be copied. If this is NULL, the animation of the selected parts of the biped will be copied.
[in] snapshottype - type of snapshot to store, one of the following: SNAP_VIEW (active viewport), SNAP_AUTO (automatic), SNAP_NONE (none)
Returns:
the new copy, NULL if a copy was not created
virtual bool PasteBipPosture ( IBipedCopy CP,
bool  opposite,
int  KeyPasteType,
bool  Hor,
bool  Ver,
bool  Trn,
bool  ByVel 
) [pure virtual]

Pastes a posture onto this biped.

Parameters:
[in] CP - a biped copy of type posture
[in] opposite - true to paste opposite, false to paste normal
[in] KeyPasteType - method to paste TCB/IK values, one of the following: PST_DEF (default), PST_COPY (copied), PST_INTERP (interpolated). KeyPasteType is only relevant if you are in auto key mode
[in] Hor - true to paste the horizontal com, false to keep the existing horizontal com
[in] Ver - true to paste the vertical com, false to keep the existing vertical com
[in] Trn - true to paste the rotation com, false to keep the existing rotation com. Hor, Ver, Trn are only relevant if you are pasting a posture with a copied com
[in] ByVel - true to paste the com by velocity, false to paste the com absolute, relevant for true values of Hor, Ver, Trn
Returns:
true if the paste was successful, false if the paste was unsuccessful
virtual bool PasteBipPose ( IBipedCopy CP,
bool  opposite,
int  KeyPasteType,
bool  Hor,
bool  Ver,
bool  Trn,
bool  ByVel 
) [pure virtual]

Pastes a pose onto this biped.

Parameters:
[in] CP - a biped copy of type pose
[in] opposite - true to paste opposite, false to paste normal
[in] KeyPasteType - method to paste TCB/IK values, one of the following: PST_DEF (default), PST_COPY (copied), PST_INTERP (interpolated). KeyPasteType is only relevant if you are in auto key mode.
[in] Hor - true to paste the horizontal com, false to keep the existing horizontal com
[in] Ver - true to paste the vertical com, false to keep the existing vertical com
[in] Trn - true to paste the rotation com, false to keep the existing rotation com
[in] ByVel - true to paste the com by velocity, false to paste the com absolute, relevant for true values of Hor, Ver, Trn
Returns:
true if the paste was successful, false if the paste was unsuccessful
virtual bool PasteBipTrack ( IBipedCopy CP,
bool  opposite,
bool  Hor,
bool  Ver,
bool  Trn 
) [pure virtual]

Pastes a track onto this biped.

Parameters:
[in] CP - a biped copy of type track
[in] opposite - true to paste opposite, false to paste normal
[in] Hor - true to paste the horizontal com, false to keep the existing horizontal com
[in] Ver - true to paste the vertical com, false to keep the existing vertical com
[in] Trn - true to paste the rotation com, false to keep the existing rotation com
Returns:
true if the paste was successful, false if the paste was unsuccessful
virtual IMixer8* GetMixer8 ( ) [pure virtual]

Get the new mixer interface for max 8 that supports max objects.

Returns:
The IMixer8 interface
See also:
IMixer8

IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8
IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8 IBipMaster8