/usr/include/opencollada/COLLADAStreamWriter/COLLADASWInputList.h is in opencollada-dev 0.1.0~20140703.ddf8f47+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | /*
Copyright (c) 2008-2009 NetAllied Systems GmbH
This file is part of COLLADAStreamWriter.
Licensed under the MIT Open Source License,
for details please see LICENSE file or the website
http://www.opensource.org/licenses/mit-license.php
*/
#ifndef __COLLADASTREAMWRITER_INPUT_LIST_H__
#define __COLLADASTREAMWRITER_INPUT_LIST_H__
#include "COLLADASWPrerequisites.h"
#include "COLLADASWElementWriter.h"
#include "COLLADASWBaseElement.h"
#include "COLLADASWConstants.h"
#include "COLLADABUURI.h"
namespace COLLADASW
{
class InputList;
class PrimitivesBase;
class BaseInputElement;
class Vertices;
class ControlVertices;
namespace InputSemantic
{
/** The geometry source data types. */
enum Semantics
{
BINORMAL=0, /** Geometric binormal (bitangent) vector */
BINDMATRIX,
COLOR, /** Color coordinate vector. Color inputs are RGB (float3) */
CONTINUITY, /** Continuity constraint at the control vertex (CV). See also "Curve Interpolation" in Chapter 4: Programming Guide. */
IMAGE, /** Raster or MIP-level input. */
INPUT, /** Sampler input. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
IN_TANGENT, /** Tangent vector for preceding control point. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
INTERPOLATION, /** Sampler interpolation type. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
INV_BIND_MATRIX, /** Inverse of local-to-world matrix. */
JOINT, /** Skin influence identifier */
LINEAR_STEPS, /** Number of piece-wise linear approximation steps to use for the spline segment that follows this CV. See also Curve Interpolation in Chapter 4: Programming Guide. */
MORPH_TARGET, /** Morph targets for mesh morphing */
MORPH_WEIGHT, /** Weights for mesh morphing */
NORMAL, /** Normal vector */
OUTPUT, /** Sampler output. See also Curve Interpolation in Chapter 4: Programming Guide. */
OUT_TANGENT, /** Tangent vector for succeeding control point. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
POSITION, /** Geometric coordinate vector. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
TANGENT, /** Geometric tangent vector */
TEXBINORMAL, /** Texture binormal (bitangent) vector */
TEXCOORD, /** Texture coordinate vector */
TEXTANGENT, /** Texture tangent vector */
UV, /** Generic parameter vector */
VERTEX, /** Mesh vertex */
WEIGHT, /** Skin influence weighting value */
UNKNOWN = -1 /**< An unknown data source. */
};
}
/** A class that holds information about an @a \<input\> element.*/
class Input
{
public:
/** Constructor
@param semantic The semantic of the @a \<input\> element.
@param source The source of the @a \<input\> element.
@param offset The offset of the @a \<input\> element.
@param set The set of the @a \<input\> element.
*/
Input ( InputSemantic::Semantics semantic, const URI& source, int offset = -1, int set = -1 )
: mSemantic ( semantic ),
mSource ( source ),
mOffset ( offset ),
mSet ( set ) {}
virtual ~Input() {}
/** Returns the semantic of the Input*/
InputSemantic::Semantics getSemantic() const
{
return mSemantic;
}
/** Returns the source of the Input*/
const COLLADABU::URI& getSource() const
{
return mSource;
}
/** Returns the offset of the Input*/
int getOffset() const
{
return mOffset;
}
/** Returns the set of the Input*/
int getSet() const
{
return mSet;
}
private:
InputSemantic::Semantics mSemantic;
COLLADABU::URI mSource;
int mOffset;
int mSet;
};
/** A class that writes a list of Input objects to the stream.*/
class InputList : public ElementWriter
{
private:
/** Declare friend, so the class can use the 'add()' method. */
friend class PrimitivesBase;
/** Declare friend, so the class can use the 'add()' method. */
friend class BaseInputElement;
/** Declare friend, so the class can use the 'add()' method. */
friend class Vertices;
/** Declare friend, so the class can use the 'add()' method. */
friend class ControlVertices;
friend class LibraryAnimations;
/** List of all the inputs*/
typedef std::list<Input> List;
List mList;
public:
/** Constructor
@param The stream the InputList should be written to*/
InputList ( StreamWriter* streamWriter ) : ElementWriter ( streamWriter ) {}
/** Destructor*/
virtual ~InputList() {}
/** Adds @a input to list of inputs that should be added*/
void push_back ( Input input )
{
mList.push_back ( input );
}
/** Returns a string containing the semantic name*/
static const String& getSemanticString ( InputSemantic::Semantics semantic );
private:
/** Add all the inputs, added using push_back(), to the stream*/
void add()const;
};
} //namespace COLLADASW
#endif //__COLLADASTREAMWRITER_INPUT_LIST_H__
|