2
Copyright (c) 2008-2009 NetAllied Systems GmbH
4
This file is part of COLLADAStreamWriter.
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
11
#ifndef __COLLADASTREAMWRITER_BASE_INPUT_ELEMENT_H__
12
#define __COLLADASTREAMWRITER_BASE_INPUT_ELEMENT_H__
14
#include "COLLADASWPrerequisites.h"
15
#include "COLLADASWBaseElement.h"
16
#include "COLLADASWInputList.h"
17
#include "COLLADASWConstants.h"
22
/** Template class representing a base input element. */
23
class BaseInputElement : public BaseElement
28
/** List of all the inputs*/
35
* @param streamWriter Pointer to the stream.
37
BaseInputElement ( StreamWriter* streamWriter, const String& elementName )
38
: BaseElement ( streamWriter, elementName )
39
, mInputList ( streamWriter )
45
virtual ~BaseInputElement() {};
47
/** Returns a reference to the input list */
48
InputList& getInputList()
53
/** Adds the element to the stream */
58
//---------------------------------------------------------------
61
* Template class to define the typedefs.
63
template<const String& elementName>
64
class BaseInputElementTemplate : public BaseInputElement
67
BaseInputElementTemplate ( StreamWriter* streamWriter )
68
: BaseInputElement( streamWriter, elementName ) {};
71
//---------------------------------------------------------------
72
/** Vertices input element for the geometry. */
73
typedef BaseInputElementTemplate<CSWC::CSW_ELEMENT_VERTICES> VerticesElement;
75
/** Joints input element for the controller. */
76
typedef BaseInputElementTemplate<CSWC::CSW_ELEMENT_JOINTS> JointsElement;
78
/** Joints input element for the controller. */
79
typedef BaseInputElementTemplate<CSWC::CSW_ELEMENT_TARGETS> TargetsElement;
82
} //namespace COLLADASW
85
#endif //__COLLADASTREAMWRITER_BASE_INPUT_ELEMENT_H__