Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

MayaToEggConverter Class Reference

This class supervises the construction of an EggData structure from a single Maya file, or from the data already in the global Maya model space. More...

#include <mayaToEggConverter.h>

Inheritance diagram for MayaToEggConverter:

SomethingToEggConverter List of all members.

Public Types

enum  TransformType {
  TT_invalid, TT_all, TT_model, TT_dcs,
  TT_none
}

Public Member Functions

 MayaToEggConverter (const string &program_name="")
 MayaToEggConverter (const MayaToEggConverter &copy)
virtual ~MayaToEggConverter ()
virtual SomethingToEggConvertermake_copy ()
 Allocates and returns a new copy of the converter.

virtual string get_name () const
 Returns the English name of the file type this converter supports.

virtual string get_extension () const
 Returns the common extension of the file type this converter supports.

virtual bool convert_file (const Filename &filename)
 Handles the reading of the input file and converting it to egg.

bool convert_maya (bool from_selection)
 Fills up the egg_data structure according to the global maya model data.

bool open_api ()
 Attempts to open the Maya API if it was not already open, and returns true if successful, or false if there is an error.

void close_api ()
 Closes the Maya API, if it was previously opened.

 PT (MayaApi) _maya
void set_path_replace (PathReplace *path_replace)
 Replaces the PathReplace object (which specifies how to mangle paths from the source to the destination egg file) with a new one.

PathReplaceget_path_replace ()
 Returns a pointer to the PathReplace object associated with this converter.

const PathReplaceget_path_replace () const
 Returns a pointer to the PathReplace object associated with this converter.

void set_animation_convert (AnimationConvert animation_convert)
 Specifies how source animation will be converted into egg structures.

AnimationConvert get_animation_convert () const
 Returns how source animation will be converted into egg structures.

void set_character_name (const string &character_name)
 Specifies the name of the character generated.

const string & get_character_name () const
 Returns the name of the character generated.

void set_start_frame (double start_frame)
 Specifies the starting frame of the animation to convert, in the units specified by set_input_frame_rate().

bool has_start_frame () const
 Returns true if the starting frame has been explicitly specified via set_start_frame(), or false if the starting frame should be implicit based on the source.

double get_start_frame () const
 Returns the value set by a previous call to set_start_frame().

void clear_start_frame ()
 Removes the value previously set by set_start_frame().

void set_end_frame (double end_frame)
 Specifies the ending frame of the animation to convert, in the units specified by set_input_frame_rate().

bool has_end_frame () const
 Returns true if the ending frame has been explicitly specified via set_end_frame(), or false if the ending frame should be implicit based on the source.

double get_end_frame () const
 Returns the value set by a previous call to set_end_frame().

void clear_end_frame ()
 Removes the value previously set by set_end_frame().

void set_frame_inc (double frame_inc)
 Specifies the increment between frames to extract.

bool has_frame_inc () const
 Returns true if the frame increment has been explicitly specified via set_frame_inc(), or false if the ending frame should be implicit based on the source.

double get_frame_inc () const
 Returns the value set by a previous call to set_frame_inc().

void clear_frame_inc ()
 Removes the value previously set by set_frame_inc().

void set_neutral_frame (double neutral_frame)
 Specifies the frame of animation to represent the neutral pose of the model.

bool has_neutral_frame () const
 Returns true if the neutral frame has been explicitly specified via set_neutral_frame(), or false otherwise.

double get_neutral_frame () const
 Returns the value set by a previous call to set_neutral_frame().

void clear_neutral_frame ()
 Removes the value previously set by set_neutral_frame().

void set_input_frame_rate (double input_frame_rate)
 Specifies the number of frames per second that is represented by the "frame" unit in the animation package.

bool has_input_frame_rate () const
 Returns true if the frame rate has been explicitly specified via set_input_frame_rate(), or false otherwise.

double get_input_frame_rate () const
 Returns the value set by a previous call to set_input_frame_rate().

void clear_input_frame_rate ()
 Removes the value previously set by set_input_frame_rate().

void set_output_frame_rate (double output_frame_rate)
 Specifies the number of frames per second that the resulting animation should be played at.

bool has_output_frame_rate () const
 Returns true if the frame rate has been explicitly specified via set_output_frame_rate(), or false otherwise.

double get_output_frame_rate () const
 Returns the value set by a previous call to set_output_frame_rate().

void clear_output_frame_rate ()
 Removes the value previously set by set_output_frame_rate().

void set_merge_externals (bool merge_externals)
 Sets the merge_externals flag.

bool get_merge_externals () const
 Returns the current state of the merge_externals flag.

void set_egg_data (EggData *egg_data, bool owns_egg_data)
 Sets the egg data that will be filled in when convert_file() is called.

void clear_egg_data ()
 Sets the EggData to NULL and makes the converter invalid.

EggDataget_egg_data ()
 Returns the EggData structure.

bool handle_external_reference (EggGroupNode *egg_parent, const Filename &ref_filename)
 Handles an external reference in the source file.

Filename convert_texture_path (const Filename &orig_filename)
 Converts the indicated texture filename to a relative or absolute or whatever filename, according to _path_replace.

