187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/* 287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk* Copyright 2006 Sony Computer Entertainment Inc. 387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk* 487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk* Licensed under the MIT Open Source License, for details please see license.txt or the website 587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk* http://www.opensource.org/licenses/mit-license.php 687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk* 787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk*/ 887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#ifndef __domPolylist_h__ 1087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#define __domPolylist_h__ 1187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 1287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dae/daeDocument.h> 1387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domTypes.h> 1487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domElements.h> 1587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 1687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domP.h> 1787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domExtra.h> 1887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#include <dom/domInputLocalOffset.h> 1987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukclass DAE; 2087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 2187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/** 2287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The polylist element provides the information needed to bind vertex attributes 2387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * together and then organize those vertices into individual polygons. The 2487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * polygons described in polylist can contain arbitrary numbers of vertices. 2587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Unlike the polygons element, the polylist element cannot contain polygons 2687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * with holes. 2787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 2887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukclass domPolylist : public daeElement 2987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk{ 3087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukpublic: 3187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::POLYLIST; } 3287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk static daeInt ID() { return 623; } 3387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk virtual daeInt typeID() const { return ID(); } 3487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukpublic: 3587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk class domVcount; 3687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 3787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk typedef daeSmartRef<domVcount> domVcountRef; 3887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk typedef daeTArray<domVcountRef> domVcount_Array; 3987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 4087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/** 4187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The vcount element contains a list of integers describing the number of 4287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * sides for each polygon described by the polylist element. The vcount element 4387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * may occur once. 4487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 4587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk class domVcount : public daeElement 4687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk { 4787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk public: 4887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk virtual COLLADA_TYPE::TypeEnum getElementType() const { return COLLADA_TYPE::VCOUNT; } 4987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk static daeInt ID() { return 624; } 5087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk virtual daeInt typeID() const { return ID(); } 5187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 5287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk protected: // Value 5387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 5487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The domListOfUInts value of the text data of this element. 5587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 5687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domListOfUInts _value; 5787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 5887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk public: //Accessors and Mutators 5987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 6087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the _value array. 6187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return Returns a domListOfUInts reference of the _value array. 6287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 6387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domListOfUInts &getValue() { return _value; } 6487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 6587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the _value array. 6687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return Returns a constant domListOfUInts reference of the _value array. 6787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 6887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk const domListOfUInts &getValue() const { return _value; } 6987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 7087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Sets the _value array. 7187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @param val The new value for the _value array. 7287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 7387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk void setValue( const domListOfUInts &val ) { _value = val; } 7487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 7587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk protected: 7687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 7787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Constructor 7887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 7987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domVcount(DAE& dae) : daeElement(dae), _value() {} 8087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 8187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Destructor 8287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 8387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk virtual ~domVcount() {} 8487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 8587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Overloaded assignment operator 8687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 8787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk virtual domVcount &operator=( const domVcount &cpy ) { (void)cpy; return *this; } 8887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 8987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk public: // STATIC METHODS 9087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 9187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Creates an instance of this class and returns a daeElementRef referencing it. 9287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return a daeElementRef referencing an instance of this object. 9387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 9487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk static DLLSPEC daeElementRef create(DAE& dae); 9587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 9687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 9787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * If a daeMetaElement already exists it will return that instead of creating a new one. 9887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return A daeMetaElement describing this COLLADA element. 9987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 10087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk static DLLSPEC daeMetaElement* registerElement(DAE& dae); 10187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk }; 10287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 10387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 10487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukprotected: // Attributes 10587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/** 10687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The name attribute is the text string name of this element. Optional attribute. 10787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 10887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk xsNCName attrName; 10987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/** 11087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The count attribute indicates the number of polygon primitives. Required 11187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * attribute. 11287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 11387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domUint attrCount; 11487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/** 11587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The material attribute declares a symbol for a material. This symbol is 11687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * bound to a material at the time of instantiation. If the material attribute 11787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * is not specified then the lighting and shading results are application 11887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * defined. Optional attribute. 11987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 12087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk xsNCName attrMaterial; 12187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 12287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukprotected: // Elements 12387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/** 12487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The input element may occur any number of times. This input is a local 12587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * input with the offset and set attributes. @see domInput 12687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 12787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domInputLocalOffset_Array elemInput_array; 12887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/** 12987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The vcount element contains a list of integers describing the number of 13087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * sides for each polygon described by the polylist element. The vcount element 13187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * may occur once. @see domVcount 13287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 13387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domVcountRef elemVcount; 13487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/** 13587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The p element may occur once. @see domP 13687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 13787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domPRef elemP; 13887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk/** 13987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * The extra element may appear any number of times. @see domExtra 14087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 14187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domExtra_Array elemExtra_array; 14287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 14387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukpublic: //Accessors and Mutators 14487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 14587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the name attribute. 14687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return Returns a xsNCName of the name attribute. 14787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 14887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk xsNCName getName() const { return attrName; } 14987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 15087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Sets the name attribute. 15187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @param atName The new value for the name attribute. 15287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 15387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk void setName( xsNCName atName ) { *(daeStringRef*)&attrName = atName; _validAttributeArray[0] = true; } 15487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 15587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 15687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the count attribute. 15787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return Returns a domUint of the count attribute. 15887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 15987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domUint getCount() const { return attrCount; } 16087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 16187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Sets the count attribute. 16287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @param atCount The new value for the count attribute. 16387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 16487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk void setCount( domUint atCount ) { attrCount = atCount; _validAttributeArray[1] = true; } 16587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 16687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 16787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the material attribute. 16887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return Returns a xsNCName of the material attribute. 16987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 17087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk xsNCName getMaterial() const { return attrMaterial; } 17187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 17287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Sets the material attribute. 17387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @param atMaterial The new value for the material attribute. 17487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 17587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk void setMaterial( xsNCName atMaterial ) { *(daeStringRef*)&attrMaterial = atMaterial; _validAttributeArray[2] = true; } 17687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 17787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 17887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the input element array. 17987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return Returns a reference to the array of input elements. 18087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 18187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domInputLocalOffset_Array &getInput_array() { return elemInput_array; } 18287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 18387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the input element array. 18487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return Returns a constant reference to the array of input elements. 18587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 18687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk const domInputLocalOffset_Array &getInput_array() const { return elemInput_array; } 18787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 18887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the vcount element. 18987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return a daeSmartRef to the vcount element. 19087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 19187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk const domVcountRef getVcount() const { return elemVcount; } 19287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 19387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the p element. 19487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return a daeSmartRef to the p element. 19587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 19687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk const domPRef getP() const { return elemP; } 19787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 19887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the extra element array. 19987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return Returns a reference to the array of extra elements. 20087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 20187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domExtra_Array &getExtra_array() { return elemExtra_array; } 20287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 20387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Gets the extra element array. 20487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return Returns a constant reference to the array of extra elements. 20587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 20687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk const domExtra_Array &getExtra_array() const { return elemExtra_array; } 20787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukprotected: 20887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 20987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Constructor 21087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 21187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk domPolylist(DAE& dae) : daeElement(dae), attrName(), attrCount(), attrMaterial(), elemInput_array(), elemVcount(), elemP(), elemExtra_array() {} 21287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 21387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Destructor 21487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 21587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk virtual ~domPolylist() {} 21687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 21787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Overloaded assignment operator 21887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 21987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk virtual domPolylist &operator=( const domPolylist &cpy ) { (void)cpy; return *this; } 22087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 22187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchoukpublic: // STATIC METHODS 22287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 22387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Creates an instance of this class and returns a daeElementRef referencing it. 22487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return a daeElementRef referencing an instance of this object. 22587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 22687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk static DLLSPEC daeElementRef create(DAE& dae); 22787ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk /** 22887ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * Creates a daeMetaElement object that describes this element in the meta object reflection framework. 22987ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * If a daeMetaElement already exists it will return that instead of creating a new one. 23087ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk * @return A daeMetaElement describing this COLLADA element. 23187ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk */ 23287ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk static DLLSPEC daeMetaElement* registerElement(DAE& dae); 23387ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk}; 23487ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 23587ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk 23687ac3e2db6d5ae163131102c066e9d19bdfdc139Alex Sakhartchouk#endif 237