37class EggOptchar :
public EggCharacterFilter {
44 virtual bool handle_args(Args &args);
47 static bool dispatch_vector_string_pair(
const std::string &opt,
const std::string &arg,
void *var);
48 static bool dispatch_name_components(
const std::string &opt,
const std::string &arg,
void *var);
49 static bool dispatch_double_components(
const std::string &opt,
const std::string &arg,
void *var);
50 static bool dispatch_flag_groups(
const std::string &opt,
const std::string &arg,
void *var);
52 void determine_removed_components();
54 bool process_joints();
58 bool apply_user_reparents();
60 bool quantize_channels();
61 void analyze_joints(
EggJointData *joint_data,
int level);
63 void list_joints(
EggJointData *joint_data,
int indent_level,
bool verbose);
70 void quantize_vertices();
71 void quantize_vertices(
EggNode *egg_node);
72 void quantize_vertex(
EggVertex *egg_vertex);
76 void rename_primitives(
EggGroupNode *egg_group,
const std::string &name);
77 void change_dart_type(
EggGroupNode *egg_group,
const std::string &new_dart_type);
82 bool _list_hierarchy_v;
83 bool _list_hierarchy_p;
92 typedef pvector<StringPair> StringPairs;
93 StringPairs _new_joints;
94 StringPairs _reparent_joints;
95 StringPairs _zero_channels;
96 StringPairs _rename_joints;
98 vector_string _keep_components;
99 vector_string _drop_components;
100 vector_string _expose_components;
101 vector_string _suppress_components;
103 std::string _dart_type;
110 typedef pvector<DoubleString> DoubleStrings;
111 DoubleStrings _quantize_anims;
113 typedef pvector<GlobPattern> Globs;
115 class FlagGroupsEntry {
120 typedef pvector<FlagGroupsEntry> FlagGroups;
121 FlagGroups _flag_groups;
123 std::string _defpose;
125 bool _optimal_hierarchy;
126 double _vref_quantum;