Filename convert_model_path (const Filename &orig_filename)
 Converts the indicated model filename to a relative or absolute or whatever filename, according to _path_replace.


Static Public Member Functions

TransformType string_transform_type (const string &arg)
 Returns the TransformType value corresponding to the indicated string, or TT_invalid.

double get_default_frame_rate ()
 Returns the default frame rate if nothing is specified for input_frame_rate or output_frame_rate, and the animation package does not have an implicit frame rate.


Public Attributes

MayaShaders _shaders
EggTextureCollection _textures
bool _polygon_output
double _polygon_tolerance
TransformType _transform_type
bool _allow_errors

Protected Types

enum  ControlFlags {
  CF_start_frame = 0x0001, CF_end_frame = 0x0002, CF_frame_inc = 0x0004, CF_neutral_frame = 0x0008,
  CF_input_frame_rate = 0x0010, CF_output_frame_rate = 0x0020
}

Protected Attributes

PointerTo< PathReplace_path_replace
AnimationConvert _animation_convert
string _character_name
double _start_frame
double _end_frame
double _frame_inc
double _neutral_frame
double _input_frame_rate
double _output_frame_rate
int _control_flags
bool _merge_externals
EggData_egg_data
bool _owns_egg_data
bool _error

Private Types

typedef pmap< string, EggGroup * > Groups
typedef pmap< string, JointAnim * > Tables

Private Member Functions

bool convert_flip (double start_frame, double end_frame, double frame_inc, double output_frame_rate)
 Converts the animation as a series of models that cycle (flip) from one to the next at the appropriate frame rate.

bool convert_char_model ()
 Converts the file as an animatable character model, with joints and vertex membership.

bool convert_char_chan (double start_frame, double end_frame, double frame_inc, double output_frame_rate)
 Converts the animation as a series of tables to apply to the character model, as retrieved earlier via AC_model.

bool convert_hierarchy (EggGroupNode *egg_root)
 Walks the entire Maya hierarchy, converting it to a corresponding egg hierarchy under the indicated root node.

bool process_model_node (const MDagPath &dag_path, EggGroupNode *egg_root)
 Converts the indicated Maya node (given a MDagPath, similar in concept to Panda's NodePath) to the corresponding Egg structure.

bool process_chan_node (const MDagPath &dag_path, EggGroupNode *egg_root)
 Similar to process_model_node(), but this code path is followed only when we are building a table of animation data (AC_chan).

void get_transform (const MDagPath &dag_path, EggGroup *egg_group)
 Extracts the transform on the indicated Maya node, and applies it to the corresponding Egg node.

void make_nurbs_surface (const MDagPath &dag_path, MFnNurbsSurface &surface, EggGroup *group, EggGroupNode *egg_root)
 Converts the indicated Maya NURBS surface to a corresponding egg structure, and attaches it to the indicated egg group.

EggNurbsCurvemake_trim_curve (const MFnNurbsCurve &curve, const string &nurbs_name, EggGroupNode *egg_group, int trim_curve_index)
 Converts the indicated Maya NURBS trim curve to a corresponding egg structure, and returns it, or NULL if there is a problem.

void make_nurbs_curve (const MDagPath &dag_path, const MFnNurbsCurve &curve, EggGroup *group, EggGroupNode *egg_root)
 Converts the indicated Maya NURBS curve (a standalone curve, not a trim curve) to a corresponding egg structure and attaches it to the indicated egg group.

void make_polyset (const MDagPath &dag_path, const MFnMesh &mesh, EggGroup *egg_group, EggGroupNode *egg_root, MayaShader *default_shader=NULL)
 Converts the indicated Maya polyset to a bunch of EggPolygons and parents them to the indicated egg group.

void make_locator (const MDagPath &dag_path, const MFnDagNode &dag_node, EggGroup *egg_group, EggGroupNode *egg_root)
 Locators are used in Maya to indicate a particular position in space to the user or the modeler.

bool get_vertex_weights (const MDagPath &dag_path, const MFnMesh &mesh, EggGroupNode *egg_root, pvector< EggGroup * > &joints, MFloatArray &weights)
EggGroupget_egg_group (const MDagPath &dag_path, EggGroupNode *egg_root)
 Returns the EggGroup corresponding to the indicated fully-qualified Maya path name.

EggGroupr_get_egg_group (const string &name, const MDagPath &dag_path, EggGroupNode *egg_root)
 The recursive implementation of get_egg_group().

JointAnimget_egg_table (const MDagPath &dag_path, EggGroupNode *egg_root)
 Returns the EggTable corresponding to the indicated fully-qualified Maya path name.

JointAnimget_egg_table (const string &name, EggGroupNode *egg_root)
void set_shader_attributes (EggPrimitive &primitive, const MayaShader &shader)
 Applies the known shader attributes to the indicated egg primitive.

void apply_texture_properties (EggTexture &tex, const MayaShaderColorDef &color_def)
 Applies all the appropriate texture properties to the EggTexture object, including wrap modes and texture matrix.

bool compare_texture_properties (EggTexture &tex, const MayaShaderColorDef &color_def)
 Compares the texture properties already on the texture (presumably set by a previous call to apply_texture_properties()) and returns false if they differ from that specified by the indicated color_def object, or true if they match.

bool reparent_decals (EggGroupNode *egg_parent)
 Recursively walks the egg hierarchy, reparenting "decal" type nodes below their corresponding "decalbase" type nodes, and setting the flags.


Private Attributes

Groups _groups
Tables _tables
string _program_name
bool _from_selection

Detailed Description

This class supervises the construction of an EggData structure from a single Maya file, or from the data already in the global Maya model space.

Note that since the Maya API presents just one global model space, it is not possible to simultaneously load two distinct Maya files.

Definition at line 74 of file mayaToEggConverter.h.


Member Typedef Documentation

typedef pmap<string, EggGroup *> MayaToEggConverter::Groups [private]
 

Definition at line 145 of file mayaToEggConverter.h.

typedef pmap<string, JointAnim *> MayaToEggConverter::Tables [private]
 

Definition at line 148 of file mayaToEggConverter.h.


Member Enumeration Documentation

enum SomethingToEggConverter::ControlFlags [protected, inherited]
 

Enumeration values:
CF_start_frame 
CF_end_frame 
CF_frame_inc 
CF_neutral_frame 
CF_input_frame_rate 
CF_output_frame_rate 

Definition at line 140 of file somethingToEggConverter.h.

enum MayaToEggConverter::TransformType
 

Enumeration values:
TT_invalid 
TT_all 
TT_model 
TT_dcs 
TT_none 

Definition at line 162 of file mayaToEggConverter.h.


Constructor & Destructor Documentation

MayaToEggConverter::MayaToEggConverter const string &  program_name = ""  ) 
 

