Panda3D
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
SomethingToEggConverter Class Referenceabstract

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:
DAEToEggConverter DXFToEggConverter FltToEggConverter LwoToEggConverter MayaToEggConverter ObjToEggConverter SoftToEggConverter VRMLToEggConverter XFileToEggConverter

Public Member Functions

 SomethingToEggConverter (const SomethingToEggConverter &copy)
 
void clear_egg_data ()
 Sets the EggData to NULL and makes the converter invalid. More...
 
void clear_end_frame ()
 Removes the value previously set by set_end_frame(). More...
 
void clear_error ()
 Resets the error flag to the no-error state. More...
 
void clear_frame_inc ()
 Removes the value previously set by set_frame_inc(). More...
 
void clear_input_frame_rate ()
 Removes the value previously set by set_input_frame_rate(). More...
 
void clear_neutral_frame ()
 Removes the value previously set by set_neutral_frame(). More...
 
void clear_output_frame_rate ()
 Removes the value previously set by set_output_frame_rate(). More...
 
void clear_start_frame ()
 Removes the value previously set by set_start_frame(). More...
 
virtual bool convert_file (const Filename &filename)=0
 
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. More...
 
virtual string get_additional_extensions () const
 Returns a space-separated list of extension, in addition to the one returned by get_extension(), that are recognized by this converter. More...
 
AnimationConvert get_animation_convert () const
 Returns how source animation will be converted into egg structures. More...
 
const string & get_character_name () const
 Returns the name of the character generated. More...
 
EggDataget_egg_data ()
 Returns the EggData structure. More...
 
double get_end_frame () const
 Returns the value set by a previous call to set_end_frame(). More...
 
virtual string get_extension () const =0
 
double get_frame_inc () const
 Returns the value set by a previous call to set_frame_inc(). More...
 
double get_input_frame_rate () const
 Returns the value set by a previous call to set_input_frame_rate(). More...
 
virtual DistanceUnit get_input_units ()
 This may be called after convert_file() has been called and returned true, indicating a successful conversion. More...
 
bool get_merge_externals () const
 Returns the current state of the merge_externals flag. More...
 
virtual string get_name () const =0
 
double get_neutral_frame () const
 Returns the value set by a previous call to set_neutral_frame(). More...
 
double get_output_frame_rate () const
 Returns the value set by a previous call to set_output_frame_rate(). More...
 
PathReplaceget_path_replace ()
 Returns a pointer to the PathReplace object associated with this converter. More...
 
const PathReplaceget_path_replace () const
 Returns a pointer to the PathReplace object associated with this converter. More...
 
double get_start_frame () const
 Returns the value set by a previous call to set_start_frame(). More...
 
bool had_error () const
 Returns true if an error was detected during the conversion process (unless _allow_errors is true), false otherwise. More...
 
bool handle_external_reference (EggGroupNode *egg_parent, const Filename &ref_filename)
 Handles an external reference in the source file. More...
 
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. More...
 
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. More...
 
bool has_input_frame_rate () const
 Returns true if the frame rate has been explicitly specified via set_input_frame_rate(), or false otherwise. More...
 
bool has_neutral_frame () const
 Returns true if the neutral frame has been explicitly specified via set_neutral_frame(), or false otherwise. More...
 
bool has_output_frame_rate () const
 Returns true if the frame rate has been explicitly specified via set_output_frame_rate(), or false otherwise. More...
 
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. More...
 
virtual SomethingToEggConvertermake_copy ()=0
 
