28#ifndef __Ogre_Volume_IsoSurfaceMC_H__
29#define __Ogre_Volume_IsoSurfaceMC_H__
75 if (fabs(val1.
w - val0.
w) <= FLT_EPSILON)
83 Vector4 normal4 = val0 + mu * (val1 - val0);
88 return v0 + mu * (v1 - v0);
#define _OgreVolumeExport
Standard 3-dimensional vector.
Real normalise()
Normalises the vector.
4-dimensional homogeneous vector.
virtual void addMarchingCubesTriangles(const Vector3 *corners, const Vector4 *volumeValues, MeshBuilder *mb) const
Overridden from IsoSurface.
Vector3 interpolate(const Vector3 &v0, const Vector3 &v1, const Vector4 &val0, const Vector4 &val1, Vector3 &normal) const
Linear interpolation between two vectors based on some values associated to them.
IsoSurfaceMC(const Source *src)
Constructor.
virtual void addMarchingSquaresTriangles(const Vector3 *corners, const Vector4 *volumeValues, const size_t *indices, const Real maxDistance, MeshBuilder *mb) const
Overridden from IsoSurface.
static const Real ISO_LEVEL
The value where our isosurface is.
IsoSurface(const Source *src)
Constructor.
Class to build up a mesh with vertices and indices.
Abstract class defining the density function.
float Real
Software floating point type.