1 /* 2 * Copyright 2006 Sony Computer Entertainment Inc. 3 * 4 * Licensed under the MIT Open Source License, for details please see license.txt or the website 5 * http://www.opensource.org/licenses/mit-license.php 6 * 7 */ 8 9 #ifndef __domGles_texcombiner_command_type_h__ 10 #define __domGles_texcombiner_command_type_h__ 11 12 #include <dae/daeDocument.h> 13 #include <dom/domTypes.h> 14 #include <dom/domElements.h> 15 16 #include <dom/domGles_texture_constant_type.h> 17 #include <dom/domGles_texcombiner_commandRGB_type.h> 18 #include <dom/domGles_texcombiner_commandAlpha_type.h> 19 class DAE; 20 21 class domGles_texcombiner_command_type_complexType 22 { 23 24 protected: // Elements 25 domGles_texture_constant_typeRef elemConstant; 26 domGles_texcombiner_commandRGB_typeRef elemRGB; 27 domGles_texcombiner_commandAlpha_typeRef elemAlpha; 28 29 public: //Accessors and Mutators 30 /** 31 * Gets the constant element. 32 * @return a daeSmartRef to the constant element. 33 */ 34 const domGles_texture_constant_typeRef getConstant() const { return elemConstant; } 35 /** 36 * Gets the RGB element. 37 * @return a daeSmartRef to the RGB element. 38 */ 39 const domGles_texcombiner_commandRGB_typeRef getRGB() const { return elemRGB; } 40 /** 41 * Gets the alpha element. 42 * @return a daeSmartRef to the alpha element. 43 */ 44 const domGles_texcombiner_commandAlpha_typeRef getAlpha() const { return elemAlpha; } 45 protected: 46 /** 47 * Constructor 48 */ 49 domGles_texcombiner_command_type_complexType(DAE& dae, daeElement* elt) : elemConstant(), elemRGB(), elemAlpha() {} 50 /** 51 * Destructor 52 */ 53 virtual ~domGles_texcombiner_command_type_complexType() {} 54 /** 55 * Overloaded assignment operator 56 */ 57 virtual domGles_texcombiner_command_type_complexType &operator=( const domGles_texcombiner_command_type_complexType &cpy ) { (void)cpy; return *this; } 58 }; 59 60 /** 61 * An element of type domGles_texcombiner_command_type_complexType. 62 */ 63 class domGles_texcombiner_command_type : public daeElement, public domGles_texcombiner_command_type_complexType 64 { 65 public: 66 virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::GLES_TEXCOMBINER_COMMAND_TYPE; } 67 static daeInt ID() { return 151; } 68 virtual daeInt typeID() const { return ID(); } 69 protected: 70 /** 71 * Constructor 72 */ 73 domGles_texcombiner_command_type(DAE& dae) : daeElement(dae), domGles_texcombiner_command_type_complexType(dae, this) {} 74 /** 75 * Destructor 76 */ 77 virtual ~domGles_texcombiner_command_type() {} 78 /** 79 * Overloaded assignment operator 80 */ 81 virtual domGles_texcombiner_command_type &operator=( const domGles_texcombiner_command_type &cpy ) { (void)cpy; return *this; } 82 83 public: // STATIC METHODS 84 /** 85 * Creates an instance of this class and returns a daeElementRef referencing it. 86 * @return a daeElementRef referencing an instance of this object. 87 */ 88 static DLLSPEC daeElementRef create(DAE& dae); 89 /** 90 * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 91 * If a daeMetaElement already exists it will return that instead of creating a new one. 92 * @return A daeMetaElement describing this COLLADA element. 93 */ 94 static DLLSPEC daeMetaElement* registerElement(DAE& dae); 95 }; 96 97 98 #endif 99