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"
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 ©) | |
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... | |
EggSAnimData * | find_morph_table (char *name) |
Given a tablename, it either creates a new eggSAnimData structure (if doesn't exist) or locates it. More... | |
SoftNodeDesc * | find_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 SomethingToEggConverter * | make_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... | |
![]() | |
SomethingToEggConverter (const SomethingToEggConverter ©) | |
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... | |
EggData * | get_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... | |
PathReplace * | get_path_replace () |
Returns a pointer to the PathReplace object associated with this converter. More... | |
const PathReplace * | get_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 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 |
EggTable * | morph_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 |
![]() | |
bool | _allow_errors |
virtual const Filename & | filename |
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.
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.
|
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(), Filename::get_basename_wo_extension(), and open_api().
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 SoftNodeTree::build_complete_hierarchy(), EggTextureCollection::clear(), Filename::get_dirname(), SomethingToEggConverter::get_egg_data(), SoftNodeTree::GetRootName(), and SomethingToEggConverter::set_egg_data().
Referenced by convert_file().
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(), and Usage().
EggSAnimData * SoftToEggConverter::find_morph_table | ( | char * | name | ) |
Given a tablename, it either creates a new eggSAnimData structure (if doesn't exist) or locates it.
Definition at line 752 of file softToEggConverter.cxx.
References EggGroupNode::add_child().
Referenced by SoftNodeDesc::make_linear_morph_table(), and SoftNodeDesc::make_weighted_morph_table().
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 SoftNodeTree::get_node().
int * SoftToEggConverter::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.
Mapping is done by closest proximity.
Definition at line 1579 of file softToEggConverter.cxx.
References EggVertexPool::begin(), EggVertexPool::end(), EggVertex::get_external_index(), EggVertex::get_pos3(), and EggVertexPool::size().
|
virtual |
Returns the common extension of the file type this converter supports.
Implements SomethingToEggConverter.
Definition at line 483 of file softToEggConverter.cxx.
|
virtual |
Returns the English name of the file type this converter supports.
Implements SomethingToEggConverter.
Definition at line 472 of file softToEggConverter.cxx.
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.
Referenced by SoftNodeDesc::load_nurbs_model(), and SoftNodeDesc::load_poly_model().
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 Help().
Referenced by DoGetopts().
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().
Referenced by HandleGetopts().
|
virtual |
Allocates and returns a new copy of the converter.
Implements SomethingToEggConverter.
Definition at line 461 of file softToEggConverter.cxx.
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 Usage().
Referenced by convert_file().
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.
Referenced by Usage().
|
static |
Returns the TransformType value corresponding to the indicated string, or TT_invalid.
Definition at line 2200 of file softToEggConverter.cxx.
void SoftToEggConverter::Usage | ( | ) |
Displays the usage message.
Definition at line 153 of file softToEggConverter.cxx.
References ShowOpts().
Referenced by DoGetopts(), Help(), and open_api().