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