Definition at line 89 of file mayaToEggConverter.cxx.

MayaToEggConverter::MayaToEggConverter const MayaToEggConverter &  copy  ) 
 

Definition at line 107 of file mayaToEggConverter.cxx.

References close_api().

MayaToEggConverter::~MayaToEggConverter  )  [virtual]
 

Definition at line 121 of file mayaToEggConverter.cxx.


Member Function Documentation

void MayaToEggConverter::apply_texture_properties EggTexture tex,
const MayaShaderColorDef color_def
[private]
 

Applies all the appropriate texture properties to the EggTexture object, including wrap modes and texture matrix.

Definition at line 2107 of file mayaToEggConverter.cxx.

References cmp_nocase(), TT_all, TT_dcs, TT_invalid, TT_model, and TT_none.

void SomethingToEggConverter::clear_egg_data  )  [inline, inherited]
 

Sets the EggData to NULL and makes the converter invalid.

Definition at line 654 of file somethingToEggConverter.I.

void SomethingToEggConverter::clear_end_frame  )  [inline, inherited]
 

Removes the value previously set by set_end_frame().

Definition at line 291 of file somethingToEggConverter.I.

References SomethingToEggConverter::_neutral_frame, SomethingToEggConverter::has_neutral_frame(), INLINE, and nassertr.

void SomethingToEggConverter::clear_frame_inc  )  [inline, inherited]
 

Removes the value previously set by set_frame_inc().

Definition at line 370 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::_output_frame_rate, SomethingToEggConverter::CF_output_frame_rate, and INLINE.

void SomethingToEggConverter::clear_input_frame_rate  )  [inline, inherited]
 

Removes the value previously set by set_input_frame_rate().

Definition at line 514 of file somethingToEggConverter.I.

void SomethingToEggConverter::clear_neutral_frame  )  [inline, inherited]
 

Removes the value previously set by set_neutral_frame().

Definition at line 437 of file somethingToEggConverter.I.

References SomethingToEggConverter::_merge_externals, and INLINE.

void SomethingToEggConverter::clear_output_frame_rate  )  [inline, inherited]
 

Removes the value previously set by set_output_frame_rate().

Definition at line 585 of file somethingToEggConverter.I.

void SomethingToEggConverter::clear_start_frame  )  [inline, inherited]
 

Removes the value previously set by set_start_frame().

Definition at line 216 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::_frame_inc, SomethingToEggConverter::CF_frame_inc, and INLINE.

void MayaToEggConverter::close_api  ) 
 

Closes the Maya API, if it was previously opened.

Caution! Maya appears to call exit() when its API is closed.

Definition at line 368 of file mayaToEggConverter.cxx.

References SomethingToEggConverter::_character_name, EggData::add_child(), convert_hierarchy(), EggGroup::DT_default, SomethingToEggConverter::get_egg_data(), SomethingToEggConverter::get_neutral_frame(), SomethingToEggConverter::has_neutral_frame(), and EggGroup::set_dart_type().

Referenced by MayaToEggConverter().

bool MayaToEggConverter::compare_texture_properties EggTexture tex,
const MayaShaderColorDef color_def
[private]
 

Compares the texture properties already on the texture (presumably set by a previous call to apply_texture_properties()) and returns false if they differ from that specified by the indicated color_def object, or true if they match.

Definition at line 2141 of file mayaToEggConverter.cxx.

