- Timestamp:
- Jan 18, 2016, 10:12:53 PM (8 years ago)
- Location:
- code/branches/shaders_merge
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/shaders_merge
- Property svn:mergeinfo changed
/code/branches/shaders (added) merged: 9379,9395,9401-9403,9407,9409,9419-9420,9422-9423,9426,9428,9433,9445-9446,9448,9461-9462,9464,9466,9491-9492,9500,9504,9510-9511
- Property svn:mergeinfo changed
-
code/branches/shaders_merge/src/orxonox/graphics/Model.cc
r11071 r11073 37 37 #include "core/XMLPort.h" 38 38 #include "Scene.h" 39 #include "RenderQueueListener.h" 39 40 #include "graphics/MeshLodInformation.h" 40 41 #include "Level.h" … … 45 46 46 47 Model::Model(Context* context) : 47 StaticEntity(context), bCastShadows_(true), lodLevel_(5), bLodEnabled_(true), numLodLevels_(10), lodReductionRate_(.15f)48 StaticEntity(context), bCastShadows_(true), renderQueueGroup_(RENDER_QUEUE_MAIN), lodLevel_(5), bLodEnabled_(true), numLodLevels_(10), lodReductionRate_(.15f) 48 49 { 49 50 RegisterObject(Model); … … 72 73 73 74 XMLPortParam(Model, "mesh", setMeshSource, getMeshSource, xmlelement, mode); 75 XMLPortParam(Model, "renderQueueGroup", setRenderQueueGroup, getRenderQueueGroup, xmlelement, mode); 76 XMLPortParam(Model, "material", setMaterial, getMaterial, xmlelement, mode); 74 77 XMLPortParam(Model, "shadow", setCastShadows, getCastShadows, xmlelement, mode).defaultValues(true); 75 78 } 79 80 /** 81 @brief 82 This function turns a string from XML Port into a usable ID for the rendering system 83 It defaults to the main queue if the group isn't recognized. 84 85 @param renderQueueGroup 86 This is a string representing the render queue group. Accepted values: 87 'main', 'stencil glow', 'stencil object' 88 */ 89 const unsigned int Model::getRenderQueueGroupID(const std::string& renderQueueGroup) const 90 { 91 if(renderQueueGroup.compare("stencil glow")==0) 92 { 93 return RENDER_QUEUE_STENCIL_GLOW; 94 } 95 if(renderQueueGroup.compare("stencil object")==0) 96 { 97 return RENDER_QUEUE_STENCIL_OBJECTS; 98 } 99 return RENDER_QUEUE_MAIN; 100 } 76 101 77 102 void Model::registerVariables() 78 103 { 79 104 registerVariable(this->meshSrc_, VariableDirection::ToClient, new NetworkCallback<Model>(this, &Model::changedMesh)); 105 registerVariable(this->renderQueueGroup_, VariableDirection::ToClient, new NetworkCallback<Model>(this, &Model::changedRenderQueueGroup)); 106 registerVariable(this->materialName_, VariableDirection::ToClient, new NetworkCallback<Model>(this, &Model::changedMaterial)); 80 107 registerVariable(this->bCastShadows_, VariableDirection::ToClient, new NetworkCallback<Model>(this, &Model::changedShadows)); 81 108 } … … 104 131 this->attachOgreObject(this->mesh_.getEntity()); 105 132 this->mesh_.getEntity()->setCastShadows(this->bCastShadows_); 133 this->mesh_.getEntity()->setRenderQueueGroup(this->renderQueueGroup_); 106 134 this->mesh_.setVisible(this->isVisible()); 107 135 … … 110 138 } 111 139 } 140 } 141 142 void Model::changedRenderQueueGroup() 143 { 144 if (GameMode::showsGraphics()) 145 { 146 if (this->mesh_.getEntity()) 147 { 148 this->mesh_.getEntity()->setRenderQueueGroup(this->renderQueueGroup_); 149 } 150 } 151 } 152 153 void Model::changedMaterial() 154 { 155 this->mesh_.setMaterial(this->materialName_); 112 156 } 113 157
Note: See TracChangeset
for help on using the changeset viewer.