~ubuntu-branches/ubuntu/wily/opencollada/wily

« back to all changes in this revision

Viewing changes to Externals/MayaDataModel/include/MayaDMDagPose.h

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2015-05-14 17:23:27 UTC
  • Revision ID: package-import@ubuntu.com-20150514172327-f862u8envms01fra
Tags: upstream-0.1.0~20140703.ddf8f47+dfsg1
ImportĀ upstreamĀ versionĀ 0.1.0~20140703.ddf8f47+dfsg1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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_DAGPOSE_H__
 
11
#define __MayaDM_DAGPOSE_H__
 
12
#include "MayaDMTypes.h"
 
13
#include "MayaDMConnectables.h"
 
14
#include "MayaDMDependNode.h"
 
15
namespace MayaDM
 
16
{
 
17
class DagPose : public DependNode
 
18
{
 
19
public:
 
20
public:
 
21
 
 
22
        DagPose():DependNode(){}
 
23
        DagPose(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
 
24
                :DependNode(file, name, parent, "dagPose", shared, create){}
 
25
        virtual ~DagPose(){}
 
26
 
 
27
        void setWorldMatrix(size_t wm_i,const matrix& wm)
 
28
        {
 
29
                if(wm == identity) return;
 
30
                fprintf(mFile,"\tsetAttr \".wm[%i]\" -type \"matrix\" ",wm_i);
 
31
                wm.write(mFile);
 
32
                fprintf(mFile,";\n");
 
33
        }
 
34
        void setWorldMatrix(size_t wm_start,size_t wm_end,matrix* wm)
 
35
        {
 
36
                fprintf(mFile,"\tsetAttr \".wm[%i:%i]\" ", wm_start,wm_end);
 
37
                size_t size = (wm_end-wm_start)*1+1;
 
38
                for(size_t i=0;i<size;++i)
 
39
                {
 
40
                        wm[i].write(mFile);
 
41
                        fprintf(mFile,"\n");
 
42
                }
 
43
                fprintf(mFile,";\n");
 
44
        }
 
45
        void startWorldMatrix(size_t wm_start,size_t wm_end)const
 
46
        {
 
47
                fprintf(mFile,"\tsetAttr \".wm[%i:%i]\"",wm_start,wm_end);
 
48
                fprintf(mFile," -type \"matrix\" ");
 
49
        }
 
50
        void appendWorldMatrix(const matrix& wm)const
 
51
        {
 
52
                fprintf(mFile," ");
 
53
                wm.write(mFile);
 
54
        }
 
55
        void endWorldMatrix()const
 
56
        {
 
57
                fprintf(mFile,";\n");
 
58
        }
 
59
        void setXformMatrix(size_t xm_i,const matrix& xm)
 
60
        {
 
61
                if(xm == identity) return;
 
62
                fprintf(mFile,"\tsetAttr \".xm[%i]\" -type \"matrix\" ",xm_i);
 
63
                xm.write(mFile);
 
64
                fprintf(mFile,";\n");
 
65
        }
 
66
        void setXformMatrix(size_t xm_start,size_t xm_end,matrix* xm)
 
67
        {
 
68
                fprintf(mFile,"\tsetAttr \".xm[%i:%i]\" ", xm_start,xm_end);
 
69
                size_t size = (xm_end-xm_start)*1+1;
 
70
                for(size_t i=0;i<size;++i)
 
71
                {
 
72
                        xm[i].write(mFile);
 
73
                        fprintf(mFile,"\n");
 
74
                }
 
75
                fprintf(mFile,";\n");
 
76
        }
 
77
        void startXformMatrix(size_t xm_start,size_t xm_end)const
 
78
        {
 
79
                fprintf(mFile,"\tsetAttr \".xm[%i:%i]\"",xm_start,xm_end);
 
80
                fprintf(mFile," -type \"matrix\" ");
 
81
        }
 
82
        void appendXformMatrix(const matrix& xm)const
 
83
        {
 
84
                fprintf(mFile," ");
 
85
                xm.write(mFile);
 
86
        }
 
87
        void endXformMatrix()const
 
88
        {
 
89
                fprintf(mFile,";\n");
 
90
        }
 
91
        void setGlobal(size_t g_i,bool g)
 
92
        {
 
93
                if(g == false) return;
 
94
                fprintf(mFile,"\tsetAttr \".g[%i]\" %i;\n", g_i,g);
 
95
        }
 
96
        void setGlobal(size_t g_start,size_t g_end,bool* g)
 
97
        {
 
98
                fprintf(mFile,"\tsetAttr \".g[%i:%i]\" ", g_start,g_end);
 
99
                size_t size = (g_end-g_start)*1+1;
 
100
                for(size_t i=0;i<size;++i)
 
101
                {
 
102
                        fprintf(mFile,"%i",g[i]);
 
103
                        if(i+1<size) fprintf(mFile," ");
 
104
                }
 
105
                fprintf(mFile,";\n");
 
106
        }
 
107
        void startGlobal(size_t g_start,size_t g_end)const
 
108
        {
 
109
                fprintf(mFile,"\tsetAttr \".g[%i:%i]\"",g_start,g_end);
 
110
        }
 
111
        void appendGlobal(bool g)const
 
112
        {
 
113
                fprintf(mFile," %i",g);
 
114
        }
 
115
        void endGlobal()const
 
116
        {
 
117
                fprintf(mFile,";\n");
 
118
        }
 
119
        void setBindPose(bool bp)
 
120
        {
 
121
                if(bp == false) return;
 
122
                fprintf(mFile,"\tsetAttr \".bp\" %i;\n", bp);
 
123
        }
 
124
        void getWorldMatrix(size_t wm_i)const
 
125
        {
 
126
                fprintf(mFile,"\"%s.wm[%i]\"",mName.c_str(),wm_i);
 
127
        }
 
128
        void getWorldMatrix()const
 
129
        {
 
130
 
 
131
                fprintf(mFile,"\"%s.wm\"",mName.c_str());
 
132
        }
 
133
        void getMembers(size_t m_i)const
 
134
        {
 
135
                fprintf(mFile,"\"%s.m[%i]\"",mName.c_str(),m_i);
 
136
        }
 
137
        void getMembers()const
 
138
        {
 
139
 
 
140
                fprintf(mFile,"\"%s.m\"",mName.c_str());
 
141
        }
 
142
        void getParents(size_t p_i)const
 
143
        {
 
144
                fprintf(mFile,"\"%s.p[%i]\"",mName.c_str(),p_i);
 
145
        }
 
146
        void getParents()const
 
147
        {
 
148
 
 
149
                fprintf(mFile,"\"%s.p\"",mName.c_str());
 
150
        }
 
151
        void getWorld()const
 
152
        {
 
153
                fprintf(mFile,"\"%s.w\"",mName.c_str());
 
154
        }
 
155
protected:
 
156
        DagPose(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
 
157
                :DependNode(file, name, parent, nodeType, shared, create) {}
 
158
 
 
159
};
 
160
}//namespace MayaDM
 
161
#endif//__MayaDM_DAGPOSE_H__