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_HAIRCONSTRAINT_H__ 11 #define __MayaDM_HAIRCONSTRAINT_H__ 12 #include "MayaDMTypes.h" 13 #include "MayaDMConnectables.h" 14 #include "MayaDMShape.h" 15 namespace MayaDM 16 { 17 class HairConstraint : public Shape 18 { 19 public: 20 public: 21 HairConstraint()22 HairConstraint():Shape(){} 23 HairConstraint(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true) 24 :Shape(file, name, parent, "hairConstraint", shared, create){} ~HairConstraint()25 virtual ~HairConstraint(){} 26 setCurveIndices(size_t cin_i,int cin)27 void setCurveIndices(size_t cin_i,int cin) 28 { 29 if(cin == 0) return; 30 fprintf(mFile,"\tsetAttr \".cin[%i]\" %i;\n", cin_i,cin); 31 } setCurveIndices(size_t cin_start,size_t cin_end,int * cin)32 void setCurveIndices(size_t cin_start,size_t cin_end,int* cin) 33 { 34 fprintf(mFile,"\tsetAttr \".cin[%i:%i]\" ", cin_start,cin_end); 35 size_t size = (cin_end-cin_start)*1+1; 36 for(size_t i=0;i<size;++i) 37 { 38 fprintf(mFile,"%i",cin[i]); 39 if(i+1<size) fprintf(mFile," "); 40 } 41 fprintf(mFile,";\n"); 42 } startCurveIndices(size_t cin_start,size_t cin_end)43 void startCurveIndices(size_t cin_start,size_t cin_end)const 44 { 45 fprintf(mFile,"\tsetAttr \".cin[%i:%i]\"",cin_start,cin_end); 46 } appendCurveIndices(int cin)47 void appendCurveIndices(int cin)const 48 { 49 fprintf(mFile," %i",cin); 50 } endCurveIndices()51 void endCurveIndices()const 52 { 53 fprintf(mFile,";\n"); 54 } setConstraintMethod(unsigned int cm)55 void setConstraintMethod(unsigned int cm) 56 { 57 if(cm == 1) return; 58 fprintf(mFile,"\tsetAttr \".cm\" %i;\n", cm); 59 } setPointMethod(unsigned int pmt)60 void setPointMethod(unsigned int pmt) 61 { 62 if(pmt == 0) return; 63 fprintf(mFile,"\tsetAttr \".pmt\" %i;\n", pmt); 64 } setStiffness(double stf)65 void setStiffness(double stf) 66 { 67 if(stf == 0.5) return; 68 fprintf(mFile,"\tsetAttr \".stf\" %f;\n", stf); 69 } setGlueStrength(double gst)70 void setGlueStrength(double gst) 71 { 72 if(gst == 1.0) return; 73 fprintf(mFile,"\tsetAttr \".gst\" %f;\n", gst); 74 } setUParameter(double upr)75 void setUParameter(double upr) 76 { 77 if(upr == 1.0) return; 78 fprintf(mFile,"\tsetAttr \".upr\" %f;\n", upr); 79 } setUDistance(double udi)80 void setUDistance(double udi) 81 { 82 if(udi == 1.0) return; 83 fprintf(mFile,"\tsetAttr \".udi\" %f;\n", udi); 84 } getCurveIndices(size_t cin_i)85 void getCurveIndices(size_t cin_i)const 86 { 87 fprintf(mFile,"\"%s.cin[%i]\"",mName.c_str(),cin_i); 88 } getCurveIndices()89 void getCurveIndices()const 90 { 91 92 fprintf(mFile,"\"%s.cin\"",mName.c_str()); 93 } getConstraintMethod()94 void getConstraintMethod()const 95 { 96 fprintf(mFile,"\"%s.cm\"",mName.c_str()); 97 } getPointMethod()98 void getPointMethod()const 99 { 100 fprintf(mFile,"\"%s.pmt\"",mName.c_str()); 101 } getStiffness()102 void getStiffness()const 103 { 104 fprintf(mFile,"\"%s.stf\"",mName.c_str()); 105 } getGlueStrength()106 void getGlueStrength()const 107 { 108 fprintf(mFile,"\"%s.gst\"",mName.c_str()); 109 } getUParameter()110 void getUParameter()const 111 { 112 fprintf(mFile,"\"%s.upr\"",mName.c_str()); 113 } getUDistance()114 void getUDistance()const 115 { 116 fprintf(mFile,"\"%s.udi\"",mName.c_str()); 117 } getOutPin(size_t opn_i)118 void getOutPin(size_t opn_i)const 119 { 120 fprintf(mFile,"\"%s.opn[%i]\"",mName.c_str(),opn_i); 121 } getOutPin()122 void getOutPin()const 123 { 124 125 fprintf(mFile,"\"%s.opn\"",mName.c_str()); 126 } 127 protected: 128 HairConstraint(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true) Shape(file,name,parent,nodeType,shared,create)129 :Shape(file, name, parent, nodeType, shared, create) {} 130 131 }; 132 }//namespace MayaDM 133 #endif//__MayaDM_HAIRCONSTRAINT_H__ 134