NodeManager_Impl::NodeManager_Impl(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, DAnCE::ArtifactInstallation_ptr installer, const char* name, std::string config_file, const PROPERTY_MAP &properties) : orb_ (CORBA::ORB::_duplicate (orb)), poa_ (PortableServer::POA::_duplicate (poa)), installer_ (DAnCE::ArtifactInstallation::_duplicate (installer)), name_ (name), properties_ (properties.current_size ()) { DANCE_TRACE ( "NodeManager_Impl::NodeManager_Impl"); DANCE_DEBUG (DANCE_LOG_EVENT_TRACE, (LM_INFO, DLINFO ACE_TEXT("NodeManager_impl::NodeManager_impl has been created\n"))); PROPERTY_MAP::const_iterator i = properties.begin (); while (!i.done ()) { DANCE_DEBUG (DANCE_LOG_MAJOR_DEBUG_INFO, (LM_TRACE, DLINFO ACE_TEXT("NodeManager_Impl::NodeManager_Impl - ") ACE_TEXT("Binding property %C provided by caller.\n"), i->key ().c_str ())); this->properties_.bind (i->key (), i->item ()); i.advance (); } ::Deployment::Properties prop; ::DAnCE::Utility::build_property_sequence (prop, properties); PLUGIN_MANAGER::instance ()->set_configuration (prop); PLUGIN_MANAGER::instance ()->set_orb (this->orb_); Plugin_Configurator conf; if (config_file.c_str ()) { DANCE_DEBUG (DANCE_LOG_MINOR_EVENT, (LM_DEBUG, DLINFO ACE_TEXT ("NodeManager_Impl::NodeManager_Impl - ") ACE_TEXT ("Loading plugin file <%C>\n"), config_file.c_str ())); conf.load_from_text_file (ACE_TEXT_CHAR_TO_TCHAR (config_file.c_str ())); } else DANCE_ERROR (DANCE_LOG_WARNING, (LM_WARNING, DLINFO ACE_TEXT ("NodeManager_Impl::NodeManager_Impl - ") ACE_TEXT ("Warning: No plugin configuration file found.\n"))); }
void X3D_MODEL_PARSER::readMaterial( wxXmlNode* aMatNode ) { glm::vec3 color; PROPERTY_MAP properties; GetNodeProperties( aMatNode, properties ); // DEFine new Material named as value of DEF if( properties.find( wxT( "DEF" ) ) != properties.end() ) { double amb, shine, transp; S3D_MATERIAL* material = new S3D_MATERIAL( GetMaster(), properties[ wxT( "DEF" ) ] ); GetMaster()->Insert( material ); m_model->m_Materials = material; if( !parseDoubleTriplet( properties[ wxT( "diffuseColor" ) ], color ) ) { // DBG( printf( "diffuseColor parsing error" ) ); } else { m_model->m_Materials->m_DiffuseColor.push_back( color ); } if( !parseDoubleTriplet( properties[ wxT( "specularColor" ) ], color ) ) { // DBG( printf( "specularColor parsing error" ) ); } else { m_model->m_Materials->m_SpecularColor.push_back( color ); } if( !parseDoubleTriplet( properties[ wxT( "emissiveColor" ) ], color ) ) { // DBG( printf( "emissiveColor parsing error" ) ); } else { m_model->m_Materials->m_EmissiveColor.push_back( color ); } wxStringTokenizer values; values.SetString( properties[ wxT( "ambientIntensity" ) ] ); if( values.GetNextToken().ToDouble( &amb ) ) { m_model->m_Materials->m_AmbientColor.push_back( glm::vec3( amb, amb, amb ) ); } else { // DBG( printf( "ambienterror" ) ); } values.SetString( properties[ wxT( "shininess" ) ] ); if( values.GetNextToken().ToDouble( &shine ) ) { // VRML value is normalized and openGL expects a value 0 - 128 if( shine > 1.0 ) { shine = 1.0; } else if( shine < 0.0 ) { shine = 0.0; } shine = shine * 128.0f; m_model->m_Materials->m_Shininess.push_back( shine ); } else { // DBG( printf( "shininess error" ) ); } values.SetString( properties[ wxT( "transparency" ) ] ); if( values.GetNextToken().ToDouble( &transp ) ) { m_model->m_Materials->m_Transparency.push_back( transp ); } else { // DBG( printf( "trans error" ) ); } // VRML wxString vrml_material; PROPERTY_MAP::const_iterator p = ++properties.begin(); // skip DEF for( ; p != properties.end(); p++ ) { vrml_material.Append( p->first + wxT( " " ) + p->second + wxT( "\n" ) ); } vrml_materials.push_back( vrml_material ); } // USE existing material named by value of USE else if( properties.find( wxT( "USE" ) ) != properties.end() ) { S3D_MATERIAL* material = NULL; wxString mat_name = properties[ wxT( "USE" ) ]; for( material = GetMaster()->m_Materials; material; material = material->Next() ) { if( material->m_Name == mat_name ) { wxString vrml_material; vrml_material.Append( wxString::Format( wxT( "specularColor %f %f %f\n" ), material->m_SpecularColor[0].x, material->m_SpecularColor[0].y, material->m_SpecularColor[0].z ) ); vrml_material.Append( wxString::Format( wxT( "diffuseColor %f %f %f\n" ), material->m_DiffuseColor[0].x, material->m_DiffuseColor[0].y, material->m_DiffuseColor[0].z ) ); vrml_material.Append( wxString::Format( wxT( "emissiveColor %f %f %f\n" ), material->m_EmissiveColor[0].x, material->m_EmissiveColor[0].y, material->m_EmissiveColor[0].z ) ); vrml_material.Append( wxString::Format( wxT( "ambientIntensity %f\n" ), material->m_AmbientColor[0].x ) ); vrml_material.Append( wxString::Format( wxT( "shininess %f\n" ), material->m_Shininess[0] ) ); vrml_material.Append( wxString::Format( wxT( "transparency %f\n" ), material->m_Transparency[0] ) ); vrml_materials.push_back( vrml_material ); m_model->m_Materials = material; return; } } // DBG( printf( "ReadMaterial error: material not found\n" ) ); } }