bool MayaToEggConverter::convert_char_chan double  start_frame,
double  end_frame,
double  frame_inc,
double  output_frame_rate
[private]
 

Converts the animation as a series of tables to apply to the character model, as retrieved earlier via AC_model.

Definition at line 465 of file mayaToEggConverter.cxx.

bool MayaToEggConverter::convert_char_model  )  [private]
 

Converts the file as an animatable character model, with joints and vertex membership.

Definition at line 437 of file mayaToEggConverter.cxx.

bool MayaToEggConverter::convert_file const Filename filename  )  [virtual]
 

Handles the reading of the input file and converting it to egg.

Returns true if successful, false otherwise.

This is designed to be as generic as possible, generally in support of run-time loading. Also see convert_maya().

Implements SomethingToEggConverter.

Definition at line 189 of file mayaToEggConverter.cxx.

References _groups, _shaders, and _tables.

bool MayaToEggConverter::convert_flip double  start_frame,
double  end_frame,
double  frame_inc,
double  output_frame_rate
[private]
 

Converts the animation as a series of models that cycle (flip) from one to the next at the appropriate frame rate.

This is the most likely to convert precisely (since we ask Maya to tell us the vertex position each time) but it is the most wasteful in terms of memory utilization (since a complete of the model is stored for each frame).

Definition at line 395 of file mayaToEggConverter.cxx.

References SomethingToEggConverter::_character_name, _tables, EggTable::add_child(), EggData::add_child(), SomethingToEggConverter::get_egg_data(), process_chan_node(), EggTable::set_table_type(), and EggTable::TT_bundle.

bool MayaToEggConverter::convert_hierarchy EggGroupNode egg_root  )  [private]
 

Walks the entire Maya hierarchy, converting it to a corresponding egg hierarchy under the indicated root node.

Definition at line 565 of file mayaToEggConverter.cxx.

Referenced by close_api(), and open_api().

bool MayaToEggConverter::convert_maya bool  from_selection  ) 
 

Fills up the egg_data structure according to the global maya model data.

Returns true if successful, false if there is an error. If from_selection is true, the converted geometry is based on that which is selected; otherwise, it is the entire Maya scene.

Definition at line 225 of file mayaToEggConverter.cxx.

Filename SomethingToEggConverter::convert_model_path const Filename orig_filename  )  [inline, inherited]
 

Converts the indicated model filename to a relative or absolute or whatever filename, according to _path_replace.

Definition at line 701 of file somethingToEggConverter.I.

Filename SomethingToEggConverter::convert_texture_path const Filename orig_filename  )  [inline, inherited]
 

Converts the indicated texture filename to a relative or absolute or whatever filename, according to _path_replace.

Definition at line 684 of file somethingToEggConverter.I.

AnimationConvert SomethingToEggConverter::get_animation_convert  )  const [inline, inherited]
 

Returns how source animation will be converted into egg structures.

Definition at line 108 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::_start_frame, SomethingToEggConverter::CF_start_frame, and INLINE.

const string & SomethingToEggConverter::get_character_name  )  const [inline, inherited]
 

Returns the name of the character generated.

See set_character_name().

Definition at line 142 of file somethingToEggConverter.I.

References SomethingToEggConverter::_start_frame, SomethingToEggConverter::has_start_frame(), and nassertr.

double SomethingToEggConverter::get_default_frame_rate  )  [inline, static, inherited]
 

Returns the default frame rate if nothing is specified for input_frame_rate or output_frame_rate, and the animation package does not have an implicit frame rate.

Definition at line 605 of file somethingToEggConverter.I.

EggData & SomethingToEggConverter::get_egg_data  )  [inline, inherited]
 

Returns the EggData structure.

Definition at line 667 of file somethingToEggConverter.I.

Referenced by close_api(), convert_flip(), and SomethingToEggConverter::set_egg_data().

EggGroup * MayaToEggConverter::get_egg_group const MDagPath &  dag_path,
EggGroupNode egg_root
[private]
 

Returns the EggGroup corresponding to the indicated fully-qualified Maya path name.

If there is not already an EggGroup corresponding to this Maya path, creates one and returns it.

In this way we generate a unique EggGroup for each Maya node we care about about, and also preserve the Maya hierarchy sensibly.

Definition at line 1797 of file mayaToEggConverter.cxx.

JointAnim* MayaToEggConverter::get_egg_table const string &  name,
EggGroupNode egg_root
[private]
 

MayaToEggConverter::JointAnim * MayaToEggConverter::get_egg_table const MDagPath &  dag_path,
EggGroupNode egg_root
[private]
 

Returns the EggTable corresponding to the indicated fully-qualified Maya path name.

This is similar to get_egg_group(), but this variant is used only when we are building a channel file, which is just a hierarchical collection of animation tables.

Definition at line 1910 of file mayaToEggConverter.cxx.

References SomethingToEggConverter::_path_replace, and tex.

double SomethingToEggConverter::get_end_frame  )  const [inline, inherited]
 

Returns the value set by a previous call to set_end_frame().

It is an error to call this if has_end_frame() returns false.

