00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "singlematnode.h"
00023 #include <zeitgeist/logserver/logserver.h>
00024 #include <kerosin/materialserver/materialserver.h>
00025
00026 using namespace boost;
00027 using namespace kerosin;
00028 using namespace zeitgeist;
00029
00030 SingleMatNode::SingleMatNode() : StaticMesh ()
00031 {
00032 }
00033
00034 SingleMatNode::~SingleMatNode()
00035 {
00036 }
00037
00038 bool SingleMatNode::SetMaterial(const std::string& name)
00039 {
00040 mMaterials.clear();
00041
00042 shared_ptr<MaterialServer> materialServer = shared_dynamic_cast<MaterialServer>
00043 (GetCore()->Get("/sys/server/material"));
00044
00045 if (materialServer.get() == 0)
00046 {
00047 GetLog()->Error()
00048 << "(SingleMatNode) ERROR: Cannot find MaterialServer\n";
00049 return false;
00050 }
00051
00052 shared_ptr<Material> material = materialServer->GetMaterial(name);
00053
00054 if (material.get() == 0)
00055 {
00056 return false;
00057 }
00058
00059 mMaterials.push_back(material);
00060
00061 return true;
00062 }
00063
00064 shared_ptr<Material> SingleMatNode::GetMaterial()
00065 {
00066 if (mMaterials.empty())
00067 {
00068 return shared_ptr<Material>();
00069 }
00070
00071 return mMaterials.front();
00072 }
00073