support egg visibility scalar

This commit is contained in:
David Rose 2003-11-04 05:23:57 +00:00
parent 093e99cd5a
commit 3a761fc27c
4 changed files with 20 additions and 11 deletions

View File

@ -46,7 +46,7 @@ EggToBam() :
add_path_store_options(); add_path_store_options();
add_option add_option
("fl", "flag", 0, ("flatten", "flag", 0,
"Specifies whether to flatten the egg hierarchy after it is loaded. " "Specifies whether to flatten the egg hierarchy after it is loaded. "
"If flag is zero, the egg hierarchy will not be flattened, but will " "If flag is zero, the egg hierarchy will not be flattened, but will "
"instead be written to the bam file exactly as it is. If flag is " "instead be written to the bam file exactly as it is. If flag is "
@ -56,6 +56,14 @@ EggToBam() :
"variable.", "variable.",
&EggToBam::dispatch_int, &_has_egg_flatten, &_egg_flatten); &EggToBam::dispatch_int, &_has_egg_flatten, &_egg_flatten);
add_option
("suppress-hidden", "flag", 0,
"Specifies whether to suppress hidden geometry. If this is nonzero, "
"egg geometry tagged as \"hidden\" will be removed from the final "
"scene graph; otherwise, it will be preserved (but stashed). The "
"default is nonzero, to remove it.",
&EggToBam::dispatch_int, NULL, &_egg_suppress_hidden);
add_option add_option
("ls", "", 0, ("ls", "", 0,
"Writes a scene graph listing to standard output after the egg " "Writes a scene graph listing to standard output after the egg "
@ -88,6 +96,7 @@ EggToBam() :
_force_complete = true; _force_complete = true;
_egg_flatten = 0; _egg_flatten = 0;
_egg_suppress_hidden = 1;
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -98,11 +107,14 @@ EggToBam() :
void EggToBam:: void EggToBam::
run() { run() {
if (_has_egg_flatten) { if (_has_egg_flatten) {
// If the user specified some -fl, we need to set the // If the user specified some -flatten, we need to set the
// corresponding Configrc variable. // corresponding Configrc variable.
egg_flatten = (_egg_flatten != 0); egg_flatten = (_egg_flatten != 0);
} }
// We always set egg_suppress_hidden.
egg_suppress_hidden = _egg_suppress_hidden;
if (_compression_off) { if (_compression_off) {
// If the user specified -NC, turn off channel compression. // If the user specified -NC, turn off channel compression.
compress_channels = false; compress_channels = false;

View File

@ -39,6 +39,7 @@ protected:
private: private:
bool _has_egg_flatten; bool _has_egg_flatten;
int _egg_flatten; int _egg_flatten;
bool _egg_suppress_hidden;
bool _ls; bool _ls;
bool _has_compression_quality; bool _has_compression_quality;
int _compression_quality; int _compression_quality;

View File

@ -50,9 +50,6 @@ get_maya_plug(MObject &node, const string &attribute_name, MPlug &plug) {
MObject attr = node_fn.attribute(attribute_name.c_str(), &status); MObject attr = node_fn.attribute(attribute_name.c_str(), &status);
if (!status) { if (!status) {
maya_cat.debug()
<< "Object " << node_fn.name() << " does not support attribute "
<< attribute_name << "\n";
return false; return false;
} }

View File

@ -275,15 +275,14 @@ get_egg_group(MayaNodeDesc *node_desc) {
egg_group->add_object_type(object_type); egg_group->add_object_type(object_type);
} }
// Is the node flagged to be invisible? If it is, and is has no // Is the node flagged to be invisible? If it is, it is tagged
// other egg flags, it is implicitly tagged "backstage", so it // with the "hidden" visibility flag, so it won't get converted
// won't get converted. (But it might be an invisible collision // in the normal case (unless it represents a collision solid or
// solid, which is why we do this only if it has no other egg // something).
// flags.)
bool visible = true; bool visible = true;
get_bool_attribute(dag_object, "visibility", visible); get_bool_attribute(dag_object, "visibility", visible);
if (!visible && egg_group->get_num_object_types() == 0) { if (!visible && egg_group->get_num_object_types() == 0) {
egg_group->add_object_type("backstage"); egg_group->set_visibility_mode(EggGroup::VM_hidden);
} }
// We treat the object type "billboard" as a special case: we // We treat the object type "billboard" as a special case: we