Renamed MarchingCubesController to DefaultMarchingCubesController.

This commit is contained in:
unknown 2012-07-15 23:07:00 +02:00
parent 451a6019b1
commit b140e16083
10 changed files with 34 additions and 34 deletions

View File

@ -32,6 +32,7 @@ SET(CORE_INC_FILES
include/PolyVoxCore/CubicSurfaceExtractor.inl
include/PolyVoxCore/CubicSurfaceExtractorWithNormals.h
include/PolyVoxCore/CubicSurfaceExtractorWithNormals.inl
include/PolyVoxCore/DefaultMarchingCubesController.h
include/PolyVoxCore/Density.h
include/PolyVoxCore/GradientEstimators.h
include/PolyVoxCore/GradientEstimators.inl
@ -43,7 +44,6 @@ SET(CORE_INC_FILES
include/PolyVoxCore/Log.h
include/PolyVoxCore/LowPassFilter.h
include/PolyVoxCore/LowPassFilter.inl
include/PolyVoxCore/MarchingCubesController.h
include/PolyVoxCore/MarchingCubesSurfaceExtractor.h
include/PolyVoxCore/MarchingCubesSurfaceExtractor.inl
include/PolyVoxCore/Material.h

View File

@ -29,18 +29,18 @@ freely, subject to the following restrictions:
namespace PolyVox
{
template<typename VoxelType>
class MarchingCubesController
class DefaultMarchingCubesController
{
public:
typedef VoxelType DensityType;
typedef float MaterialType;
MarchingCubesController(void)
DefaultMarchingCubesController(void)
{
m_tThreshold = ((std::numeric_limits<DensityType>::min)() + (std::numeric_limits<DensityType>::max)()) / 2;
}
MarchingCubesController(DensityType tThreshold)
DefaultMarchingCubesController(DensityType tThreshold)
{
m_tThreshold = tThreshold;
}

View File

@ -24,7 +24,7 @@ freely, subject to the following restrictions:
#ifndef __PolyVox_Density_H__
#define __PolyVox_Density_H__
#include "PolyVoxCore/MarchingCubesController.h" //We'll specialise the controller contained in here
#include "PolyVoxCore/DefaultMarchingCubesController.h" //We'll specialise the controller contained in here
#include "PolyVoxCore/Voxel.h"
#include "PolyVoxImpl/TypeDef.h"
@ -103,19 +103,19 @@ namespace PolyVox
typedef Density<uint8_t> Density8;
template <typename Type>
class MarchingCubesController< Density<Type> >
class DefaultMarchingCubesController< Density<Type> >
{
public:
typedef Type DensityType;
typedef float MaterialType;
MarchingCubesController(void)
DefaultMarchingCubesController(void)
{
// Default to a threshold value halfway between the min and max possible values.
m_tThreshold = (Density<Type>::getMinDensity() + Density<Type>::getMaxDensity()) / 2;
}
MarchingCubesController(DensityType tThreshold)
DefaultMarchingCubesController(DensityType tThreshold)
{
m_tThreshold = tThreshold;
}

View File

@ -29,11 +29,11 @@ freely, subject to the following restrictions:
#include "PolyVoxCore/Array.h"
#include "PolyVoxCore/SurfaceMesh.h"
#include "PolyVoxCore/MarchingCubesController.h"
#include "PolyVoxCore/DefaultMarchingCubesController.h"
namespace PolyVox
{
template< typename VolumeType, typename Controller = MarchingCubesController<typename VolumeType::VoxelType> >
template< typename VolumeType, typename Controller = DefaultMarchingCubesController<typename VolumeType::VoxelType> >
class MarchingCubesSurfaceExtractor
{
public:
@ -209,10 +209,10 @@ namespace PolyVox
//Our threshold value
//typename VoxelTypeTraits<typename VolumeType::VoxelType>::DensityType m_tThreshold;
typename MarchingCubesController<typename VolumeType::VoxelType>::DensityType m_tThreshold;
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::DensityType m_tThreshold;
//Used to convert arbitrary voxel types in densities and materials.
//MarchingCubesController<typename VolumeType::VoxelType> m_controller;
//DefaultMarchingCubesController<typename VolumeType::VoxelType> m_controller;
Controller m_controller;
};
}

View File

@ -444,9 +444,9 @@ namespace PolyVox
//Choose one of the two materials to use for the vertex (we don't interpolate as interpolation of
//material IDs does not make sense). We take the largest, so that if we are working on a material-only
//volume we get the one which is non-zero. Both materials can be non-zero if our volume has a density component.
typename MarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial000 = m_controller.convertToMaterial(v000);
typename MarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial100 = m_controller.convertToMaterial(v100);
typename MarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial = (std::max)(uMaterial000, uMaterial100);
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial000 = m_controller.convertToMaterial(v000);
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial100 = m_controller.convertToMaterial(v100);
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial = (std::max)(uMaterial000, uMaterial100);
PositionMaterialNormal surfaceVertex(v3dPosition, v3dNormal, static_cast<float>(uMaterial));
uint32_t uLastVertexIndex = m_meshCurrent->addVertex(surfaceVertex);
@ -470,9 +470,9 @@ namespace PolyVox
//Choose one of the two materials to use for the vertex (we don't interpolate as interpolation of
//material IDs does not make sense). We take the largest, so that if we are working on a material-only
//volume we get the one which is non-zero. Both materials can be non-zero if our volume has a density component.
typename MarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial000 = m_controller.convertToMaterial(v000);
typename MarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial010 = m_controller.convertToMaterial(v010);
typename MarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial = (std::max)(uMaterial000, uMaterial010);
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial000 = m_controller.convertToMaterial(v000);
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial010 = m_controller.convertToMaterial(v010);
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial = (std::max)(uMaterial000, uMaterial010);
PositionMaterialNormal surfaceVertex(v3dPosition, v3dNormal, static_cast<float>(uMaterial));
uint32_t uLastVertexIndex = m_meshCurrent->addVertex(surfaceVertex);
@ -496,9 +496,9 @@ namespace PolyVox
//Choose one of the two materials to use for the vertex (we don't interpolate as interpolation of
//material IDs does not make sense). We take the largest, so that if we are working on a material-only
//volume we get the one which is non-zero. Both materials can be non-zero if our volume has a density component.
typename MarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial000 = m_controller.convertToMaterial(v000);
typename MarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial001 = m_controller.convertToMaterial(v001);
typename MarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial = (std::max)(uMaterial000, uMaterial001);
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial000 = m_controller.convertToMaterial(v000);
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial001 = m_controller.convertToMaterial(v001);
typename DefaultMarchingCubesController<typename VolumeType::VoxelType>::MaterialType uMaterial = (std::max)(uMaterial000, uMaterial001);
PositionMaterialNormal surfaceVertex(v3dPosition, v3dNormal, static_cast<float>(uMaterial));
uint32_t uLastVertexIndex = m_meshCurrent->addVertex(surfaceVertex);

View File

@ -24,7 +24,7 @@ freely, subject to the following restrictions:
#ifndef __PolyVox_MaterialDensityPair_H__
#define __PolyVox_MaterialDensityPair_H__
#include "PolyVoxCore/MarchingCubesController.h" //We'll specialise the controller contained in here
#include "PolyVoxCore/DefaultMarchingCubesController.h" //We'll specialise the controller contained in here
#include "PolyVoxCore/Voxel.h"
#include "PolyVoxImpl/TypeDef.h"
@ -115,19 +115,19 @@ namespace PolyVox
};
template <typename Type, uint8_t NoOfMaterialBits, uint8_t NoOfDensityBits>
class MarchingCubesController< MaterialDensityPair<Type, NoOfMaterialBits, NoOfDensityBits> >
class DefaultMarchingCubesController< MaterialDensityPair<Type, NoOfMaterialBits, NoOfDensityBits> >
{
public:
typedef Type DensityType;
typedef Type MaterialType;
MarchingCubesController(void)
DefaultMarchingCubesController(void)
{
// Default to a threshold value halfway between the min and max possible values.
m_tThreshold = (MaterialDensityPair<Type, NoOfMaterialBits, NoOfDensityBits>::getMinDensity() + MaterialDensityPair<Type, NoOfMaterialBits, NoOfDensityBits>::getMaxDensity()) / 2;
}
MarchingCubesController(DensityType tThreshold)
DefaultMarchingCubesController(DensityType tThreshold)
{
m_tThreshold = tThreshold;
}

View File

@ -0,0 +1,7 @@
%module DefaultMarchingCubesController
%{
#include "DefaultMarchingCubesController.h"
%}
%include "DefaultMarchingCubesController.h"

View File

@ -1,7 +0,0 @@
%module MarchingCubesController
%{
#include "MarchingCubesController.h"
%}
%include "MarchingCubesController.h"

View File

@ -27,6 +27,7 @@ const char* __str__() {
%include "stdint.i"
%include "std_vector.i"
%include "Vector.i"
%include "DefaultMarchingCubesController.i"
%include "Density.i"
%include "Material.i"
%include "MaterialDensityPair.i"
@ -38,7 +39,6 @@ const char* __str__() {
%include "VertexTypes.i"
%include "SurfaceMesh.i"
//%include "SimpleVolumeSampler.i"
%include "MarchingCubesController.i"
%include "MarchingCubesSurfaceExtractor.i"
//%include "CubicSurfaceExtractor.i"
//%include "CubicSurfaceExtractorWithNormals.i"

View File

@ -117,7 +117,7 @@ void testForType(SurfaceMesh<PositionMaterialNormal>& result)
}
}
MarchingCubesController<VoxelType> controller(50);
DefaultMarchingCubesController<VoxelType> controller(50);
MarchingCubesSurfaceExtractor< SimpleVolume<VoxelType> > extractor(&volData, volData.getEnclosingRegion(), &result, controller);
extractor.execute();
}