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

SomethingToEggConverter Class Reference

This is a base class for a family of converter classes that manage a conversion from some file type to egg format. More...

#include <somethingToEggConverter.h>

Inheritance diagram for SomethingToEggConverter:

FltToEggConverter LwoToEggConverter MayaToEggConverter XFileToEggConverter List of all members.

Public Member Functions

 SomethingToEggConverter ()
 SomethingToEggConverter (const SomethingToEggConverter &copy)
virtual ~SomethingToEggConverter ()
virtual SomethingToEggConverter * make_copy ()=0
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.

virtual string get_name () const=0
virtual string get_extension () const=0
virtual bool convert_file (const Filename &filename)=0
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

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

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

Detailed Description

This is a base class for a family of converter classes that manage a conversion from some file type to egg format.

Classes of this type can be used to implement xxx2egg converter programs, as well as LoaderFileTypeXXX run-time loaders.

Definition at line 55 of file somethingToEggConverter.h.


Member Enumeration Documentation

enum SomethingToEggConverter::ControlFlags [protected]
 

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.


Constructor & Destructor Documentation

SomethingToEggConverter::SomethingToEggConverter  ) 
 

Definition at line 35 of file somethingToEggConverter.cxx.

References NULL.

SomethingToEggConverter::SomethingToEggConverter const SomethingToEggConverter &  copy  ) 
 

Definition at line 61 of file somethingToEggConverter.cxx.

References _error.

SomethingToEggConverter::~SomethingToEggConverter  )  [virtual]
 

Definition at line 79 of file somethingToEggConverter.cxx.

References _egg_data, and _owns_egg_data.


Member Function Documentation

void SomethingToEggConverter::clear_egg_data  )  [inline]
 

Sets the EggData to NULL and makes the converter invalid.

Definition at line 654 of file somethingToEggConverter.I.

void SomethingToEggConverter::clear_end_frame  )  [inline]
 

Removes the value previously set by set_end_frame().

Definition at line 291 of file somethingToEggConverter.I.

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

void SomethingToEggConverter::clear_frame_inc  )  [inline]
 

Removes the value previously set by set_frame_inc().

Definition at line 370 of file somethingToEggConverter.I.

References _control_flags, _output_frame_rate, CF_output_frame_rate, and INLINE.

void SomethingToEggConverter::clear_input_frame_rate  )  [inline]
 

Removes the value previously set by set_input_frame_rate().

Definition at line 514 of file somethingToEggConverter.I.

void SomethingToEggConverter::clear_neutral_frame  )  [inline]
 

Removes the value previously set by set_neutral_frame().

Definition at line 437 of file somethingToEggConverter.I.

References _merge_externals, and INLINE.

void SomethingToEggConverter::clear_output_frame_rate  )  [inline]
 

Removes the value previously set by set_output_frame_rate().

Definition at line 585 of file somethingToEggConverter.I.

void SomethingToEggConverter::clear_start_frame  )  [inline]
 

Removes the value previously set by set_start_frame().

Definition at line 216 of file somethingToEggConverter.I.

References _control_flags, _frame_inc, CF_frame_inc, and INLINE.

virtual bool SomethingToEggConverter::convert_file const Filename filename  )  [pure virtual]
 

Implemented in FltToEggConverter, LwoToEggConverter, MayaToEggConverter, and XFileToEggConverter.

Referenced by set_egg_data().

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

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]
 

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]
 

Returns how source animation will be converted into egg structures.

Definition at line 108 of file somethingToEggConverter.I.

References _control_flags, _start_frame, CF_start_frame, and INLINE.

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

Returns the name of the character generated.

See set_character_name().

Definition at line 142 of file somethingToEggConverter.I.

References _start_frame, has_start_frame(), and nassertr.

double SomethingToEggConverter::get_default_frame_rate  )  [inline, static]
 

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]
 

Returns the EggData structure.

Definition at line 667 of file somethingToEggConverter.I.

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

double SomethingToEggConverter::get_end_frame  )  const [inline]
 

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 _control_flags, _neutral_frame, and CF_neutral_frame.

virtual string SomethingToEggConverter::get_extension  )  const [pure virtual]
 

Implemented in FltToEggConverter, LwoToEggConverter, MayaToEggConverter, and XFileToEggConverter.

Referenced by LoaderFileTypePandatool::get_name().

double SomethingToEggConverter::get_frame_inc  )  const [inline]
 

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 _input_frame_rate.

double SomethingToEggConverter::get_input_frame_rate  )  const [inline]
 

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 _path_replace, and INLINE.

bool SomethingToEggConverter::get_merge_externals  )  const [inline]
 

Returns the current state of the merge_externals flag.

See set_merge_externals().

Definition at line 639 of file somethingToEggConverter.I.

virtual string SomethingToEggConverter::get_name  )  const [pure virtual]
 

Implemented in FltToEggConverter, LwoToEggConverter, MayaToEggConverter, and XFileToEggConverter.

Referenced by LoaderFileTypePandatool::~LoaderFileTypePandatool().

double SomethingToEggConverter::get_neutral_frame  )  const [inline]
 

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 MayaToEggConverter::close_api().

double SomethingToEggConverter::get_output_frame_rate  )  const [inline]
 

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]
 

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 _animation_convert, AnimationConvert, and INLINE.

PathReplace * SomethingToEggConverter::get_path_replace  )  [inline]
 

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 _path_replace.

