1 /*
2     Copyright (c) 2008-2009 NetAllied Systems GmbH
3 
4 	This file is part of COLLADAMaya.
5 
6     Portions of the code are:
7     Copyright (c) 2005-2007 Feeling Software Inc.
8     Copyright (c) 2005-2007 Sony Computer Entertainment America
9     Copyright (c) 2004-2005 Alias Systems Corp.
10 
11     Licensed under the MIT Open Source License,
12     for details please see LICENSE file or the website
13     http://www.opensource.org/licenses/mit-license.php
14 */
15 
16 #ifndef __COLLADA_MAYA_SYNTAX_H__
17 #define __COLLADA_MAYA_SYNTAX_H__
18 
19 #include "COLLADAMayaPrerequisites.h"
20 #include "COLLADABUVersionInfo.h"
21 
22 namespace COLLADAMaya
23 {
24     // COLLADA NetAllied Systems
25     static const char* TRANSLATOR_VENDOR                            = "NetAllied Systems GmbH";
26     static const char* USERNAME                                     = "USERNAME";
27     static const char* USER                                         = "USER";
28 
29     // Names for the creation of the plug-in
30     static const char* COLLADA_EXPORTER                             = "OpenCOLLADA exporter";
31     static const char* COLLADA_IMPORTER                             = "OpenCOLLADA importer";
32     static const char* COLLADA_DOCUMENT                             = "colladaDocument";
33     static const String AUTHORING_TOOL_NAME                         = "OpenCOLLADA";
34 
35     /** Profile specific extra attribute parameters. */
36     static const char* PROFILE_COLLADA                              = "COLLADA";
37     static const String PROFILE_MAYA                                 = "OpenCOLLADAMaya";
38     static const char* PROFILE_MAX                                  = "OpenCOLLADA3dsMax";
39 
40     /** Extra technique parameters. */
41     static const String PARAMETER_MAYA_ID                           = "originalMayaNodeId";
42     static const String PARAMETER_DOUBLE_SIDED                      = "double_sided";
43 	static const String PARAMETER_PROXY								= "proxy";
44 	static const String PARAMETER_EVENT								= "event";
45 
46     /** Empty strings. */
47     static const String EMPTY_STRING                                = "";
48     static const char* EMPTY_CSTRING                                = "";
49 
50     /** The unique name for the visual scene node on export. */
51     static const String VISUAL_SCENE_NODE_ID                        = "VisualSceneNode";
52 
53 	/** The unique name for the physics scene node on export. */
54 	static const String PHYSICS_SCENE_NODE_ID						= "collada_physics_scene";
55 
56 
57     /** The standard name for the collada id attribute. */
58     static const String COLLADA_ID_ATTRIBUTE_NAME                   = "colladaId";
59     static const String COLLADA_EFFECT_ID_ATTRIBUTE_NAME            = "colladaEffectId";
60     static const String COLLADA_MATERIAL_ID_ATTRIBUTE_NAME          = "colladaMaterialId";
61     static const String COLLADA_EFFECT_COMMON_ID_ATTRIBUTE_NAME     = "colladaEffectCommonId";
62 
63     /** Node types. */
64     static const char* NODE_TYPE_NODE                               = "NODE";
65     static const char* NODE_TYPE_JOINT                              = "JOINT";
66 
67     // Mel-Scripts
68     // Name of a MEL script that will be used to display the contents of the
69     // options dialog during file open and save
70     static const char*  MEL_EXPORT_OPTS                                   = "openColladaExporterOpts";
71     static const char*  MEL_IMPORT_OPTS                                   = "openColladaImporterOpts";
72 
73     // COLLADA 1.4 Maya-specific definitions
74     static const char* MAYA_TEXTURE_NODETYPE                        = "dgnode_type";
75     static const char* MAYA_TEXTURE_FILETEXTURE                     = "kFile";
76     static const char* MAYA_TEXTURE_PSDTEXTURE                      = "kPSDFile";
77     static const char* MAYA_TEXTURE_IMAGE_SEQUENCE                  = "image_sequence";
78 
79     static const char* MAYA_PENUMBRA_LIGHT_PARAMETER				= "penumbra_angle";
80     static const char* MAYA_DROPOFF_LIGHT_PARAMETER					= "dropoff";
81     static const char* MAYA_AMBIENTSHADE_LIGHT_PARAMETER			= "ambient_shade";
82 
83     // COLLADA 1.3 Maya-specific definitions
84     static const char* MAYA_BLINDNAME_PARAMETER                     = "BLINDNAME";
85     static const char* MAYA_BLINDTYPEID_PARAMETER                   = "BLINDTYPEID";
86     static const char* MAYA_DOUBLE_SIDED_PARAMETER                  = "DOUBLE_SIDED";
87     static const char* MAYA_LAYER_PARAMETER                         = "layer";
88     static const char* MAYA_LONGNAME_PARAMETER                      = "long_name";
89     static const char* MAYA_PREINFINITY_PARAMETER                   = "pre_infinity";
90     static const char* MAYA_POSTINFINITY_PARAMETER                  = "post_infinity";
91     static const char* MAYA_SHORTNAME_PARAMETER                     = "short_name";
92 
93     static const char* MAYA_TEXTURE_WRAPU_PARAMETER                 = "wrapU";
94     static const char* MAYA_TEXTURE_WRAPV_PARAMETER                 = "wrapV";
95     static const char* MAYA_TEXTURE_MIRRORU_PARAMETER               = "mirrorU";
96     static const char* MAYA_TEXTURE_MIRRORV_PARAMETER               = "mirrorV";
97     static const char* MAYA_TEXTURE_COVERAGEU_PARAMETER             = "coverageU";
98     static const char* MAYA_TEXTURE_COVERAGEV_PARAMETER             = "coverageV";
99     static const char* MAYA_TEXTURE_TRANSFRAMEU_PARAMETER           = "translateFrameU";
100     static const char* MAYA_TEXTURE_TRANSFRAMEV_PARAMETER           = "translateFrameV";
101     static const char* MAYA_TEXTURE_ROTFRAME_PARAMETER              = "rotateFrame";
102     static const char* MAYA_TEXTURE_STAGGER_PARAMETER               = "stagger";
103     static const char* MAYA_TEXTURE_REPEATU_PARAMETER               = "repeatU";
104     static const char* MAYA_TEXTURE_REPEATV_PARAMETER               = "repeatV";
105     static const char* MAYA_TEXTURE_OFFSETU_PARAMETER               = "offsetU";
106     static const char* MAYA_TEXTURE_OFFSETV_PARAMETER               = "offsetV";
107     static const char* MAYA_TEXTURE_ROTATEUV_PARAMETER              = "rotateUV";
108     static const char* MAYA_TEXTURE_NOISEU_PARAMETER                = "noiseU";
109     static const char* MAYA_TEXTURE_NOISEV_PARAMETER                = "noiseV";
110     static const char* MAYA_TEXTURE_FAST_PARAMETER                  = "fast";
111     static const char* MAYA_TEXTURE_BLENDMODE_PARAMETER             = "blend_mode";
112 
113     static const char* MAYA_PROJECTION_ELEMENT                      = "projection";
114     static const char* MAYA_PROJECTION_TYPE_PARAMETER               = "type";
115     static const char* MAYA_PROJECTION_MATRIX_PARAMETER             = "matrix";
116 
117     // ColladaMaya enumerated types
118     static const char* MAYA_CONSTANT_INFINITY                       = "CONSTANT";
119     static const char* MAYA_LINEAR_INFINITY                         = "LINEAR";
120     static const char* MAYA_CYCLE_INFINITY                          = "CYCLE";
121     static const char* MAYA_CYCLE_RELATIVE_INFINITY                 = "CYCLE_RELATIVE";
122     static const char* MAYA_OSCILLATE_INFINITY                      = "OSCILLATE";
123 
124     static const char* MAYA_BLENDMODE_NONE                          = "NONE";
125     static const char* MAYA_BLENDMODE_OVER                          = "OVER";
126     static const char* MAYA_BLENDMODE_IN                            = "IN";
127     static const char* MAYA_BLENDMODE_OUT                           = "OUT";
128     static const char* MAYA_BLENDMODE_ADD                           = "ADD";
129     static const char* MAYA_BLENDMODE_SUBTRACT                      = "SUBTRACT";
130     static const char* MAYA_BLENDMODE_MULTIPLY                      = "MULTIPLY";
131     static const char* MAYA_BLENDMODE_DIFFERENCE                    = "DIFFERENCE";
132     static const char* MAYA_BLENDMODE_LIGHTEN                       = "LIGHTEN";
133     static const char* MAYA_BLENDMODE_DARKEN                        = "DARKEN";
134     static const char* MAYA_BLENDMODE_SATURATE                      = "SATURATE";
135     static const char* MAYA_BLENDMODE_DESATURATE                    = "DESATURATE";
136     static const char* MAYA_BLENDMODE_ILLUMINATE                    = "ILLUMINATE";
137 
138     static const char* MAYA_NOTE_PARAMETER                          = "note";
139     static const char* MAYA_ENDTIME_PARAMETER                       = "end_time";
140     static const char* MAYA_STARTTIME_PARAMETER                     = "start_time";
141     static const char* MAYA_SEGMENTSCALECOMP_PARAMETER              = "segment_scale_compensate";
142     static const char* MAYA_BUMP_PARAMETER                          = "bump";
143 
144     /** Parameters for the animation exports. */
145     static const String EMPTY_PARAMETER[1]                          = { "" };
146     static const String X_PARAMETER[1]                              = { "X" };
147     static const String Y_PARAMETER[1]                              = { "Y" };
148     static const String Z_PARAMETER[1]                              = { "Z" };
149     static const String XY_PARAMETER[1]                             = { "XY" };
150     static const String XZ_PARAMETER[1]                             = { "XZ" };
151     static const String YZ_PARAMETER[1]                             = { "YZ" };
152     static const String XY_PARAMETERS[2]                            = { "X", "Y" };
153     static const String XYZ_PARAMETERS[3]                           = { "X", "Y", "Z" };
154     static const String ZYX_PARAMETERS[3]                           = { "Z", "Y", "X" };
155     static const String XYZW_PARAMETERS[4]                          = { "X", "Y", "Z", "W" };
156     static const String STPQ_PARAMETERS[4]                          = { "S", "T", "P", "Q" };
157     static const String RGBA_PARAMETERS[4]                          = { "R", "G", "B", "A" };
158     static const String ANGLE_PARAMETER[1]                          = { "ANGLE" };
159     static const String MATRIX_PARAMETER[1]                         = { "MATRIX" };
160     static const String TRANSFORM_PARAMETER[1]                      = { "TRANSFORM" };
161 
162     static const String A_PARAMETER[1]                              = { "A" };
163     static const String RGB_PARAMETERS[3]                           = { "R", "G", "B" };
164     static const String ST_PARAMETERS[2]                            = { "S", "T" };
165 
166     static const String VERTEX_SID                                  = "VERTEX";
167     static const String SKEW_XY_SID                                 = "skewXY";
168     static const String SKEW_XZ_SID                                 = "skewXZ";
169     static const String SKEW_YZ_SID                                 = "skewYZ";
170 
171     /** Attribute names and sids for camera animation. */
172     static const String XMAG_SID                                    = "xmag";
173     static const String YFOV_SID                                    = "yfov";
174     static const String XFOV_SID                                    = "xfov";
175     static const String NEAR_CLIP_SID                               = "near_clip";
176     static const String FAR_CLIP_SID                                = "far_clip";
177     static const String VERTICAL_APERTURE_SID                       = "vertical_aperture";
178     static const String HORIZONTAL_APERTURE_SID                     = "horizontal_aperture";
179     static const String LENS_SQUEEZE_SID                            = "lens_squeeze";
180     static const String FILM_FIT_OFFSET_SID                         = "film_fit_offset";
181     static const String HORIZONTAL_FILM_OFFSET_SID                  = "horizontal_film_offset";
182     static const String VERTICAL_FILM_OFFSET_SID                    = "vertical_film_offset";
183 
184     static const String ATTR_ORTHOGRAPHIC_WIDTH                     = "orthographicWidth";
185     static const String ATTR_FOCAL_LENGTH                           = "focalLength";
186     static const String ATTR_NEAR_CLIP_PLANE                        = "nearClipPlane";
187     static const String ATTR_FAR_CLIP_PLANE                         = "farClipPlane";
188     static const String ATTR_VERTICAL_FILM_APERTURE                 = "verticalFilmAperture";
189     static const String ATTR_HORIZONTAL_FILM_APERTURE               = "horizontalFilmAperture";
190     static const String ATTR_LENS_SQUEEZE_RATIO                     = "lensSqueezeRatio";
191     static const String ATTR_FILM_FIT_OFFSET                        = "filmFitOffset";
192     static const String ATTR_HORIZONTAL_FILM_OFFSET                 = "horizontalFilmOffset"; // XYZ
193     static const String ATTR_VERTICAL_FILM_OFFSET                   = "verticalFilmOffset"; // XYZ
194 
195     static const String MAYA_VAPERTURE_PARAMETER                    = "vertical_aperture";
196     static const String MAYA_HAPERTURE_PARAMETER                    = "horizontal_aperture";
197     static const String MAYA_LENS_SQUEEZE_PARAMETER                 = "lens_squeeze";
198     static const String MAYA_FILM_FIT_PARAMETER                     = "film_fit";
199     static const String MAYA_FILM_FIT_OFFSET_PARAMETER              = "film_fit_offset";
200     static const String MAYA_FILM_OFFSET_X_PARAMETER                = "film_offsetX";
201     static const String MAYA_FILM_OFFSET_Y_PARAMETER                = "film_offsetY";
202 
203     /** The plug ids for the animation exports. */
204     static const char* ATTR_ALPHA_GAIN                              = "alphaGain";
205     static const char* ATTR_ALPHA_OFFSET                            = "alphaOffset";
206     static const char* ATTR_AMBIENT_COLOR                           = "ambientColor";
207     static const char* ATTR_AMBIENT_SHADE                           = "ambientShade";
208     static const char* ATTR_BACKFACE_CULLING                        = "backfaceCulling";
209     static const char* ATTR_BUMP_DEPTH                              = "bumpDepth";
210     static const char* ATTR_BUMP_INTERP                             = "bumpInterp";
211     static const char* ATTR_BUMP_VALUE                              = "bumpValue";
212     static const char* ATTR_COLOR                                   = "color";
213     static const char* ATTR_COLOR_NAME                              = "cn";
214     static const char* ATTR_COLOR_PER_VERTEX                        = "colorPerVertex";
215     static const char* ATTR_COLORSET                                = "colorSet";
216     static const char* ATTR_COLORSET_NAME                           = "clsn";
217     static const char* ATTR_COLORSET_POINTS                         = "clsp";
218     static const char* ATTR_CONE_ANGLE                              = "coneAngle";
219     static const char* ATTR_COSINE_POWER                            = "cosinePower";
220     static const char* ATTR_DEFAULT_SHADER_LIST1                    = "defaultShaderList1";
221     static const char* ATTR_DOUBLE_SIDED                            = "doubleSided";
222     static const char* ATTR_DROP_OFF                                = "dropoff";
223     static const char* ATTR_ENVELOPE                                = "en";
224     static const char* ATTR_ECCENTRICITY                            = "eccentricity";
225     static const char* ATTR_FILE_TEXTURE_NAME                       = "fileTextureName";
226     static const char* ATTR_GEOM_MATRIX                             = "geomMatrix";
227     static const char* ATTR_IMAGE                                   = "image";
228     static const char* ATTR_IMAGE_SEQUENCE                          = "useFrameExtension";
229     /** The standard input attribute of the polyShape node. This attribute accepts input
230     mesh data from other DG nodes and forwards the data through the node to the
231     outMesh. It stores its own internal copy of the geometry being passed into the
232     node. inMesh is only valid if there is an input connection. Otherwise it is ignored. */
233     static const char* ATTR_IN_MESH                                 = "inMesh";
234     static const char* ATTR_INCANDESCENCE                           = "incandescence";
235     static const char* ATTR_INPUt                                   = "input";
236     static const char* ATTR_INPUT_GEOM_TARGET                       = "igt";
237     static const char* ATTR_INPUT_GEOMETRY                          = "ig";
238     static const char* ATTR_INPUT_COMPONENT_TARGET                  = "ict";
239     static const char* ATTR_INPUT_POINTS_TARGET                     = "ipt";
240     static const char* ATTR_INPUT_TARGET                            = "it";
241     static const char* ATTR_INPUT_TARGET_GROUP                      = "itg";
242     static const char* ATTR_INPUT_TARGET_INPUT                      = "iti";
243     static const char* ATTR_INTENSITY                               = "intensity";
244     static const char* ATTR_INTERMEDIATE_OBJECT                     = "io";
245     static const char* ATTR_INVERT                                  = "invert";
246     static const char* ATTR_JOINT_ORIENT                            = "jointOrient";
247     static const char* ATTR_MATRIX                                  = "matrix";
248     static const char* ATTR_NODE_STATE                              = "nodeState";
249     static const char* ATTR_NORMAL_CAMERA                           = "normalCamera";
250     static const char* ATTR_OUT_ALPHA                               = "oa";
251     static const char* ATTR_OUT_COLOR                               = "oc"; // "outColor"
252     /** The standard output attribute of the polyShape node. This attribute receives input
253     mesh data from either the inMesh or cachedInMesh (depending on the node
254     state) and stores it as its own internal copy of the mesh. The outMesh geometry
255     represents the final geometry of the shape and is always valid. */
256     static const char* ATTR_OUT_MESH                                = "outMesh";
257     static const char* ATTR_OUTPUT                                  = "output";
258     static const char* ATTR_OUT_TRANSPARENCY                        = "ot"; // "outTransparency"
259     static const char* ATTR_PENUMBRA_ANGLE                          = "penumbraAngle";
260     static const char* ATTR_PLACEMENT_MATRIX                        = "placementMatrix";
261     static const char* ATTR_PROJECTION_TYPE                         = "projType";
262     static const char* ATTR_REFLECTIVITY                            = "reflectivity";
263     static const char* ATTR_REFLECTED_COLOR                         = "reflectedColor";
264     static const char* ATTR_REFRACTIONS                             = "refractions";
265     static const char* ATTR_REFRACTIVE_INDEX                        = "refractiveIndex";
266     static const char* ATTR_ROTATE                                  = "rotate";
267     static const char* ATTR_ROTATE_AXIS                             = "rotateAxis";
268     static const char* ATTR_ROTATE_ORDER                            = "rotateOrder";
269     static const char* ATTR_ROTATE_PIVOT                            = "rotatePivot";
270     static const char* ATTR_ROTATE_PIVOT_TRANSLATION                = "rotatePivotTranslation";
271     static const char* ATTR_ROTATE_PIVOT_INVERSE                    = "rotatePivotInverse";
272     static const char* ATTR_ROTATE_X                                = "rotateX";
273     static const char* ATTR_ROTATE_Y                                = "rotateY";
274     static const char* ATTR_ROTATE_Z                                = "rotateZ";
275     static const char* ATTR_SCALE                                   = "scale";
276     static const char* ATTR_SCALE_PIVOT_INVERSE                     = "scalePivotInverse";
277     static const char* ATTR_SCALE_PIVOT                             = "scalePivot";
278     static const char* ATTR_SCALE_PIVOT_TRANSLATION                 = "scalePivotTranslation";
279     static const char* ATTR_SHADERS                                 = "shaders";
280     static const char* ATTR_SEGMENT_SCALE_COMPENSATE                = "ssc";
281     static const char* ATTR_SKEW                                    = "skew";
282     static const char* ATTR_SPECULAR_COLOR                          = "specularColor";
283     static const char* ATTR_SURFACE_SHADER                          = "surfaceShader";
284     static const char* ATTR_TRANSFORM                               = "transform";
285     static const char* ATTR_TRANSLATE                               = "translate";
286     static const char* ATTR_TRANSPARENCY                            = "transparency";
287     static const char* ATTR_UV_COORD                                = "uvCoord";
288     static const char* ATTR_UV_SET                                  = "uvSet";
289     static const char* ATTR_UV_SET_NAME                             = "uvsn";
290     static const char* ATTR_VISIBILITY                              = "visibility";
291     static const char* ATTR_VERTEX_POSITION_TWEAKS                  = "pt";
292     static const char* ATTR_VERTEX_ALPHA                            = "vxal";
293     static const char* ATTR_VERTEX_COLOR                            = "vclr";
294     static const char* ATTR_VERTEX_COLOR_RGB                        = "vrgb";
295     static const char* ATTR_VERTEX_FACE_ALPHA                       = "vfal";
296     static const char* ATTR_VERTEX_FACE_COLOR                       = "vfcl";
297     static const char* ATTR_VERTEX_FACE_COLOR_RGB                   = "frgb";
298     static const char* ATTR_WEIGHT                                  = "w";
299 	static const char* ATTR_EVENT_ANIMATION							= "animationEvent";
300 	static const char* ATTR_CLIP_SOURCE_START						= "sourceStart";
301 	static const char* ATTR_CLIP_SOURCE_END							= "sourceEnd";
302 	static const char* ATTR_THRESHOLD								= "threshold";
303 
304     /** Constants for the cameras */
305     static const char* CAMERA_PERSP                                 = "persp";
306     static const char* CAMERA_TOP                                   = "top";
307     static const char* CAMERA_SIDE                                  = "side";
308     static const char* CAMERA_FRONT                                 = "front";
309     static const char* CAMERA_PERSP_SHAPE                           = "perspShape";
310     static const char* CAMERA_TOP_SHAPE                             = "topShape";
311     static const char* CAMERA_SIDE_SHAPE                            = "sideShape";
312     static const char* CAMERA_FRONT_SHAPE                           = "frontShape";
313 
314     /** Constants for the physical scenes. */
315     static const char* NIMA_INTERNAL_PHYSIKS                        = "nimaInternalPhysics";
316     static const char* AGEIA_PHYSIKS_MODEL                          = "AgeiaPhysicsModel";
317 	static const char* BULLET_PHYSIKS_NODE							= "bulletRigidBodyShape";
318 	static const char* BULLET_PHYSIKS_SOLVER_NODE					= "bulletSolverShape";
319     static const char* NX_RIGID_SOLVER                              = "nxRigidSolver";
320     static const char* NX_RIGID_BODY                                = "nxRigidBody";
321     static const char* NX_SHAPE                                     = "physicsShape";
322     static const char* NX_RIGID_CONSTRAINT                          = "nxRigidConstraint";
323 	static const char* PHYSICS_MODEL_ID								= "PhysicsModel";
324 	static const char* PHYSICS_WORLD_REFERENCE						= "world";
325 	static const char* ATTR_MASS									= "mass";
326 	static const char* ATTR_BODY_TYPE								= "bodyType";
327 	static const char* ATTR_DYNAMIC									= "dynamic";
328 	static const char* ATTR_INERTIA									= "inertia";
329 	static const char* ATTR_EXTENT									= "extent";
330     static const char* ATTR_RIGID_BODY_1                            = "rigidBody1";
331     static const char* ATTR_RIGID_BODY_2                            = "rigidBody2";
332     static const char* ATTR_CONSTRAIN                               = "constrain";
333     static const char* ATTR_USE_ACCELERATION                        = "useAcceleration";
334     static const char* ATTR_RADIUS_SCALE                            = "radiusScale";
335     static const char* ATTR_ORIENTATION_MODE                        = "orientationMode";
336     static const char* ATTR_SWING_1_LIMIT_RESTITUTION               = "swing1LimitRestitution";
337     static const char* ATTR_SWING_1_LIMIT_SPRING                    = "swing1LimitSpring";
338     static const char* ATTR_SWING_1_LIMIT_DAMPING                   = "swing1LimitDamping";
339     static const char* ATTR_SWING_2_LIMIT_RESTITUTION               = "swing2LimitRestitution";
340     static const char* ATTR_SWING_2_LIMIT_SPRING                    = "swing2LimitSpring";
341     static const char* ATTR_SWING_2_LIMIT_DAMPING                   = "swing2LimitDamping";
342     static const char* ATTR_TWIST_LOW_LIMIT_RESTITUTION             = "twistLowLimitRestitution";
343     static const char* ATTR_TWIST_LOW_LIMIT_SPRING                  = "twistLowLimitSpring";
344     static const char* ATTR_TWIST_LOW_LIMIT_DAMPING                 = "twistLowLimitDamping";
345     static const char* ATTR_TWIST_HIGH_LIMIT_RESTITUTION            = "twistHighLimitRestitution";
346     static const char* ATTR_TWIST_HIGH_LIMIT_SPRING                 = "twistHighLimitSpring";
347     static const char* ATTR_TWIST_HIGH_LIMIT_DAMPING                = "twistHighLimitDamping";
348     static const char* ATTR_LINEAR_LIMIT_VALUE                      = "linearLimitValue";
349     static const char* ATTR_LINEAR_LIMIT_RESTITUTION                = "linearLimitRestitution";
350     static const char* ATTR_LINEAR_LIMIT_SPRING                     = "linearLimitSpring";
351     static const char* ATTR_LINEAR_LIMIT_DAMPING                    = "linearLimitDamping";
352     static const char* ATTR_DRIVE_DAMPING_SLERP                     = "driveDampingSlerp";
353     static const char* ATTR_DRIVE_SPRING_SLERP                      = "driveSpringSlerp";
354     static const char* ATTR_BREAKABLE_FORCE                         = "breakableForce";
355     static const char* ATTR_MAX_FORCE                               = "maxForce";
356     static const char* ATTR_BREAKABLE_TORQUE                        = "breakableTorque";
357     static const char* ATTR_MAX_TORQUE                              = "maxTorque";
358     static const char* ATTR_REVERSE                                 = "reverse";
359     static const char* ATTR_PROJECTION_MODE                         = "projectionMode";
360     static const char* ATTR_PROJECTION_DISTANCE                     = "projectionDistance";
361     static const char* ATTR_PROJECTION_ANGLE                        = "projectionAngle";
362     static const char* ATTR_ANGULAR_DRIVE_MODE                      = "angularDriveMode";
363     static const char* ATTR_INTERPENETRATE                          = "interpenetrate";
364     static const char* ATTR_TARGET                                  = "target";
365     static const char* ATTR_SIMULATION_TYPE                         = "simulationType";
366     static const char* ATTR_SWITCH_TO_DYNAMIC                       = "switchToDynamic";
367     static const char* ATTR_SWITCH_AT_FRAME                         = "switchAtFrame";
368     static const char* ATTR_ENABLE_GRAVITY                          = "enableGravity";
369     static const char* ATTR_FORCE_TO_SLEEP                          = "forceToSleep";
370     static const char* ATTR_OVERRIDE_MASS_OR_DENSITY                = "overrideMassOrDensity";
371     static const char* ATTR_DENSITY                                 = "density";
372     static const char* ATTR_BOUNCINESS                              = "bounciness";
373     static const char* ATTR_STATIC_FRICTION                         = "staticFriction";
374     static const char* ATTR_DYNAMIC_FRICTION                        = "dynamicFriction";
375     static const char* ATTR_PHYSICS_SHAPES                          = "physicsShapes";
376     static const char* ATTR_OVERRIDE_GLOBAL_ITERATION_COUNT         = "overrideGlobalIterationCount";
377     static const char* ATTR_POSITION_ITERATION_COUNT                = "positionIterationCount";
378     static const char* ATTR_VELOCITY_ITERATION_COUNT                = "velocityIterationCount";
379     static const char* ATTR_CONTACT_SHELL_OVERRIDE                  = "contactShellOverride";
380     static const char* ATTR_CONTACT_SHELL_DEPTH                     = "contactShellDepth";
381     static const char* ATTR_CONTACT_SHELL_OFFSET                    = "contactShellOffset";
382     static const char* ATTR_SLEEP_THRESHOLDS_OVERRIDE               = "sleepThesholdsOverride"; // Missing 'r' comes from a typo in attribute name (PhysX plugin)
383     static const char* ATTR_SLEEP_ENERGY_THRESHOLD                  = "sleepEnergyThreshold";
384     static const char* ATTR_LINEAR_DAMPING                          = "linearDamping";
385     static const char* ATTR_ANGULAR_DAMPING                         = "angularDamping";
386     static const char* ATTR_CENTER_OF_MASS_MODE                     = "centerOfMassMode";
387     static const char* ATTR_CENTER_OF_MASS_OVERRIDE                 = "centerOfMassOverride";
388     static const char* ATTR_CENTER_OF_MASS_OVERRIDE_X               = "centerOfMassOverrideX";
389     static const char* ATTR_CENTER_OF_MASS_OVERRIDE_Y               = "centerOfMassOverrideY";
390     static const char* ATTR_CENTER_OF_MASS_OVERRIDE_Z               = "centerOfMassOverrideZ";
391     static const char* ATTR_INITIAL_POSITION                        = "initialPosition";
392     static const char* ATTR_INITIAL_POSITION_X                      = "initialPositionX";
393     static const char* ATTR_INITIAL_POSITION_Y                      = "initialPositionY";
394     static const char* ATTR_INITIAL_POSITION_Z                      = "initialPositionZ";
395     static const char* ATTR_INITIAL_ORIENTATION                     = "initialOrientation";
396     static const char* ATTR_INITIAL_ORIENTATION_X                   = "initialOrientationX";
397     static const char* ATTR_INITIAL_ORIENTATION_Y                   = "initialOrientationY";
398     static const char* ATTR_INITIAL_ORIENTATION_Z                   = "initialOrientationZ";
399     static const char* ATTR_INITIAL_VELOCITY                        = "initialVelocity";
400     static const char* ATTR_INITIAL_VELOCITY_X                      = "initialVelocityX";
401     static const char* ATTR_INITIAL_VELOCITY_Y                      = "initialVelocityY";
402     static const char* ATTR_INITIAL_VELOCITY_Z                      = "initialVelocityZ";
403     static const char* ATTR_INITIAL_SPIN                            = "initialSpin";
404     static const char* ATTR_INITIAL_SPIN_X                          = "initialSpinX";
405     static const char* ATTR_INITIAL_SPIN_Y                          = "initialSpinY";
406     static const char* ATTR_INITIAL_SPIN_Z                          = "initialSpinZ";
407     static const char* ATTR_ENABLE_CCD                              = "enableCCD";
408     static const char* ATTR_CCD_MOTION_THRESHOLD                    = "CCDMotionThreshold";
409     static const char* ATTR_HIDDEN_IN_OUTLINER                      = "hiddenInOutliner";
410     static const char* ATTR_WIRE_COLOR_RGB                          = "wireColorRGB";
411     static const char* ATTR_SHAPE_TYPE                              = "shapeType";
412     static const char* ATTR_SIZE                                    = "size";
413     static const char* ATTR_RADIUS                                  = "radius";
414     static const char* ATTR_POINT_1                                 = "point1";
415     static const char* ATTR_POINT_2                                 = "point2";
416     static const char* ATTR_HEIGHT                                  = "height";
417     static const char* ATTR_BEST_FIT                                = "bestFit";
418     static const char* ATTR_OUT_PHYSICS_SHAPE                       = "outPhysicsShape";
419     static const char* ATTR_CONNECT_TO_CLOTH_SPHERE                 = "connectToClothSphere";
420     static const char* ATTR_INFLATE                                 = "inflate";
421     static const char* ATTR_BOUNDING_BOX_SIZE                       = "boundingBoxSize";
422     static const char* ATTR_USE_MASS_OR_DENSITY                     = "useMassOrDensity";
423     static const char* ATTR_BOUNDING_BOX_MIN                        = "boundingBoxMin";
424     static const char* ATTR_BOUNDING_BOX_MAX                        = "boundingBoxMax";
425     static const char* ATTR_MOTION_TWIST                            = "motionTwist";
426     static const char* ATTR_MOTION_SWING_Y                          = "motionSwingY";
427     static const char* ATTR_MOTION_SWING_Z                          = "motionSwingZ";
428     static const char* ATTR_TWIST_LOW_LIMIT_VALUE                   = "twistLowLimitValue";
429     static const char* ATTR_TWIST_HIGH_LIMIT_VALUE                  = "twistHighLimitValue";
430     static const char* ATTR_SWING_1_LIMIT_VALUE                     = "swing1LimitValue";
431     static const char* ATTR_SWING_2_LIMIT_VALUE                     = "swing2LimitValue";
432     static const char* ATTR_MOTION_X                                = "motionX";
433     static const char* ATTR_MOTION_Y                                = "motionY";
434     static const char* ATTR_MOTION_Z                                = "motionZ";
435     static const char* ATTR_DRIVE_SPRING_X                          = "driveSpringX";
436     static const char* ATTR_DRIVE_SPRING_Y                          = "driveSpringY";
437     static const char* ATTR_DRIVE_SPRING_Z                          = "driveSpringZ";
438     static const char* ATTR_DRIVE_DAMPING_X                         = "driveDampingX";
439     static const char* ATTR_DRIVE_DAMPING_Y                         = "driveDampingY";
440     static const char* ATTR_DRIVE_DAMPING_Z                         = "driveDampingZ";
441     static const char* ATTR_DRIVE_SPRING_TWIST                      = "driveSpringTwist";
442     static const char* ATTR_DRIVE_SPRING_SWING                      = "driveSpringSwing";
443     static const char* ATTR_DRIVE_DAMPING_TWIST                     = "driveDampingTwist";
444     static const char* ATTR_DRIVE_DAMPING_SWING                     = "driveDampingSwing";
445     static const char* ATTR_GOAL_SPACE                              = "goalSpace";
446     static const char* ATTR_GOAL_POSITION                           = "goalPosition";
447     static const char* ATTR_GOAL_POSITION_X                         = "goalPositionX";
448     static const char* ATTR_GOAL_POSITION_Y                         = "goalPositionY";
449     static const char* ATTR_GOAL_POSITION_Z                         = "goalPositionZ";
450     static const char* ATTR_GOAL_ORIENTATION                        = "goalOrientation";
451     static const char* ATTR_GOAL_ORIENTATION_X                      = "goalOrientationX";
452     static const char* ATTR_GOAL_ORIENTATION_Y                      = "goalOrientationY";
453     static const char* ATTR_GOAL_ORIENTATION_Z                      = "goalOrientationZ";
454     static const char* ATTR_GRAVITY                                 = "gravity";
455     static const char* ATTR_GRAVITY_MAGNITUDE                       = "gravityMagnitude";
456     static const char* ATTR_GRAVITY_DIRECTION                       = "gravityDirection";
457     static const char* SIMULATION_TYPE_STATIC                       = "Static";
458     static const char* SIMULATION_TYPE_KINEMATIC                    = "Kinematic";
459     static const char* SIMULATION_TYPE_DYNAMIC                      = "Dynamic";
460     static const char* OVERRIDE_MASS_OR_DENSITY_DISABLED            = "Disabled";
461     static const char* OVERRIDE_MASS_OR_DENSITY_MASS                = "Mass";
462     static const char* OVERRIDE_MASS_OR_DENSITY_DENSITY             = "Density";
463     static const char* CENTER_OF_MASS_MODE_CALCULATE_FROM_SHAPES    = "Calculate From Shapes";
464     static const char* CENTER_OF_MASS_MODE_MANUAL_OVERRIDE          = "Manual Override";
465     static const char* SHAPE_TYPE_BOX                               = "Box";
466     static const char* SHAPE_TYPE_SPHERE                            = "Sphere";
467     static const char* SHAPE_TYPE_CAPSULE                           = "Capsule";
468     static const char* SHAPE_TYPE_CONVEX_HULL                       = "Convex Hull";
469     static const char* SHAPE_TYPE_TRIANGLE_MESH                     = "Triangle Mesh";
470     static const char* SHAPE_TYPE_CLOTH_SPHERES                     = "ClothSpheres";
471     static const char* USE_MASS_OR_DENSITY_MASS                     = "mass";
472     static const char* USE_MASS_OR_DENSITY_DENSITY                  = "density";
473     static const char* LOCKED                                       = "locked";
474     static const char* LIMITED                                      = "limited";
475     static const char* FREE                                         = "free";
476     static const char* CENTERED                                     = "Centered";
477     static const char* TARGET_ORIGIN                                = "Target Origin";
478     static const String LOCAL_POSE                                  = "localPose";
479     static const String GROUND_PLANE_NAME                           = "groundPlane";
480     static const String ATTR_USE_GROUND_PLANE                       = "useGroundPlane";
481     static const String ATTR_GROUND_PLANE_POSITION                  = "groundPlanePosition";
482 
483 	static const char* ATTR_ACTIVE									= "active";
484 	static const char* ATTR_COLLISION_SHAPE							= "collision_shape";
485 	static const char* ATTR_COLLISION_EXPORT_NODE					= "export_node";
486 
487     /** Constants for light probes. */
488     static const char* ATTR_LIGHT_PROBE                             = "light_probe";
489     static const String CSW_ELEMENT_INSTANCE_LIGHT_PROBE            = "instance_light_probe";
490     static const String CSW_ELEMENT_LIGHT_PROBE                     = "light_probe";
491     static const String CSW_ELEMENT_LIBRARY_LIGHT_PROBES            = "library_light_probes";
492 
493     /** Shader constants */
494     static const char* COLLADA_FX_SHADER                            = "colladafxShader";
495     static const char* COLLADA_FX_PASSES                            = "colladafxPasses";
496 
497 	/** ShaderFX constants */
498 	static const String SHADERFX_SHADER								= "ShaderfxShader";
499 	static const String SHADERFX									= "shaderfx";
500 	static const String SHADERFX_ATTRIBUTE							= "attribute";
501 	static const String SHADERFX_TRUE								= "true";
502 	static const String SHADERFX_FALSE								= "false";
503 	static const String PARAM_TYPE_BOOL								= "bool";
504 	static const String PARAM_TYPE_BYTE								= "byte";
505 	static const String PARAM_TYPE_CHAR								= "char";
506 	static const String PARAM_TYPE_SHORT							= "short";
507 	static const String PARAM_TYPE_SHORT2							= "short2";
508 	static const String PARAM_TYPE_SHORT3							= "short3";
509 	static const String PARAM_TYPE_LONG								= "long";
510 	static const String PARAM_TYPE_LONG2							= "long2";
511 	static const String PARAM_TYPE_LONG3							= "long3";
512 	static const String PARAM_TYPE_INT								= "int";
513 	static const String PARAM_TYPE_INT2								= "int2";
514 	static const String PARAM_TYPE_INT3								= "int3";
515 	static const String PARAM_TYPE_FLOAT							= "float";
516 	static const String PARAM_TYPE_FLOAT2							= "float2";
517 	static const String PARAM_TYPE_FLOAT3							= "float3";
518 	static const String PARAM_TYPE_DOUBLE							= "double";
519 	static const String PARAM_TYPE_DOUBLE2							= "double2";
520 	static const String PARAM_TYPE_DOUBLE3							= "double3";
521 	static const String PARAM_TYPE_DOUBLE4							= "double4";
522 	static const String PARAM_TYPE_ENUM								= "enum";
523 	static const String PARAM_TYPE_STRING							= "string";
524 
525     // COLLADA 1.4 Max-specific profile
526     static const char* MAX_TARGET_CAMERA_PARAMETER                  = "target";
527     static const char* MAX_ASPECTRATIO_LIGHT_PARAMETER              = "aspect_ratio";
528     static const char* MAX_TARGET_LIGHT_PARAMETER                   = "target";
529     static const char* MAX_DEFAULT_TARGET_DIST_LIGHT_PARAMETER      = "target_default_dist";
530     static const char* MAX_OUTERCONE_LIGHT_PARAMETER                = "outer_cone";
531     static const char* MAX_OVERSHOOT_LIGHT_PARAMETER                = "overshoot";
532     static const char* MAX_SPECLEVEL_MATERIAL_PARAMETER             = "spec_level";
533     static const char* MAX_DISPLACEMENT_MATERIAL_PARAMETER          = "displacement";
534     static const char* MAX_EMISSIONLEVEL_MATERIAL_PARAMETER         = "emission_level";
535     static const char* MAX_FACETED_MATERIAL_PARAMETER               = "faceted";
536     static const char* MAX_FILTERCOLOR_MATERIAL_PARAMETER           = "filter_color";
537     static const char* MAX_INDEXOFREFRACTION_MATERIAL_PARAMETER     = "index_of_refraction";
538     static const char* MAX_USERPROPERTIES_NODE_PARAMETER            = "user_properties";
539     static const char* MAX_WIREFRAME_MATERIAL_PARAMETER             = "wireframe";
540     static const char* MAX_FACEMAP_MATERIAL_PARAMETER               = "face_map";
541     static const char* MAX_AMOUNT_TEXTURE_PARAMETER                 = "amount";
542     static const char* MAX_BUMP_INTERP_TEXTURE_PARAMETER            = "bumpInterp";
543     static const char* MAX_CAMERA_TARGETDISTANCE_PARAMETER          = "target_distance";
544     static const char* MAX_FRAMERATE_PARAMETER                      = "frame_rate";
545 
546 }
547 
548 
549 #endif // __COLLADA_MAYA_SYNTAX_H__
550