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_GRAVITYFIELD_H__ 11 #define __MayaDM_GRAVITYFIELD_H__ 12 #include "MayaDMTypes.h" 13 #include "MayaDMConnectables.h" 14 #include "MayaDMField.h" 15 namespace MayaDM 16 { 17 class GravityField : public Field 18 { 19 public: 20 struct Direction{ 21 double directionX; 22 double directionY; 23 double directionZ; writeDirection24 void write(FILE* file) const 25 { 26 fprintf(file,"%f ", directionX); 27 fprintf(file,"%f ", directionY); 28 fprintf(file,"%f", directionZ); 29 } 30 }; 31 public: 32 GravityField()33 GravityField():Field(){} 34 GravityField(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true) 35 :Field(file, name, parent, "gravityField", shared, create){} ~GravityField()36 virtual ~GravityField(){} 37 setDirection(const Direction & d)38 void setDirection(const Direction& d) 39 { 40 fprintf(mFile,"\tsetAttr \".d\" "); 41 d.write(mFile); 42 fprintf(mFile,";\n"); 43 } setDirectionX(double dx)44 void setDirectionX(double dx) 45 { 46 if(dx == 0.0) return; 47 fprintf(mFile,"\tsetAttr \".d.dx\" %f;\n", dx); 48 } setDirectionY(double dy)49 void setDirectionY(double dy) 50 { 51 if(dy == 0.0) return; 52 fprintf(mFile,"\tsetAttr \".d.dy\" %f;\n", dy); 53 } setDirectionZ(double dz)54 void setDirectionZ(double dz) 55 { 56 if(dz == 0.0) return; 57 fprintf(mFile,"\tsetAttr \".d.dz\" %f;\n", dz); 58 } getDirection()59 void getDirection()const 60 { 61 fprintf(mFile,"\"%s.d\"",mName.c_str()); 62 } getDirectionX()63 void getDirectionX()const 64 { 65 fprintf(mFile,"\"%s.d.dx\"",mName.c_str()); 66 } getDirectionY()67 void getDirectionY()const 68 { 69 fprintf(mFile,"\"%s.d.dy\"",mName.c_str()); 70 } getDirectionZ()71 void getDirectionZ()const 72 { 73 fprintf(mFile,"\"%s.d.dz\"",mName.c_str()); 74 } 75 protected: 76 GravityField(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true) Field(file,name,parent,nodeType,shared,create)77 :Field(file, name, parent, nodeType, shared, create) {} 78 79 }; 80 }//namespace MayaDM 81 #endif//__MayaDM_GRAVITYFIELD_H__ 82