Referenced by MayaPview::creator().

double SomethingToEggConverter::get_start_frame  )  const [inline]
 

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 _control_flags, _end_frame, CF_end_frame, and INLINE.

bool SomethingToEggConverter::handle_external_reference EggGroupNode egg_parent,
const Filename ref_filename
 

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]
 

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 _control_flags, _frame_inc, CF_frame_inc, and INLINE.

bool SomethingToEggConverter::has_frame_inc  )  const [inline]
 

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 _control_flags, CF_input_frame_rate, and INLINE.

bool SomethingToEggConverter::has_input_frame_rate  )  const [inline]
 

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 _path_replace, get_texture_path(), and INLINE.

bool SomethingToEggConverter::has_neutral_frame  )  const [inline]
 

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 _output_frame_rate, has_output_frame_rate(), and nassertr.

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

bool SomethingToEggConverter::has_output_frame_rate  )  const [inline]
 

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 has_neutral_frame().

bool SomethingToEggConverter::has_start_frame  )  const [inline]
 

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 _control_flags, and CF_end_frame.

Referenced by get_character_name().

virtual SomethingToEggConverter* SomethingToEggConverter::make_copy  )  [pure virtual]
 

Implemented in FltToEggConverter, LwoToEggConverter, MayaToEggConverter, and XFileToEggConverter.

Referenced by set_egg_data().

void SomethingToEggConverter::set_animation_convert AnimationConvert  animation_convert  )  [inline]
 

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]
 

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 _control_flags, CF_start_frame, and INLINE.

void SomethingToEggConverter::set_egg_data EggData egg_data,
bool  owns_egg_data
 

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 _allow_errors, _error, EggGroupNode::add_child(), convert_file(), get_egg_data(), make_copy(), nout, EggData::set_coordinate_system(), Filename::set_extension(), and EggGroupNode::steal_children().

Referenced by set_input_frame_rate().

void SomethingToEggConverter::set_end_frame double  end_frame  )  [inline]
 

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 _control_flags, and CF_frame_inc.

Referenced by SomethingToEgg::apply_units_scale().

void SomethingToEggConverter::set_frame_inc double  frame_inc  )  [inline]
 

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 _control_flags, _input_frame_rate, CF_input_frame_rate, and INLINE.

void SomethingToEggConverter::set_input_frame_rate double  input_frame_rate  )  [inline]
 

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 set_egg_data().

void SomethingToEggConverter::set_merge_externals bool  merge_externals  )  [inline]
 

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]
 

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

Definition at line 386 of file somethingToEggConverter.I.

References _control_flags, CF_output_frame_rate, and INLINE.

void SomethingToEggConverter::set_output_frame_rate double  output_frame_rate  )  [inline]
 

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]
 

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 _path_replace, and INLINE.

void SomethingToEggConverter::set_start_frame double  start_frame  )  [inline]
 

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 _control_flags, _end_frame, CF_end_frame, and INLINE.


Member Data Documentation

bool SomethingToEggConverter::_allow_errors
 

Definition at line 127 of file somethingToEggConverter.h.

Referenced by set_egg_data().

AnimationConvert SomethingToEggConverter::_animation_convert [protected]
 

Definition at line 132 of file somethingToEggConverter.h.

Referenced by get_path_replace().

string SomethingToEggConverter::_character_name [protected]
 

Definition at line 133 of file somethingToEggConverter.h.

Referenced by MayaToEggConverter::close_api(), and MayaToEggConverter::convert_flip().

int SomethingToEggConverter::_control_flags [protected]
 

Definition at line 148 of file somethingToEggConverter.h.

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

EggData* SomethingToEggConverter::_egg_data [protected]
 

Definition at line 152 of file somethingToEggConverter.h.

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

double SomethingToEggConverter::_end_frame [protected]
 

Definition at line 135 of file somethingToEggConverter.h.

Referenced by get_start_frame(), and set_start_frame().

bool SomethingToEggConverter::_error [protected]
 

Definition at line 155 of file somethingToEggConverter.h.

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

double SomethingToEggConverter::_frame_inc [protected]
 

Definition at line 136 of file somethingToEggConverter.h.

Referenced by clear_start_frame(), and has_end_frame().

double SomethingToEggConverter::_input_frame_rate [protected]
 

Definition at line 138 of file somethingToEggConverter.h.

Referenced by get_frame_inc(), and set_frame_inc().

bool SomethingToEggConverter::_merge_externals [protected]
 

Definition at line 150 of file somethingToEggConverter.h.

Referenced by clear_neutral_frame().

double SomethingToEggConverter::_neutral_frame [protected]
 

Definition at line 137 of file somethingToEggConverter.h.

Referenced by clear_end_frame(), and get_end_frame().

double SomethingToEggConverter::_output_frame_rate [protected]
 

Definition at line 139 of file somethingToEggConverter.h.

Referenced by clear_frame_inc(), and has_neutral_frame().

bool SomethingToEggConverter::_owns_egg_data [protected]
 

Definition at line 153 of file somethingToEggConverter.h.

Referenced by ~SomethingToEggConverter().

PointerTo< PathReplace > SomethingToEggConverter::_path_replace [protected]
 

Definition at line 130 of file somethingToEggConverter.h.

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

double SomethingToEggConverter::_start_frame [protected]
 

Definition at line 134 of file somethingToEggConverter.h.

Referenced by get_animation_convert(), and get_character_name().


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