Definition at line 275 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::_neutral_frame, and SomethingToEggConverter::CF_neutral_frame.

string MayaToEggConverter::get_extension  )  const [virtual]
 

Returns the common extension of the file type this converter supports.

Implements SomethingToEggConverter.

Definition at line 164 of file mayaToEggConverter.cxx.

double SomethingToEggConverter::get_frame_inc  )  const [inline, inherited]
 

Returns the value set by a previous call to set_frame_inc().

It is an error to call this if has_frame_inc() returns false.

Definition at line 354 of file somethingToEggConverter.I.

References SomethingToEggConverter::_input_frame_rate.

double SomethingToEggConverter::get_input_frame_rate  )  const [inline, inherited]
 

Returns the value set by a previous call to set_input_frame_rate().

It is an error to call this if has_input_frame_rate() returns false.

Definition at line 498 of file somethingToEggConverter.I.

References SomethingToEggConverter::_path_replace, and INLINE.

bool SomethingToEggConverter::get_merge_externals  )  const [inline, inherited]
 

Returns the current state of the merge_externals flag.

See set_merge_externals().

Definition at line 639 of file somethingToEggConverter.I.

string MayaToEggConverter::get_name  )  const [virtual]
 

Returns the English name of the file type this converter supports.

Implements SomethingToEggConverter.

Definition at line 149 of file mayaToEggConverter.cxx.

References open_api().

double SomethingToEggConverter::get_neutral_frame  )  const [inline, inherited]
 

Returns the value set by a previous call to set_neutral_frame().

It is an error to call this if has_neutral_frame() returns false.

Definition at line 421 of file somethingToEggConverter.I.

References INLINE.

Referenced by close_api().

double SomethingToEggConverter::get_output_frame_rate  )  const [inline, inherited]
 

Returns the value set by a previous call to set_output_frame_rate().

It is an error to call this if has_output_frame_rate() returns false.

Definition at line 569 of file somethingToEggConverter.I.

const PathReplace * SomethingToEggConverter::get_path_replace  )  const [inline, inherited]
 

Returns a pointer to the PathReplace object associated with this converter.

If the converter is non-const, this returns a non-const pointer, which can be adjusted.

Definition at line 74 of file somethingToEggConverter.I.

References SomethingToEggConverter::_animation_convert, AnimationConvert, and INLINE.

PathReplace * SomethingToEggConverter::get_path_replace  )  [inline, inherited]
 

Returns a pointer to the PathReplace object associated with this converter.

If the converter is non-const, this returns a non-const pointer, which can be adjusted.

Definition at line 55 of file somethingToEggConverter.I.

References SomethingToEggConverter::_path_replace.

Referenced by MayaPview::creator().

double SomethingToEggConverter::get_start_frame  )  const [inline, inherited]
 

Returns the value set by a previous call to set_start_frame().

It is an error to call this if has_start_frame() returns false.

Definition at line 200 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::_end_frame, SomethingToEggConverter::CF_end_frame, and INLINE.

void MayaToEggConverter::get_transform const MDagPath &  dag_path,
EggGroup egg_group
[private]
 

Extracts the transform on the indicated Maya node, and applies it to the corresponding Egg node.

Definition at line 878 of file mayaToEggConverter.cxx.

References _polygon_tolerance, _shaders, egg_root, MayaShaders::find_shader_for_node(), make_polyset(), and params.

bool MayaToEggConverter::get_vertex_weights const MDagPath &  dag_path,
const MFnMesh &  mesh,
EggGroupNode egg_root,
pvector< EggGroup * > &  joints,
MFloatArray &  weights
[private]
 

Definition at line 1686 of file mayaToEggConverter.cxx.

References NULL.

bool SomethingToEggConverter::handle_external_reference EggGroupNode egg_parent,
const Filename ref_filename
[inherited]
 

Handles an external reference in the source file.

If the merge_externals flag is true (see set_merge_externals()), this causes the named file to be read in and converted, and the converted egg geometry is parented to egg_parent. Otherwise, only a reference to a similarly named egg file is parented to egg_parent.

The parameters orig_filename and searchpath are as those passed to convert_model_path().

Returns true on success, false on failure.

Definition at line 141 of file somethingToEggConverter.cxx.

Referenced by FltToEggConverter::convert_bead().

bool SomethingToEggConverter::has_end_frame  )  const [inline, inherited]
 

Returns true if the ending frame has been explicitly specified via set_end_frame(), or false if the ending frame should be implicit based on the source.

Definition at line 258 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::_frame_inc, SomethingToEggConverter::CF_frame_inc, and INLINE.

bool SomethingToEggConverter::has_frame_inc  )  const [inline, inherited]
 

Returns true if the frame increment has been explicitly specified via set_frame_inc(), or false if the ending frame should be implicit based on the source.

Definition at line 337 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::CF_input_frame_rate, and INLINE.

bool SomethingToEggConverter::has_input_frame_rate  )  const [inline, inherited]
 

Returns true if the frame rate has been explicitly specified via set_input_frame_rate(), or false otherwise.

Definition at line 481 of file somethingToEggConverter.I.

