Panda3D
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
SoftToEggConverter Class Reference

This class supervises the construction of an EggData structure from a single Softimage file, or from the data already in th cout << "egg name = " << eggFilename << endl;e global Softimage model space. More...

#include "softToEggConverter.h"

Inheritance diagram for SoftToEggConverter:
SomethingToEggConverter

Public Types

typedef pvector< EggSAnimData * > MorphTable
 
enum  TransformType {
  TT_invalid, TT_all, TT_model, TT_dcs,
  TT_none
}
 

Public Member Functions

 SoftToEggConverter (const string &program_name="")
 
 SoftToEggConverter (const SoftToEggConverter &copy)
 
void close_api ()
 Closes the Soft API, if it was previously opened. More...
 
virtual bool convert_file (const Filename &filename)
 Handles the reading of the input file and converting it to egg. More...
 
bool convert_soft (bool from_selection)
 Fills up the egg_data structure according to the global soft model data. More...
 
bool DoGetopts (int &argc, char **&argv)
 Calls getopt() to parse the command-line switches. More...
 
EggSAnimDatafind_morph_table (char *name)
 Given a tablename, it either creates a new eggSAnimData structure (if doesn't exist) or locates it. More...
 
SoftNodeDescfind_node (string name)
 Returns the English name of the file type this converter supports. More...
 
int * FindClosestTriVert (EggVertexPool *vpool, SAA_DVector *vertices, int numVert)
 Given an egg vertex pool, map each vertex therein to a vertex within an array of SAA model vertices of size numVert. More...
 
virtual string get_extension () const
 Returns the common extension of the file type this converter supports. More...
 
virtual string get_name () const
 Returns the English name of the file type this converter supports. More...
 
char * GetTextureName (SAA_Scene *scene, SAA_Elem *texture)
 Given a texture element, return texture name with given tex_path. More...
 
bool HandleGetopts (int &idx, int argc, char **argv)
 increment idx based on what kind of option parsed Supported options are as follows: r:d:s:m:t:P:b:e:f:T:S:M:A:N:v:o:FhknpaxiucCD More...
 
void Help ()
 Displays the "what is this program" message, along with the usage message. More...
 
virtual SomethingToEggConvertermake_copy ()
 Allocates and returns a new copy of the converter. More...
 
bool open_api ()
 Attempts to open the Soft API if it was not already open, and returns true if successful, or false if there is an error. More...
 
void ShowOpts ()
 Displays the valid options. More...
 
void Usage ()
 Displays the usage message. More...
 
- Public Member Functions inherited from SomethingToEggConverter
 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...
 
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...
 
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...
 
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 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 TransformType string_transform_type (const string &arg)
 Returns the TransformType value corresponding to the indicated string, or TT_invalid. More...
 
- Static Public Member Functions inherited from SomethingToEggConverter
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

char _commandLine [4096]
 
const char * _commandName
 
char * _getopts
 
MorphTable _morph_table
 
bool _polygon_output
 
double _polygon_tolerance
 
EggTextureCollection _textures
 
TransformType _transform_type
 
SoftNodeTree _tree
 
int anim_end
 
int anim_rate
 
int anim_start
 
char * animFileName
 
char * database_name
 
char * eggFileName
 
char * eggGroupName
 
int flatten
 
bool foundRoot
 
bool geom_as_joint
 
bool has_morph
 
int ignore_tex_offsets
 
bool make_anim
 
bool make_dart
 
bool make_duv
 
bool make_morph
 
bool make_nurbs
 
bool make_poly
 
bool make_pose
 
bool make_soft
 
char * model_name
 
EggTablemorph_node
 
int nurbs_step
 
int pose_frame
 
char * rsrc_path
 
SAA_Scene scene
 
char * scene_name
 
char * search_prefix
 
int shift_textures
 
char * tex_filename
 
char * tex_path
 
int use_prefix
 
int verbose
 
- Public Attributes inherited from SomethingToEggConverter
bool _allow_errors
 
virtual const Filenamefilename
 

Detailed Description

This class supervises the construction of an EggData structure from a single Softimage file, or from the data already in th cout << "egg name = " << eggFilename << endl;e global Softimage model space.

Definition at line 53 of file softToEggConverter.h.

Member Function Documentation

◆ close_api()

void SoftToEggConverter::close_api ( )

Closes the Soft API, if it was previously opened.

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

Definition at line 724 of file softToEggConverter.cxx.

References find_morph_table().

Referenced by open_api().

◆ convert_file()

bool SoftToEggConverter::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_soft().

Implements SomethingToEggConverter.

Definition at line 548 of file softToEggConverter.cxx.

References convert_soft(), and Filename::get_basename_wo_extension().

Referenced by GetTextureName(), and string_transform_type().

◆ convert_soft()

bool SoftToEggConverter::convert_soft ( bool  from_selection)

Fills up the egg_data structure according to the global soft 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 Soft scene.

Definition at line 570 of file softToEggConverter.cxx.

References EggData::get_coordinate_system(), Filename::get_dirname(), open_api(), and EggData::write_egg().

Referenced by convert_file().

◆ DoGetopts()

bool SoftToEggConverter::DoGetopts ( int &  argc,
char **&  argv 
)

Calls getopt() to parse the command-line switches.

Calls HandleGetopts() to interpret each switch. Returns true if the parsing was successful; false if there was an error. Adjusts argc and argv to remove the switches from the parameter list.

Definition at line 217 of file softToEggConverter.cxx.

References HandleGetopts().

Referenced by ShowOpts(), and string_transform_type().

◆ find_morph_table()

EggSAnimData * SoftToEggConverter::find_morph_table ( char *  name)

◆ find_node()

SoftNodeDesc * SoftToEggConverter::find_node ( string  name)

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

Definition at line 494 of file softToEggConverter.cxx.

References GetTextureName().

Referenced by get_extension().

◆ FindClosestTriVert()

int * SoftToEggConverter::FindClosestTriVert ( EggVertexPool vpool,
SAA_DVector *  vertices,
int  numVert 
)

◆ get_extension()

string SoftToEggConverter::get_extension ( ) const
virtual

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

Implements SomethingToEggConverter.

Definition at line 483 of file softToEggConverter.cxx.

References find_node().

Referenced by get_name().

◆ get_name()

string SoftToEggConverter::get_name ( ) const
virtual

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

Implements SomethingToEggConverter.

Definition at line 472 of file softToEggConverter.cxx.

References get_extension().

Referenced by make_copy().

◆ GetTextureName()

char * SoftToEggConverter::GetTextureName ( SAA_Scene *  scene,
SAA_Elem *  texture 
)

Given a texture element, return texture name with given tex_path.

Definition at line 505 of file softToEggConverter.cxx.

References convert_file().

Referenced by find_node(), SoftNodeDesc::load_nurbs_model(), and SoftNodeDesc::load_poly_model().

◆ HandleGetopts()

bool SoftToEggConverter::HandleGetopts ( int &  idx,
int  argc,
char **  argv 
)

increment idx based on what kind of option parsed Supported options are as follows: r:d:s:m:t:P:b:e:f:T:S:M:A:N:v:o:FhknpaxiucCD

Definition at line 248 of file softToEggConverter.cxx.

References make_copy().

Referenced by DoGetopts().

◆ Help()

void SoftToEggConverter::Help ( )

Displays the "what is this program" message, along with the usage message.

Should be overridden in base classes to describe the current program.

Definition at line 138 of file softToEggConverter.cxx.

References Usage().

◆ make_copy()

SomethingToEggConverter * SoftToEggConverter::make_copy ( )
virtual

Allocates and returns a new copy of the converter.

Implements SomethingToEggConverter.

Definition at line 461 of file softToEggConverter.cxx.

References get_name().

Referenced by HandleGetopts().

◆ open_api()

bool SoftToEggConverter::open_api ( )

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

Definition at line 654 of file softToEggConverter.cxx.

References close_api().

Referenced by convert_soft().

◆ ShowOpts()

void SoftToEggConverter::ShowOpts ( )

Displays the valid options.

Should be extended in base classes to show additional options relevant to the current program.

Definition at line 172 of file softToEggConverter.cxx.

References DoGetopts().

Referenced by Usage().

◆ string_transform_type()

SoftToEggConverter::TransformType SoftToEggConverter::string_transform_type ( const string &  arg)
static

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

Definition at line 2200 of file softToEggConverter.cxx.

References convert_file(), and DoGetopts().

Referenced by FindClosestTriVert().

◆ Usage()

void SoftToEggConverter::Usage ( )

Displays the usage message.

Definition at line 153 of file softToEggConverter.cxx.

References ShowOpts().

Referenced by Help().


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