This file is indexed.

/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