void GU_CortexPrimitive::infoText( const GU_Detail *geo, OP_Context &context, OP_NodeInfoParms &parms ) { if ( !geo ) { return; } std::map<std::string, int> typeMap; const GA_PrimitiveList &primitives = geo->getPrimitiveList(); for ( GA_Iterator it=geo->getPrimitiveRange().begin(); !it.atEnd(); ++it ) { const GA_Primitive *prim = primitives.get( it.getOffset() ); if ( prim->getTypeId() == GU_CortexPrimitive::typeId() ) { const IECore::Object *object = ((GU_CortexPrimitive *)prim)->getObject(); if ( object ) { typeMap[object->typeName()] += 1; } } } if ( typeMap.empty() ) { return; } parms.append( "Cortex Object Details:\n" ); for ( std::map<std::string, int>::iterator it = typeMap.begin(); it != typeMap.end(); ++it ) { parms.append( ( boost::format( " %d " + it->first + "s\n" ) % it->second ).str().c_str() ); } parms.append( "\n" ); }
void SOP_SceneCacheSource::getNodeSpecificInfoText( OP_Context &context, OP_NodeInfoParms &parms ) { SceneCacheNode<SOP_Node>::getNodeSpecificInfoText( context, parms ); // add type descriptions for the Cortex Objects GeometryType geometryType = (GeometryType)this->evalInt( pGeometryType.getToken(), 0, 0 ); if ( geometryType == Cortex ) { GEO_CortexPrimitive::infoText( getCookedGeo( context ), context, parms ); return; } // add conversion details for Houdini geo UT_String p( "P" ); UT_String filter; evalString( filter, pAttributeFilter.getToken(), 0, 0 ); if ( !p.match( filter ) ) { filter += " P"; } UT_StringMMPattern attributeFilter; attributeFilter.compile( filter ); /// \todo: this text could come from a static method on a class that manages these name relations (once that exists) parms.append( "Converting standard Cortex PrimitiveVariables:\n" ); if ( UT_String( "s" ).multiMatch( attributeFilter ) && UT_String( "t" ).multiMatch( attributeFilter ) ) { parms.append( " s,t -> uv\n" ); } if ( UT_String( "Cs" ).multiMatch( attributeFilter ) ) { parms.append( " Cs -> Cd\n" ); } if ( UT_String( "Pref" ).multiMatch( attributeFilter ) ) { parms.append( " Pref -> rest\n" ); } if ( UT_String( "width" ).multiMatch( attributeFilter ) ) { parms.append( " width -> pscale\n" ); } if ( UT_String( "Os" ).multiMatch( attributeFilter ) ) { parms.append( " Os -> Alpha\n" ); } }
void SOP_CortexConverter::getNodeSpecificInfoText( OP_Context &context, OP_NodeInfoParms &parms ) { SOP_Node::getNodeSpecificInfoText( context, parms ); GEO_CortexPrimitive::infoText( getCookedGeo( context ), context, parms ); if ( !evalInt( pConvertStandardAttributes.getToken(), 0, 0 ) ) { return; } UT_String p( "P" ); UT_String filter; evalString( filter, pAttributeFilter.getToken(), 0, 0 ); if ( !p.match( filter ) ) { filter += " P"; } UT_StringMMPattern attributeFilter; attributeFilter.compile( filter ); /// \todo: this text could come from a static method on a class that manages these name relations (once that exists) parms.append( "Converting standard Cortex PrimitiveVariables:\n" ); if ( UT_String( "s" ).multiMatch( attributeFilter ) && UT_String( "t" ).multiMatch( attributeFilter ) ) { parms.append( " s,t <--> uv\n" ); } if ( UT_String( "Cs" ).multiMatch( attributeFilter ) ) { parms.append( " Cs <--> Cd\n" ); } if ( UT_String( "Pref" ).multiMatch( attributeFilter ) ) { parms.append( " Pref <--> rest\n" ); } if ( UT_String( "width" ).multiMatch( attributeFilter ) ) { parms.append( " width <--> pscale\n" ); } if ( UT_String( "Os" ).multiMatch( attributeFilter ) ) { parms.append( " Os <--> Alpha\n" ); } }
void SOP_SceneCacheSource::getNodeSpecificInfoText( OP_Context &context, OP_NodeInfoParms &parms ) { SceneCacheNode<SOP_Node>::getNodeSpecificInfoText( context, parms ); UT_String p( "P" ); UT_String filter; evalString( filter, pAttributeFilter.getToken(), 0, 0 ); if ( !p.match( filter ) ) { filter += " P"; } UT_StringMMPattern attributeFilter; attributeFilter.compile( filter ); /// \todo: this text could come from a static method on a class that manages these name relations (once that exists) parms.append( "Converting standard Cortex PrimitiveVariables:\n" ); if ( UT_String( "s" ).multiMatch( attributeFilter ) && UT_String( "t" ).multiMatch( attributeFilter ) ) { parms.append( " s,t -> uv\n" ); } if ( UT_String( "Cs" ).multiMatch( attributeFilter ) ) { parms.append( " Cs -> Cd\n" ); } if ( UT_String( "Pref" ).multiMatch( attributeFilter ) ) { parms.append( " Pref -> rest\n" ); } if ( UT_String( "width" ).multiMatch( attributeFilter ) ) { parms.append( " width -> pscale\n" ); } if ( UT_String( "Os" ).multiMatch( attributeFilter ) ) { parms.append( " Os -> Alpha\n" ); } }
void SOP_SceneCacheSource::getNodeSpecificInfoText( OP_Context &context, OP_NodeInfoParms &parms ) { SceneCacheNode<SOP_Node>::getNodeSpecificInfoText( context, parms ); // add type descriptions for the Cortex Objects GeometryType geometryType = (GeometryType)this->evalInt( pGeometryType.getToken(), 0, 0 ); if ( geometryType == Cortex ) { std::map<std::string, int> typeMap; const GU_Detail *geo = getCookedGeo( context ); if ( !geo ) { return; } const GA_PrimitiveList &primitives = geo->getPrimitiveList(); for ( GA_Iterator it=geo->getPrimitiveRange().begin(); !it.atEnd(); ++it ) { const GA_Primitive *prim = primitives.get( it.getOffset() ); if ( prim->getTypeId() == GU_CortexPrimitive::typeId() ) { const IECore::Object *object = ((GU_CortexPrimitive *)prim)->getObject(); if ( object ) { typeMap[object->typeName()] += 1; } } } if ( typeMap.empty() ) { return; } parms.append( "Cortex Object Details:\n" ); for ( std::map<std::string, int>::iterator it = typeMap.begin(); it != typeMap.end(); ++it ) { parms.append( ( boost::format( " %d " + it->first + "s\n" ) % it->second ).str().c_str() ); } return; } // add conversion details for Houdini geo UT_String p( "P" ); UT_String filter; evalString( filter, pAttributeFilter.getToken(), 0, 0 ); if ( !p.match( filter ) ) { filter += " P"; } UT_StringMMPattern attributeFilter; attributeFilter.compile( filter ); /// \todo: this text could come from a static method on a class that manages these name relations (once that exists) parms.append( "Converting standard Cortex PrimitiveVariables:\n" ); if ( UT_String( "s" ).multiMatch( attributeFilter ) && UT_String( "t" ).multiMatch( attributeFilter ) ) { parms.append( " s,t -> uv\n" ); } if ( UT_String( "Cs" ).multiMatch( attributeFilter ) ) { parms.append( " Cs -> Cd\n" ); } if ( UT_String( "Pref" ).multiMatch( attributeFilter ) ) { parms.append( " Pref -> rest\n" ); } if ( UT_String( "width" ).multiMatch( attributeFilter ) ) { parms.append( " width -> pscale\n" ); } if ( UT_String( "Os" ).multiMatch( attributeFilter ) ) { parms.append( " Os -> Alpha\n" ); } }