PolyVox  0.2.1
Open source voxel management library
PolyVoxForwardDeclarations.h
Go to the documentation of this file.
1 /*******************************************************************************
2 Copyright (c) 2005-2009 David Williams
3 
4 This software is provided 'as-is', without any express or implied
5 warranty. In no event will the authors be held liable for any damages
6 arising from the use of this software.
7 
8 Permission is granted to anyone to use this software for any purpose,
9 including commercial applications, and to alter it and redistribute it
10 freely, subject to the following restrictions:
11 
12  1. The origin of this software must not be misrepresented; you must not
13  claim that you wrote the original software. If you use this software
14  in a product, an acknowledgment in the product documentation would be
15  appreciated but is not required.
16 
17  2. Altered source versions must be plainly marked as such, and must not be
18  misrepresented as being the original software.
19 
20  3. This notice may not be removed or altered from any source
21  distribution.
22 *******************************************************************************/
23 
24 #ifndef __PolyVox_ForwardDeclarations_H__
25 #define __PolyVox_ForwardDeclarations_H__
26 
27 #include "Impl/TypeDef.h"
28 
29 namespace PolyVox
30 {
32  // Array
34  template<uint32_t dimensions, typename ElementType> class Array;
35 
36  typedef Array<1,float> Array1DFloat;
37  typedef Array<1,double> Array1DDouble;
38  typedef Array<1,int8_t> Array1DInt8;
39  typedef Array<1,uint8_t> Array1DUint8;
40  typedef Array<1,int16_t> Array1DInt16;
41  typedef Array<1,uint16_t> Array1DUint16;
42  typedef Array<1,int32_t> Array1DInt32;
43  typedef Array<1,uint32_t> Array1DUint32;
44 
45  typedef Array<2,float> Array2DFloat;
46  typedef Array<2,double> Array2DDouble;
47  typedef Array<2,int8_t> Array2DInt8;
48  typedef Array<2,uint8_t> Array2DUint8;
49  typedef Array<2,int16_t> Array2DInt16;
50  typedef Array<2,uint16_t> Array2DUint16;
51  typedef Array<2,int32_t> Array2DInt32;
52  typedef Array<2,uint32_t> Array2DUint32;
53 
54  typedef Array<3,float> Array3DFloat;
55  typedef Array<3,double> Array3DDouble;
56  typedef Array<3,int8_t> Array3DInt8;
57  typedef Array<3,uint8_t> Array3DUint8;
58  typedef Array<3,int16_t> Array3DInt16;
59  typedef Array<3,uint16_t> Array3DUint16;
60  typedef Array<3,int32_t> Array3DInt32;
61  typedef Array<3,uint32_t> Array3DUint32;
62 
64  // CubicSurfaceExtractor
66  template< typename VolumeType> class CubicSurfaceExtractor;
67 
69  // Density
71  template <typename Type> class Density;
72 
73  typedef Density<int8_t> DensityI8;
79 
80  typedef DensityU8 Density8; //Backwards compatibility
81  typedef DensityU16 Density16; //Backwards compatibility
82 
84  // LargeVolume
86  template <typename VoxelType> class LargeVolume;
87 
89  // Material
91  template <typename Type> class Material;
92 
96 
97  typedef MaterialU8 Material8;
98  typedef MaterialU16 Material16;
100 
102  // MaterialDensityPair
104  template <typename Type, uint8_t NoOfMaterialBits, uint8_t NoOfDensityBits> class MaterialDensityPair;
105 
108 
110  // PositionMaterial
112  class PositionMaterial;
113 
115  // PositionMaterialNormal
118 
120  // RawVolume
122  template <typename VoxelType> class RawVolume;
123 
125  // Region
127  class Region;
128 
130  // MarchingCubesSurfaceExtractor
132  template<typename VolumeType, typename Controller> class MarchingCubesSurfaceExtractor;
133 
135  // SurfaceMesh
137  template <typename VertexType> class SurfaceMesh;
138 
140  // Vector
142  template <uint32_t Size, typename Type> class Vector;
151 }
152 
153 #endif