References SomethingToEggConverter::_path_replace, get_texture_path(), and INLINE.

bool SomethingToEggConverter::has_neutral_frame  )  const [inline, inherited]
 

Returns true if the neutral frame has been explicitly specified via set_neutral_frame(), or false otherwise.

Definition at line 404 of file somethingToEggConverter.I.

References SomethingToEggConverter::_output_frame_rate, SomethingToEggConverter::has_output_frame_rate(), and nassertr.

Referenced by SomethingToEggConverter::clear_end_frame(), and close_api().

bool SomethingToEggConverter::has_output_frame_rate  )  const [inline, inherited]
 

Returns true if the frame rate has been explicitly specified via set_output_frame_rate(), or false otherwise.

Definition at line 552 of file somethingToEggConverter.I.

Referenced by SomethingToEggConverter::has_neutral_frame().

bool SomethingToEggConverter::has_start_frame  )  const [inline, inherited]
 

Returns true if the starting frame has been explicitly specified via set_start_frame(), or false if the starting frame should be implicit based on the source.

Definition at line 183 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, and SomethingToEggConverter::CF_end_frame.

Referenced by SomethingToEggConverter::get_character_name().

SomethingToEggConverter * MayaToEggConverter::make_copy void   )  [virtual]
 

Allocates and returns a new copy of the converter.

Implements SomethingToEggConverter.

Definition at line 134 of file mayaToEggConverter.cxx.

void MayaToEggConverter::make_locator const MDagPath &  dag_path,
const MFnDagNode &  dag_node,
EggGroup egg_group,
EggGroupNode egg_root
[private]
 

Locators are used in Maya to indicate a particular position in space to the user or the modeler.

We represent that in egg with an ordinary Group node, which we transform by the locator's position, so that the indicated point becomes the origin at this node and below.

Definition at line 1626 of file mayaToEggConverter.cxx.

void MayaToEggConverter::make_nurbs_curve const MDagPath &  dag_path,
const MFnNurbsCurve &  curve,
EggGroup group,
EggGroupNode egg_root
[private]
 

Converts the indicated Maya NURBS curve (a standalone curve, not a trim curve) to a corresponding egg structure and attaches it to the indicated egg group.

Definition at line 1301 of file mayaToEggConverter.cxx.

void MayaToEggConverter::make_nurbs_surface const MDagPath &  dag_path,
MFnNurbsSurface &  surface,
EggGroup group,
EggGroupNode egg_root
[private]
 

Converts the indicated Maya NURBS surface to a corresponding egg structure, and attaches it to the indicated egg group.

Definition at line 979 of file mayaToEggConverter.cxx.

void MayaToEggConverter::make_polyset const MDagPath &  dag_path,
const MFnMesh &  mesh,
EggGroup egg_group,
EggGroupNode egg_root,
MayaShader default_shader = NULL
[private]
 

Converts the indicated Maya polyset to a bunch of EggPolygons and parents them to the indicated egg group.

Definition at line 1395 of file mayaToEggConverter.cxx.

Referenced by get_transform().

EggNurbsCurve * MayaToEggConverter::make_trim_curve const MFnNurbsCurve &  curve,
const string &  nurbs_name,
EggGroupNode egg_group,
int  trim_curve_index
[private]
 

Converts the indicated Maya NURBS trim curve to a corresponding egg structure, and returns it, or NULL if there is a problem.

Definition at line 1212 of file mayaToEggConverter.cxx.

bool MayaToEggConverter::open_api  ) 
 

Attempts to open the Maya API if it was not already open, and returns true if successful, or false if there is an error.

Definition at line 348 of file mayaToEggConverter.cxx.

References _groups, EggGroup::add_child(), convert_hierarchy(), and ostringstream::str().

Referenced by get_name().

bool MayaToEggConverter::process_chan_node const MDagPath &  dag_path,
EggGroupNode egg_root
[private]
 

Similar to process_model_node(), but this code path is followed only when we are building a table of animation data (AC_chan).

It just builds up the EggTable hierarchy according to the joint table.

Definition at line 838 of file mayaToEggConverter.cxx.

References EggGroup::DC_none, EggGroup::get_dcs_type(), EggGroup::get_model_flag(), TT_all, TT_dcs, TT_invalid, TT_model, and TT_none.

Referenced by convert_flip().

bool MayaToEggConverter::process_model_node const MDagPath &  dag_path,
EggGroupNode egg_root
[private]
 

Converts the indicated Maya node (given a MDagPath, similar in concept to Panda's NodePath) to the corresponding Egg structure.

Returns true if successful, false if an error was encountered.

Definition at line 660 of file mayaToEggConverter.cxx.

MayaToEggConverter::PT MayaApi   ) 
 

EggGroup * MayaToEggConverter::r_get_egg_group const string &  name,
const MDagPath &  dag_path,
EggGroupNode egg_root
[private]
 

The recursive implementation of get_egg_group().

Definition at line 1810 of file mayaToEggConverter.cxx.

bool MayaToEggConverter::reparent_decals EggGroupNode egg_parent  )  [private]
 

Recursively walks the egg hierarchy, reparenting "decal" type nodes below their corresponding "decalbase" type nodes, and setting the flags.

