1 /* 2 Copyright (c) 2008-2009 NetAllied Systems GmbH 3 4 This file is part of MayaDataModel. 5 6 Licensed under the MIT Open Source License, 7 for details please see LICENSE file or the website 8 http://www.opensource.org/licenses/mit-license.php 9 */ 10 #ifndef __MayaDM_DISPLAYLAYER_H__ 11 #define __MayaDM_DISPLAYLAYER_H__ 12 #include "MayaDMTypes.h" 13 #include "MayaDMConnectables.h" 14 #include "MayaDMDependNode.h" 15 namespace MayaDM 16 { 17 class DisplayLayer : public DependNode 18 { 19 public: 20 struct DrawInfo{ 21 unsigned int displayType; 22 unsigned int levelOfDetail; 23 bool shading; 24 bool texturing; 25 bool playback; 26 bool enabled; 27 bool visibility; 28 unsigned char color; writeDrawInfo29 void write(FILE* file) const 30 { 31 fprintf(file,"%i ", displayType); 32 fprintf(file,"%i ", levelOfDetail); 33 fprintf(file,"%i ", shading); 34 fprintf(file,"%i ", texturing); 35 fprintf(file,"%i ", playback); 36 fprintf(file,"%i ", enabled); 37 fprintf(file,"%i ", visibility); 38 fprintf(file,"%i", color); 39 } 40 }; 41 public: 42 DisplayLayer()43 DisplayLayer():DependNode(){} 44 DisplayLayer(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true) 45 :DependNode(file, name, parent, "displayLayer", shared, create){} ~DisplayLayer()46 virtual ~DisplayLayer(){} 47 setIdentification(short id)48 void setIdentification(short id) 49 { 50 if(id == 0) return; 51 fprintf(mFile,"\tsetAttr \".id\" %i;\n", id); 52 } setDrawInfo(const DrawInfo & di)53 void setDrawInfo(const DrawInfo& di) 54 { 55 fprintf(mFile,"\tsetAttr \".di\" "); 56 di.write(mFile); 57 fprintf(mFile,";\n"); 58 } setDisplayType(unsigned int dt)59 void setDisplayType(unsigned int dt) 60 { 61 if(dt == 0) return; 62 fprintf(mFile,"\tsetAttr \".di.dt\" %i;\n", dt); 63 } setLevelOfDetail(unsigned int lod)64 void setLevelOfDetail(unsigned int lod) 65 { 66 if(lod == 0) return; 67 fprintf(mFile,"\tsetAttr \".di.lod\" %i;\n", lod); 68 } setShading(bool s)69 void setShading(bool s) 70 { 71 if(s == true) return; 72 fprintf(mFile,"\tsetAttr \".di.s\" %i;\n", s); 73 } setTexturing(bool t)74 void setTexturing(bool t) 75 { 76 if(t == true) return; 77 fprintf(mFile,"\tsetAttr \".di.t\" %i;\n", t); 78 } setPlayback(bool p)79 void setPlayback(bool p) 80 { 81 if(p == true) return; 82 fprintf(mFile,"\tsetAttr \".di.p\" %i;\n", p); 83 } setEnabled(bool e)84 void setEnabled(bool e) 85 { 86 if(e == true) return; 87 fprintf(mFile,"\tsetAttr \".di.e\" %i;\n", e); 88 } setVisibility(bool v)89 void setVisibility(bool v) 90 { 91 if(v == true) return; 92 fprintf(mFile,"\tsetAttr \".di.v\" %i;\n", v); 93 } setColor(unsigned char c)94 void setColor(unsigned char c) 95 { 96 if(c == 0) return; 97 fprintf(mFile,"\tsetAttr \".di.c\" %i;\n", c); 98 } setDisplayOrder(short do_)99 void setDisplayOrder(short do_) 100 { 101 if(do_ == 0) return; 102 fprintf(mFile,"\tsetAttr \".do\" %i;\n", do_); 103 } getIdentification()104 void getIdentification()const 105 { 106 fprintf(mFile,"\"%s.id\"",mName.c_str()); 107 } getDrawInfo()108 void getDrawInfo()const 109 { 110 fprintf(mFile,"\"%s.di\"",mName.c_str()); 111 } getDisplayType()112 void getDisplayType()const 113 { 114 fprintf(mFile,"\"%s.di.dt\"",mName.c_str()); 115 } getLevelOfDetail()116 void getLevelOfDetail()const 117 { 118 fprintf(mFile,"\"%s.di.lod\"",mName.c_str()); 119 } getShading()120 void getShading()const 121 { 122 fprintf(mFile,"\"%s.di.s\"",mName.c_str()); 123 } getTexturing()124 void getTexturing()const 125 { 126 fprintf(mFile,"\"%s.di.t\"",mName.c_str()); 127 } getPlayback()128 void getPlayback()const 129 { 130 fprintf(mFile,"\"%s.di.p\"",mName.c_str()); 131 } getEnabled()132 void getEnabled()const 133 { 134 fprintf(mFile,"\"%s.di.e\"",mName.c_str()); 135 } getVisibility()136 void getVisibility()const 137 { 138 fprintf(mFile,"\"%s.di.v\"",mName.c_str()); 139 } getColor()140 void getColor()const 141 { 142 fprintf(mFile,"\"%s.di.c\"",mName.c_str()); 143 } getDisplayOrder()144 void getDisplayOrder()const 145 { 146 fprintf(mFile,"\"%s.do\"",mName.c_str()); 147 } 148 protected: 149 DisplayLayer(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true) DependNode(file,name,parent,nodeType,shared,create)150 :DependNode(file, name, parent, nodeType, shared, create) {} 151 152 }; 153 }//namespace MayaDM 154 #endif//__MayaDM_DISPLAYLAYER_H__ 155