virtual PT (PandaNode) convert_to_node(const LoaderOptions &options
 
void set_animation_convert (AnimationConvert animation_convert)
 Specifies how source animation will be converted into egg structures. More...
 
void set_character_name (const string &character_name)
 Specifies the name of the character generated. More...
 
void set_egg_data (EggData *egg_data)
 Sets the egg data that will be filled in when convert_file() is called. More...
 
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(). More...
 
void set_frame_inc (double frame_inc)
 Specifies the increment between frames to extract. More...
 
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. More...
 
void set_merge_externals (bool merge_externals)
 Sets the merge_externals flag. More...
 
void set_neutral_frame (double neutral_frame)
 Specifies the frame of animation to represent the neutral pose of the model. More...
 
void set_output_frame_rate (double output_frame_rate)
 Specifies the number of frames per second that the resulting animation should be played at. More...
 
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. More...
 
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(). More...
 
virtual bool supports_compressed () const
 Returns true if this file type can transparently load compressed files (with a .pz extension), false otherwise. More...
 
virtual bool supports_convert_to_node (const LoaderOptions &options) const
 Returns true if this converter can directly convert the model type to internal Panda memory structures, given the indicated options, or false otherwise. More...
 

Static Public Member Functions

static 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. More...
 

Public Attributes

bool _allow_errors
 
virtual const Filenamefilename
 

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 42 of file somethingToEggConverter.h.

Member Function Documentation

◆ clear_egg_data()

void SomethingToEggConverter::clear_egg_data ( )
inline

Sets the EggData to NULL and makes the converter invalid.

Definition at line 485 of file somethingToEggConverter.I.

References get_egg_data(), and set_egg_data().

Referenced by get_merge_externals().

◆ clear_end_frame()

void SomethingToEggConverter::clear_end_frame ( )
inline

Removes the value previously set by set_end_frame().

Definition at line 227 of file somethingToEggConverter.I.

References set_frame_inc().

Referenced by get_end_frame().

◆ clear_error()

void SomethingToEggConverter::clear_error ( )
inline

Resets the error flag to the no-error state.

had_error() will return false until a new error is generated.

Definition at line 24 of file somethingToEggConverter.I.

References had_error().

◆ clear_frame_inc()

void SomethingToEggConverter::clear_frame_inc ( )
inline

Removes the value previously set by set_frame_inc().

Definition at line 282 of file somethingToEggConverter.I.

References set_neutral_frame().

Referenced by get_frame_inc().

◆ clear_input_frame_rate()

void SomethingToEggConverter::clear_input_frame_rate ( )
inline

Removes the value previously set by set_input_frame_rate().

Definition at line 385 of file somethingToEggConverter.I.

References set_output_frame_rate().

Referenced by get_input_frame_rate().

◆ clear_neutral_frame()

void SomethingToEggConverter::clear_neutral_frame ( )
inline

Removes the value previously set by set_neutral_frame().

Definition at line 331 of file somethingToEggConverter.I.

References set_input_frame_rate().

Referenced by get_neutral_frame().

◆ clear_output_frame_rate()

void SomethingToEggConverter::clear_output_frame_rate ( )
inline

Removes the value previously set by set_output_frame_rate().

Definition at line 436 of file somethingToEggConverter.I.

References get_default_frame_rate().

Referenced by get_output_frame_rate().

◆ clear_start_frame()

void SomethingToEggConverter::clear_start_frame ( )
inline

Removes the value previously set by set_start_frame().

Definition at line 174 of file somethingToEggConverter.I.

References set_end_frame().

Referenced by get_start_frame().

◆ convert_model_path()

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 507 of file somethingToEggConverter.I.

Referenced by XFileMaterial::apply_to_egg(), CLwoSurface::check_texture(), and get_egg_data().

◆ get_additional_extensions()

string SomethingToEggConverter::get_additional_extensions ( ) const
virtual

Returns a space-separated list of extension, in addition to the one returned by get_extension(), that are recognized by this converter.

Reimplemented in MayaToEggConverter.

Definition at line 88 of file somethingToEggConverter.cxx.

References supports_compressed().

Referenced by set_egg_data().

◆ get_animation_convert()

AnimationConvert SomethingToEggConverter::get_animation_convert ( ) const
inline

Returns how source animation will be converted into egg structures.

Definition at line 98 of file somethingToEggConverter.I.

References set_character_name().

Referenced by set_animation_convert().

◆ get_character_name()

const string & SomethingToEggConverter::get_character_name ( ) const
inline

Returns the name of the character generated.

See set_character_name().

Definition at line 122 of file somethingToEggConverter.I.

References set_start_frame().

Referenced by set_character_name().

◆ get_default_frame_rate()

double SomethingToEggConverter::get_default_frame_rate ( )
inlinestatic

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 450 of file somethingToEggConverter.I.

References set_merge_externals().

Referenced by clear_output_frame_rate().

◆ get_egg_data()

EggData * SomethingToEggConverter::get_egg_data ( )
inline

◆ get_end_frame()

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 215 of file somethingToEggConverter.I.

References clear_end_frame(), and has_end_frame().

Referenced by has_end_frame().

◆ get_frame_inc()

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 270 of file somethingToEggConverter.I.

References clear_frame_inc(), and has_frame_inc().

Referenced by has_frame_inc().

◆ get_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 373 of file somethingToEggConverter.I.

References clear_input_frame_rate(), and has_input_frame_rate().

Referenced by has_input_frame_rate().

◆ get_input_units()

DistanceUnit SomethingToEggConverter::get_input_units ( )
virtual

This may be called after convert_file() has been called and returned true, indicating a successful conversion.

It will return the distance units represented by the converted egg file, if known, or DU_invalid if not known.

Reimplemented in MayaToEggConverter, FltToEggConverter, and DAEToEggConverter.

Definition at line 130 of file somethingToEggConverter.cxx.

References handle_external_reference().

Referenced by LoaderFileTypePandatool::resolve_filename(), and supports_convert_to_node().

◆ get_merge_externals()

bool SomethingToEggConverter::get_merge_externals ( ) const
inline

Returns the current state of the merge_externals flag.

See set_merge_externals().

Definition at line 474 of file somethingToEggConverter.I.

References clear_egg_data().

Referenced by set_merge_externals().

◆ get_neutral_frame()

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 319 of file somethingToEggConverter.I.

References clear_neutral_frame(), and has_neutral_frame().

Referenced by has_neutral_frame().

◆ get_output_frame_rate()

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 424 of file somethingToEggConverter.I.

References clear_output_frame_rate(), and has_output_frame_rate().

Referenced by has_output_frame_rate().

◆ get_path_replace() [1/2]

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 61 of file somethingToEggConverter.I.

Referenced by MayaPview::creator(), LoaderFileTypePandatool::resolve_filename(), and set_path_replace().

◆ get_path_replace() [2/2]

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

◆ get_start_frame()

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 162 of file somethingToEggConverter.I.

References clear_start_frame(), and has_start_frame().

Referenced by has_start_frame().

◆ had_error()

bool SomethingToEggConverter::had_error ( ) const
inline

Returns true if an error was detected during the conversion process (unless _allow_errors is true), false otherwise.

Definition at line 36 of file somethingToEggConverter.I.

References set_path_replace().

Referenced by clear_error().

◆ handle_external_reference()

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 165 of file somethingToEggConverter.cxx.

References EggGroupNode::add_child(), EggToSomethingConverter::get_egg_data(), EggData::set_coordinate_system(), set_egg_data(), Filename::set_extension(), and EggGroupNode::steal_children().

Referenced by get_input_units().

◆ has_end_frame()

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 203 of file somethingToEggConverter.I.

References get_end_frame().

Referenced by get_end_frame(), and set_end_frame().

◆ has_frame_inc()

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 258 of file somethingToEggConverter.I.

References get_frame_inc().

Referenced by get_frame_inc(), and set_frame_inc().

◆ has_input_frame_rate()

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 361 of file somethingToEggConverter.I.

References get_input_frame_rate().

Referenced by get_input_frame_rate(), and set_input_frame_rate().

◆ has_neutral_frame()

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 307 of file somethingToEggConverter.I.

References get_neutral_frame().

Referenced by get_neutral_frame(), and set_neutral_frame().

◆ has_output_frame_rate()

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 412 of file somethingToEggConverter.I.

References get_output_frame_rate().

Referenced by get_output_frame_rate(), and set_output_frame_rate().

◆ has_start_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 150 of file somethingToEggConverter.I.

References get_start_frame().

Referenced by get_start_frame(), and set_start_frame().

◆ set_animation_convert()

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 87 of file somethingToEggConverter.I.

References get_animation_convert().

Referenced by SomethingToEgg::add_merge_externals_options(), MayaPview::creator(), get_path_replace(), and LoaderFileTypePandatool::resolve_filename().

◆ set_character_name()

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 111 of file somethingToEggConverter.I.

References get_character_name().

Referenced by SomethingToEgg::add_merge_externals_options(), and get_animation_convert().

◆ set_egg_data()

void SomethingToEggConverter::set_egg_data ( EggData egg_data)

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

This must be called before convert_file().

Definition at line 76 of file somethingToEggConverter.cxx.

References get_additional_extensions().

Referenced by clear_egg_data(), MayaPview::creator(), handle_external_reference(), and LoaderFileTypePandatool::resolve_filename().

◆ set_end_frame()

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 189 of file somethingToEggConverter.I.

References has_end_frame().

Referenced by SomethingToEgg::add_merge_externals_options(), and clear_start_frame().

◆ set_frame_inc()

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 244 of file somethingToEggConverter.I.

References has_frame_inc().

Referenced by SomethingToEgg::add_merge_externals_options(), and clear_end_frame().

◆ set_input_frame_rate()

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 348 of file somethingToEggConverter.I.

References has_input_frame_rate().

Referenced by SomethingToEgg::add_merge_externals_options(), and clear_neutral_frame().

◆ set_merge_externals()

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 463 of file somethingToEggConverter.I.

References get_merge_externals().

Referenced by get_default_frame_rate().

◆ set_neutral_frame()

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 294 of file somethingToEggConverter.I.

References has_neutral_frame().

Referenced by SomethingToEgg::add_merge_externals_options(), clear_frame_inc(), and MayaPview::creator().

◆ set_output_frame_rate()

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 399 of file somethingToEggConverter.I.

References has_output_frame_rate().

Referenced by SomethingToEgg::add_merge_externals_options(), and clear_input_frame_rate().

◆ set_path_replace()

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 48 of file somethingToEggConverter.I.

References get_path_replace().

Referenced by SomethingToEgg::add_merge_externals_options(), and had_error().

◆ set_start_frame()

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 136 of file somethingToEggConverter.I.

References has_start_frame().

Referenced by SomethingToEgg::add_merge_externals_options(), and get_character_name().

◆ supports_compressed()

bool SomethingToEggConverter::supports_compressed ( ) const
virtual

Returns true if this file type can transparently load compressed files (with a .pz extension), false otherwise.

Reimplemented in FltToEggConverter, LwoToEggConverter, XFileToEggConverter, ObjToEggConverter, VRMLToEggConverter, and DXFToEggConverter.

Definition at line 100 of file somethingToEggConverter.cxx.

References supports_convert_to_node().

Referenced by get_additional_extensions().

◆ supports_convert_to_node()

bool SomethingToEggConverter::supports_convert_to_node ( const LoaderOptions options) const
virtual

Returns true if this converter can directly convert the model type to internal Panda memory structures, given the indicated options, or false otherwise.

If this returns true, then convert_to_node() may be called to perform the conversion, which may be faster than calling convert_file() if the ultimate goal is a PandaNode anyway.

Reimplemented in ObjToEggConverter.

Definition at line 116 of file somethingToEggConverter.cxx.

References get_input_units().

Referenced by LoaderFileTypePandatool::resolve_filename(), and supports_compressed().


The documentation for this class was generated from the following files: