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

« back to all changes in this revision

Viewing changes to Externals/MayaDataModel/include/MayaDMGeometryFilter.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_GEOMETRYFILTER_H__
 
11
#define __MayaDM_GEOMETRYFILTER_H__
 
12
#include "MayaDMTypes.h"
 
13
#include "MayaDMConnectables.h"
 
14
#include "MayaDMDependNode.h"
 
15
namespace MayaDM
 
16
{
 
17
class GeometryFilter : public DependNode
 
18
{
 
19
public:
 
20
        struct Input{
 
21
                int groupId;
 
22
                void write(FILE* file) const
 
23
                {
 
24
                        fprintf(file,"%i", groupId);
 
25
                }
 
26
        };
 
27
public:
 
28
 
 
29
        GeometryFilter():DependNode(){}
 
30
        GeometryFilter(FILE* file,const std::string& name,const std::string& parent="",bool shared=false,bool create=true)
 
31
                :DependNode(file, name, parent, "geometryFilter", shared, create){}
 
32
        virtual ~GeometryFilter(){}
 
33
 
 
34
        void setInput(size_t ip_i,const Input& ip)
 
35
        {
 
36
                fprintf(mFile,"\tsetAttr \".ip[%i]\" ",ip_i);
 
37
                ip.write(mFile);
 
38
                fprintf(mFile,";\n");
 
39
        }
 
40
        void setInput(size_t ip_start,size_t ip_end,Input* ip)
 
41
        {
 
42
                fprintf(mFile,"\tsetAttr \".ip[%i:%i]\" ", ip_start,ip_end);
 
43
                size_t size = (ip_end-ip_start)*1+1;
 
44
                for(size_t i=0;i<size;++i)
 
45
                {
 
46
                        ip[i].write(mFile);
 
47
                        fprintf(mFile,"\n");
 
48
                }
 
49
                fprintf(mFile,";\n");
 
50
        }
 
51
        void startInput(size_t ip_start,size_t ip_end)const
 
52
        {
 
53
                fprintf(mFile,"\tsetAttr \".ip[%i:%i]\"",ip_start,ip_end);
 
54
                fprintf(mFile," -type \"Input\" ");
 
55
        }
 
56
        void appendInput(const Input& ip)const
 
57
        {
 
58
                fprintf(mFile," ");
 
59
                ip.write(mFile);
 
60
        }
 
61
        void endInput()const
 
62
        {
 
63
                fprintf(mFile,";\n");
 
64
        }
 
65
        void setGroupId(size_t ip_i,int gi)
 
66
        {
 
67
                if(gi == 0) return;
 
68
                fprintf(mFile,"\tsetAttr \".ip[%i].gi\" %i;\n", ip_i,gi);
 
69
        }
 
70
        void setEnvelope(float en)
 
71
        {
 
72
                if(en == 1) return;
 
73
                fprintf(mFile,"\tsetAttr \".en\" %f;\n", en);
 
74
        }
 
75
        void getInput(size_t ip_i)const
 
76
        {
 
77
                fprintf(mFile,"\"%s.ip[%i]\"",mName.c_str(),ip_i);
 
78
        }
 
79
        void getInput()const
 
80
        {
 
81
 
 
82
                fprintf(mFile,"\"%s.ip\"",mName.c_str());
 
83
        }
 
84
        void getInputGeometry(size_t ip_i)const
 
85
        {
 
86
                fprintf(mFile,"\"%s.ip[%i].ig\"",mName.c_str(),ip_i);
 
87
        }
 
88
        void getInputGeometry()const
 
89
        {
 
90
 
 
91
                fprintf(mFile,"\"%s.ip.ig\"",mName.c_str());
 
92
        }
 
93
        void getGroupId(size_t ip_i)const
 
94
        {
 
95
                fprintf(mFile,"\"%s.ip[%i].gi\"",mName.c_str(),ip_i);
 
96
        }
 
97
        void getGroupId()const
 
98
        {
 
99
 
 
100
                fprintf(mFile,"\"%s.ip.gi\"",mName.c_str());
 
101
        }
 
102
        void getOutputGeometry(size_t og_i)const
 
103
        {
 
104
                fprintf(mFile,"\"%s.og[%i]\"",mName.c_str(),og_i);
 
105
        }
 
106
        void getOutputGeometry()const
 
107
        {
 
108
 
 
109
                fprintf(mFile,"\"%s.og\"",mName.c_str());
 
110
        }
 
111
        void getEnvelope()const
 
112
        {
 
113
                fprintf(mFile,"\"%s.en\"",mName.c_str());
 
114
        }
 
115
        void getFunction()const
 
116
        {
 
117
                fprintf(mFile,"\"%s.f\"",mName.c_str());
 
118
        }
 
119
        void getFchild1()const
 
120
        {
 
121
                fprintf(mFile,"\"%s.f.f1\"",mName.c_str());
 
122
        }
 
123
        void getFchild2()const
 
124
        {
 
125
                fprintf(mFile,"\"%s.f.f2\"",mName.c_str());
 
126
        }
 
127
        void getFchild3()const
 
128
        {
 
129
                fprintf(mFile,"\"%s.f.f3\"",mName.c_str());
 
130
        }
 
131
        void getMap64BitIndices()const
 
132
        {
 
133
                fprintf(mFile,"\"%s.map\"",mName.c_str());
 
134
        }
 
135
protected:
 
136
        GeometryFilter(FILE* file,const std::string& name,const std::string& parent,const std::string& nodeType,bool shared=false,bool create=true)
 
137
                :DependNode(file, name, parent, nodeType, shared, create) {}
 
138
 
 
139
};
 
140
}//namespace MayaDM
 
141
#endif//__MayaDM_GEOMETRYFILTER_H__