/usr/include/libwildmagic/Wm5VertexBufferAccessor.h is in libwildmagic-dev 5.13-1ubuntu3.
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 | // Geometric Tools, LLC
// Copyright (c) 1998-2014
// Distributed under the Boost Software License, Version 1.0.
// http://www.boost.org/LICENSE_1_0.txt
// http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
//
// File Version: 5.0.1 (2010/10/01)
#ifndef WM5VERTEXBUFFERACCESSOR_H
#define WM5VERTEXBUFFERACCESSOR_H
#include "Wm5GraphicsLIB.h"
#include "Wm5VertexBuffer.h"
#include "Wm5VertexFormat.h"
#include "Wm5APoint.h"
#include "Wm5FileIO.h"
namespace Wm5
{
class Visual;
class WM5_GRAPHICS_ITEM VertexBufferAccessor
{
public:
// Construction and destruction.
VertexBufferAccessor ();
VertexBufferAccessor (VertexFormat* vformat, VertexBuffer* vbuffer);
VertexBufferAccessor (Visual* visual);
~VertexBufferAccessor ();
// Use these functions after default construction of an accessor object
// or when you want to create an accessor object once and use it to
// process multiple vertex buffers.
void ApplyTo (VertexFormat* vformat, VertexBuffer* vbuffer);
void ApplyTo (Visual* visual);
inline char* GetData () const;
inline int GetNumVertices () const;
inline int GetStride () const;
// Generic accessors to the vertex buffer data. You must know the type T
// for the particular attributes. The Get*Channels() functions are valid
// only for FLOAT{1,2,3,4} data and return the number of floats for the
// attributes.
template <typename T>
inline T& Position (int i);
inline bool HasPosition () const;
inline int GetPositionChannels () const;
inline float* PositionTuple (int i);
template <typename T>
inline T& Normal (int i);
inline bool HasNormal () const;
inline int GetNormalChannels () const;
inline float* NormalTuple (int i);
void SetNormal3 (int i, const AVector& normal);
AVector GetNormal3 (int i) const;
template <typename T>
inline T& Tangent (int i);
inline bool HasTangent () const;
inline int GetTangentChannels () const;
inline float* TangentTuple (int i);
template <typename T>
inline T& Binormal (int i);
inline bool HasBinormal () const;
inline int GetBinormalChannels () const;
inline float* BinormalTuple (int i);
template <typename T>
inline T& TCoord (int unit, int i);
inline bool HasTCoord (int unit) const;
inline int GetTCoordChannels (int unit) const;
inline float* TCoordTuple (int unit, int i);
template <typename T>
inline T& Color (int unit, int i);
inline bool HasColor (int unit) const;
inline int GetColorChannels (int unit) const;
inline float* ColorTuple (int unit, int i);
template <typename T>
inline T& BlendIndices (int i);
inline bool HasBlendIndices () const;
template <typename T>
inline T& BlendWeight (int i);
inline bool HasBlendWeight () const;
// Support for file reads and writes (with endianness).
void Read (FileIO& inFile);
void Write (FileIO& outFile);
private:
// Called by the constructors.
void Initialize ();
VertexFormat* mVFormat;
VertexBuffer* mVBuffer;
int mStride;
char* mData;
char* mPosition;
char* mNormal;
char* mTangent;
char* mBinormal;
char* mTCoord[VertexFormat::AM_MAX_TCOORD_UNITS];
char* mColor[VertexFormat::AM_MAX_COLOR_UNITS];
char* mBlendIndices;
char* mBlendWeight;
int mPositionChannels;
int mNormalChannels;
int mTangentChannels;
int mBinormalChannels;
int mTCoordChannels[VertexFormat::AM_MAX_TCOORD_UNITS];
int mColorChannels[VertexFormat::AM_MAX_COLOR_UNITS];
};
#include "Wm5VertexBufferAccessor.inl"
}
#endif
|