103 int cornerIndices[8];
108 typedef std::vector<int> IsoVertexVector;
109 typedef std::vector<IsoTriangle> IsoTriangleVector;
188 int useIsoVertex(
int isoVertex,
int corner0,
int corner1);
Color * mIsoVertexColours
Vertex colours for all iso vertices.
Definition: IsoSurfaceBuilder.h:140
void createIsoVertices()
Creates the iso vertex arrays.
Definition: IsoSurfaceBuilder.cpp:100
bool getFlipNormals() const
Returns whether normals are flipped.
Definition: IsoSurfaceBuilder.h:55
Grid cell.
Definition: IsoSurfaceBuilder.h:88
int * isoVertices
Iso vertex indices of this grid cell.
Definition: IsoSurfaceBuilder.h:105
Renderable object for the dynamically generated IsoSurface or voxel mesh.
Definition: IsoSurfaceRenderable.h:15
int mNumIsoVertices
The number of iso vertices, calculated on first call of getNumIsoVertices().
Definition: IsoSurfaceBuilder.h:67
IsoTriangleVector mIsoTriangles
Vector to which all generated iso triangles are added.
Definition: IsoSurfaceBuilder.h:155
DataGridPtr mDataGrid
Reference-counted shared pointer to the data grid associated with this iso surface.
Definition: IsoSurfaceBuilder.h:112
SurfaceFlags
Flags describing what data is generated for rendering the iso surface.
Definition: IsoSurfaceBuilder.h:16
different physics engine has different winding order.
Definition: EventBinding.h:32
void createGridCells()
Creates and initializes the grid cells.
Definition: IsoSurfaceBuilder.cpp:128
Class providing a 3d grid of data values and methods for accessing and modifying it.
Definition: DataGrid.h:14
Vector3 * mIsoVertexNormals
Normals for all iso vertices.
Definition: IsoSurfaceBuilder.h:135
IsoVertexVector mIsoVertices
Vector to which the indices of all used iso vertices are added.
Definition: IsoSurfaceBuilder.h:151
Generate texture coordinates.
Definition: IsoSurfaceBuilder.h:23
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
NormalType getNormalType() const
Gets the method used for normal generation.
Definition: IsoSurfaceBuilder.h:62
IsoSurfaceBuilder()
Constructor.
Definition: IsoSurfaceBuilder.cpp:19
void setFlipNormals(bool flipNormals)
Sets whether to flip normals.
Definition: IsoSurfaceBuilder.h:60
void setIsoValue(float isoValue)
Sets the iso value of the surface.
Definition: IsoSurfaceBuilder.h:53
virtual void initialize(DataGrid *dg, int flags)
Initializes the iso surface.
Definition: IsoSurfaceBuilder.cpp:37
Standard 2-dimensional vector.
Definition: ParaVector2.h:16
building triangles from 3d grid data.
Definition: IsoSurfaceBuilder.h:11
DataGrid * getDataGrid()
Returns the pointer to the data grid.
Definition: IsoSurfaceBuilder.h:49
Normals are calculated by interpolating the gradient in the data grid.
Definition: IsoSurfaceBuilder.h:33
virtual void createGridCellIsoVertices()
Creates and initializes the iso vertex index arrays of all grid cells.
Definition: IsoSurfaceBuilder.cpp:181
void setNormalType(NormalType normalType)
Sets the method used for normal generation.
Definition: IsoSurfaceBuilder.h:64
void addIsoTriangle(const IsoTriangle &isoTriangle)
...
Definition: IsoSurfaceBuilder.cpp:283
virtual int getNumIsoVertices()
Returns the total number of iso vertices to be allocated.
Definition: IsoSurfaceBuilder.cpp:80
Normals are calculated as an average of face normals.
Definition: IsoSurfaceBuilder.h:31
float mIsoValue
Iso value of the surface, the default is 1.0.
Definition: IsoSurfaceBuilder.h:116
asset_ptr< DataGrid > DataGridPtr
Reference-counted shared pointer to a DataGrid.
Definition: DataGrid.h:161
int isoVertexGroupOffsets[3]
Array with offsets to the different iso vertex groups.
Definition: IsoSurfaceBuilder.h:69
virtual ~IsoSurfaceBuilder()
Virtual Destructor.
Definition: IsoSurfaceBuilder.cpp:25
Generate vertex normals by interpolating the gradient stored in the data grid.
Definition: IsoSurfaceBuilder.h:19
float getIsoValue() const
Returns the iso value of the surface.
Definition: IsoSurfaceBuilder.h:51
Vector2 * mIsoVertexTexCoords
Texture coordinates for all iso vertices.
Definition: IsoSurfaceBuilder.h:145
GridCell * mGridCells
Array of grid cells.
Definition: IsoSurfaceBuilder.h:147
int mSurfaceFlags
Flags describing what data is generated for rendering the iso surface (see IsoSurface::SurfaceFlags)...
Definition: IsoSurfaceBuilder.h:114
virtual void buildIsoSurface()
Builds the iso surface by looping through all grid cells generating triangles.
Definition: IsoSurfaceBuilder.cpp:227
static const int msTriangleTable[256][16]
...
Definition: IsoSurfaceBuilder.h:160
void destroyGridCells()
Destroys the grid cells, including their iso vertex index arrays.
Definition: IsoSurfaceBuilder.cpp:162
Definition of a triangle in an iso surface.
Definition: IsoSurfaceBuilder.h:81
int vertices[3]
Iso vertex indices defining the triangle.
Definition: IsoSurfaceBuilder.h:84
NormalType mNormalType
The method used for normal generation.
Definition: IsoSurfaceBuilder.h:120
Normals are calculated as a weighted average of face normals.
Definition: IsoSurfaceBuilder.h:29
int * mIsoVertexIndices
Hardware vertex buffer indices for all iso vertices.
Definition: IsoSurfaceBuilder.h:126
Definition: ParaColor.h:275
Generate vertex colours by interpolating the colours stored in the data grid.
Definition: IsoSurfaceBuilder.h:21
int useIsoVertex(int isoVertex, int corner0, int corner1)
Calculates properties of the iso vertex.
Definition: IsoSurfaceBuilder.cpp:313
bool mFlipNormals
Flip normals of the surface, the default is false.
Definition: IsoSurfaceBuilder.h:118
Vector3 * mIsoVertexPositions
Positions of all iso vertices.
Definition: IsoSurfaceBuilder.h:130
NormalType
Definition: IsoSurfaceBuilder.h:26
static const int msEdgeTable[256]
...
Definition: IsoSurfaceBuilder.h:158
void update(IsoSurfaceRenderable *isr)
Rebuilds the iso surface, and updates the IsoSurfaceRenderable.
Definition: IsoSurfaceBuilder.cpp:61