[Orxonox-commit 4733] r9402 - code/branches/shaders/src/orxonox/graphics

davidsa at orxonox.net davidsa at orxonox.net
Tue Oct 16 15:32:20 CEST 2012


Author: davidsa
Date: 2012-10-16 15:32:20 +0200 (Tue, 16 Oct 2012)
New Revision: 9402

Modified:
   code/branches/shaders/src/orxonox/graphics/Model.cc
   code/branches/shaders/src/orxonox/graphics/Model.h
Log:
Orxonox::Model: added XMLPort 'material' to easily attach a material/shader to a Model

Modified: code/branches/shaders/src/orxonox/graphics/Model.cc
===================================================================
--- code/branches/shaders/src/orxonox/graphics/Model.cc	2012-10-16 13:30:20 UTC (rev 9401)
+++ code/branches/shaders/src/orxonox/graphics/Model.cc	2012-10-16 13:32:20 UTC (rev 9402)
@@ -70,6 +70,7 @@
         XMLPortParam(Model, "lodLevel", setLodLevel, getLodLevel, xmlelement, mode);
 
         XMLPortParam(Model, "mesh", setMeshSource, getMeshSource, xmlelement, mode);
+        XMLPortParam(Model, "material", setMaterial, getMaterial, xmlelement, mode);
         XMLPortParam(Model, "shadow", setCastShadows, getCastShadows, xmlelement, mode).defaultValues(true);
     }
 
@@ -110,6 +111,11 @@
         }
     }
 
+    void Model::changedMaterial()
+    {
+        this->mesh_.setMaterial(this->materialName_);
+    }
+
     void Model::changedShadows()
     {
         this->mesh_.setCastShadows(this->bCastShadows_);

Modified: code/branches/shaders/src/orxonox/graphics/Model.h
===================================================================
--- code/branches/shaders/src/orxonox/graphics/Model.h	2012-10-16 13:30:20 UTC (rev 9401)
+++ code/branches/shaders/src/orxonox/graphics/Model.h	2012-10-16 13:32:20 UTC (rev 9402)
@@ -62,9 +62,15 @@
             inline bool getCastShadows() const
                 { return this->bCastShadows_; }
 
+            inline void setMaterial(const std::string& materialname)
+                { this->materialName_ = materialname; this->changedMaterial(); }
+            inline const std::string& getMaterial() const
+                { return this->materialName_; }
+
         protected:
             void registerVariables();
             void changedMesh();
+            void changedMaterial();
             void changedShadows();
 
             //LoD
@@ -79,6 +85,7 @@
             std::string meshSrc_;
             Mesh mesh_;
             bool bCastShadows_;
+            std::string materialName_;
 
             //LoD
             bool bGlobalEnableLod_;




More information about the Orxonox-commit mailing list