Returns true on success, false if some nodes were incorrect.

Definition at line 2189 of file mayaToEggConverter.cxx.

void SomethingToEggConverter::set_animation_convert AnimationConvert  animation_convert  )  [inline, inherited]
 

Specifies how source animation will be converted into egg structures.

The default is AC_none, which means animation tables will be ignored. This is only meaningful for converters that understand animation.

Definition at line 93 of file somethingToEggConverter.I.

void SomethingToEggConverter::set_character_name const string &  character_name  )  [inline, inherited]
 

Specifies the name of the character generated.

This name should match between all the model and channel egg files for a particular character and its associated animations.

Definition at line 127 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::CF_start_frame, and INLINE.

void SomethingToEggConverter::set_egg_data EggData egg_data,
bool  owns_egg_data
[inherited]
 

Sets the egg data that will be filled in when convert_file() is called.

This must be called before convert_file(). If owns_egg_data is true, the egg_data will be deleted when the converter destructs. (We don't use the reference counting on EggData, to allow static EggDatas to be passed in.)

Definition at line 102 of file somethingToEggConverter.cxx.

References SomethingToEggConverter::_allow_errors, SomethingToEggConverter::_error, EggGroupNode::add_child(), SomethingToEggConverter::convert_file(), SomethingToEggConverter::get_egg_data(), SomethingToEggConverter::make_copy(), nout, EggData::set_coordinate_system(), Filename::set_extension(), and EggGroupNode::steal_children().

Referenced by SomethingToEggConverter::set_input_frame_rate().

void SomethingToEggConverter::set_end_frame double  end_frame  )  [inline, inherited]
 

Specifies the ending frame of the animation to convert, in the units specified by set_input_frame_rate().

If this is unspecified, the ending frame is taken from the source, for instance from the last frame of the animation slider.

Definition at line 238 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, and SomethingToEggConverter::CF_frame_inc.

Referenced by SomethingToEgg::apply_units_scale().

void SomethingToEggConverter::set_frame_inc double  frame_inc  )  [inline, inherited]
 

Specifies the increment between frames to extract.

This is the amount to increment the time slider (in units of internal_frame_rate) between extracting each frame. If this is not specified, the default is taken from the animation package, or 1.0 if the animation package does not specified a frame increment.

Definition at line 317 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::_input_frame_rate, SomethingToEggConverter::CF_input_frame_rate, and INLINE.

void SomethingToEggConverter::set_input_frame_rate double  input_frame_rate  )  [inline, inherited]
 

Specifies the number of frames per second that is represented by the "frame" unit in the animation package.

If this is omitted, it is taken from whatever the file header indicates. Some animation packages do not encode a frame rate, in which case the default if this is omitted is the same as the output frame rate.

Definition at line 463 of file somethingToEggConverter.I.

References INLINE, NULL, and SomethingToEggConverter::set_egg_data().

void SomethingToEggConverter::set_merge_externals bool  merge_externals  )  [inline, inherited]
 

Sets the merge_externals flag.

When this is true, external references within the source file are read in and merged directly; otherwise, only a reference to a similarly-named egg file is inserted.

Definition at line 624 of file somethingToEggConverter.I.

void SomethingToEggConverter::set_neutral_frame double  neutral_frame  )  [inline, inherited]
 

Specifies the frame of animation to represent the neutral pose of the model.

Definition at line 386 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::CF_output_frame_rate, and INLINE.

void SomethingToEggConverter::set_output_frame_rate double  output_frame_rate  )  [inline, inherited]
 

Specifies the number of frames per second that the resulting animation should be played at.

If this is omitted, it is taken to be the same as the input frame rate.

Definition at line 534 of file somethingToEggConverter.I.

void SomethingToEggConverter::set_path_replace PathReplace path_replace  )  [inline, inherited]
 

Replaces the PathReplace object (which specifies how to mangle paths from the source to the destination egg file) with a new one.

Definition at line 36 of file somethingToEggConverter.I.

References SomethingToEggConverter::_path_replace, and INLINE.

void MayaToEggConverter::set_shader_attributes EggPrimitive primitive,
const MayaShader shader
[private]
 

Applies the known shader attributes to the indicated egg primitive.

Definition at line 1979 of file mayaToEggConverter.cxx.

References MayaShaderColorDef::_wrap_u, MayaShaderColorDef::_wrap_v, MayaShaderColorDef::compute_texture_matrix(), tex, EggTexture::WM_clamp, EggTexture::WM_repeat, and EggTexture::WrapMode.

void SomethingToEggConverter::set_start_frame double  start_frame  )  [inline, inherited]
 

Specifies the starting frame of the animation to convert, in the units specified by set_input_frame_rate().

If this is unspecified, the starting frame is taken from the source, for instance from the first frame of the animation slider.

Definition at line 163 of file somethingToEggConverter.I.

References SomethingToEggConverter::_control_flags, SomethingToEggConverter::_end_frame, SomethingToEggConverter::CF_end_frame, and INLINE.

MayaToEggConverter::TransformType MayaToEggConverter::string_transform_type const string &  arg  )  [static]
 

Returns the TransformType value corresponding to the indicated string, or TT_invalid.

Definition at line 2274 of file mayaToEggConverter.cxx.


Member Data Documentation

bool SomethingToEggConverter::_allow_errors [inherited]
 

Definition at line 127 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::set_egg_data().

AnimationConvert SomethingToEggConverter::_animation_convert [protected, inherited]
 

Definition at line 132 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::get_path_replace().

string SomethingToEggConverter::_character_name [protected, inherited]
 

Definition at line 133 of file somethingToEggConverter.h.

Referenced by close_api(), and convert_flip().

int SomethingToEggConverter::_control_flags [protected, inherited]
 

Definition at line 148 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::clear_frame_inc(), SomethingToEggConverter::clear_start_frame(), SomethingToEggConverter::get_animation_convert(), SomethingToEggConverter::get_end_frame(), SomethingToEggConverter::get_start_frame(), SomethingToEggConverter::has_end_frame(), SomethingToEggConverter::has_frame_inc(), SomethingToEggConverter::has_start_frame(), SomethingToEggConverter::set_character_name(), SomethingToEggConverter::set_end_frame(), SomethingToEggConverter::set_frame_inc(), SomethingToEggConverter::set_neutral_frame(), and SomethingToEggConverter::set_start_frame().

EggData* SomethingToEggConverter::_egg_data [protected, inherited]
 

Definition at line 152 of file somethingToEggConverter.h.

Referenced by XFileToEggConverter::close(), LwoToEggConverter::convert_file(), FltToEggConverter::convert_file(), and SomethingToEggConverter::~SomethingToEggConverter().

double SomethingToEggConverter::_end_frame [protected, inherited]
 

Definition at line 135 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::get_start_frame(), and SomethingToEggConverter::set_start_frame().

bool SomethingToEggConverter::_error [protected, inherited]
 

Definition at line 155 of file somethingToEggConverter.h.

Referenced by LwoToEggConverter::convert_file(), SomethingToEggConverter::set_egg_data(), and SomethingToEggConverter::SomethingToEggConverter().

double SomethingToEggConverter::_frame_inc [protected, inherited]
 

Definition at line 136 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::clear_start_frame(), and SomethingToEggConverter::has_end_frame().

bool MayaToEggConverter::_from_selection [private]
 

Definition at line 152 of file mayaToEggConverter.h.

Groups MayaToEggConverter::_groups [private]
 

Definition at line 146 of file mayaToEggConverter.h.

Referenced by convert_file(), and open_api().

double SomethingToEggConverter::_input_frame_rate [protected, inherited]
 

Definition at line 138 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::get_frame_inc(), and SomethingToEggConverter::set_frame_inc().

bool SomethingToEggConverter::_merge_externals [protected, inherited]
 

Definition at line 150 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::clear_neutral_frame().

double SomethingToEggConverter::_neutral_frame [protected, inherited]
 

Definition at line 137 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::clear_end_frame(), and SomethingToEggConverter::get_end_frame().

double SomethingToEggConverter::_output_frame_rate [protected, inherited]
 

Definition at line 139 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::clear_frame_inc(), and SomethingToEggConverter::has_neutral_frame().

bool SomethingToEggConverter::_owns_egg_data [protected, inherited]
 

Definition at line 153 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::~SomethingToEggConverter().

PointerTo< PathReplace > SomethingToEggConverter::_path_replace [protected, inherited]
 

Definition at line 130 of file somethingToEggConverter.h.

Referenced by get_egg_table(), SomethingToEggConverter::get_input_frame_rate(), FltToEggConverter::get_name(), SomethingToEggConverter::get_path_replace(), SomethingToEggConverter::has_input_frame_rate(), and SomethingToEggConverter::set_path_replace().

bool MayaToEggConverter::_polygon_output
 

Definition at line 159 of file mayaToEggConverter.h.

Referenced by MayaPview::creator().

double MayaToEggConverter::_polygon_tolerance
 

Definition at line 160 of file mayaToEggConverter.h.

Referenced by get_transform().

string MayaToEggConverter::_program_name [private]
 

Definition at line 151 of file mayaToEggConverter.h.

MayaShaders MayaToEggConverter::_shaders
 

Definition at line 155 of file mayaToEggConverter.h.

Referenced by convert_file(), and get_transform().

double SomethingToEggConverter::_start_frame [protected, inherited]
 

Definition at line 134 of file somethingToEggConverter.h.

Referenced by SomethingToEggConverter::get_animation_convert(), and SomethingToEggConverter::get_character_name().

Tables MayaToEggConverter::_tables [private]
 

Definition at line 149 of file mayaToEggConverter.h.

Referenced by convert_file(), and convert_flip().

EggTextureCollection MayaToEggConverter::_textures
 

Definition at line 156 of file mayaToEggConverter.h.

TransformType MayaToEggConverter::_transform_type
 

Definition at line 169 of file mayaToEggConverter.h.


The documentation for this class was generated from the following files:
Generated on Fri May 2 03:27:42 2003 for Panda-Tool by doxygen1.3