Add a EXTRACTORS macro to automate the generation of the extractors
Like with VOLUMETYPES it is centralising the definitions of the volume and voxel types.
This commit is contained in:
parent
e7daab5bbc
commit
bb3d3c4b68
@ -8,4 +8,4 @@
|
|||||||
%include "SimpleVolume.h"
|
%include "SimpleVolume.h"
|
||||||
%include "MarchingCubesSurfaceExtractor.h"
|
%include "MarchingCubesSurfaceExtractor.h"
|
||||||
|
|
||||||
%template(SurfaceExtractorSimpleVolumeDensity8) PolyVox::MarchingCubesSurfaceExtractor<PolyVox::SimpleVolume<PolyVox::Density8> >;
|
EXTRACTORS(MarchingCubesSurfaceExtractor)
|
||||||
|
@ -34,6 +34,22 @@ const char* __str__() {
|
|||||||
%template(class ## MaterialDensityPair88) PolyVox::class<PolyVox::MaterialDensityPair88>;
|
%template(class ## MaterialDensityPair88) PolyVox::class<PolyVox::MaterialDensityPair88>;
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
|
//Template based on voxel type
|
||||||
|
%define EXTRACTOR(class, volumetype)
|
||||||
|
%template(class ## volumetype ## Density8) PolyVox::class<PolyVox::volumetype<PolyVox::Density8> >;
|
||||||
|
//%template(class ## volumetype ## Material8) PolyVox::class<PolyVox::volumetype<PolyVox::Material8> >;
|
||||||
|
//%template(class ## volumetype ## Material16) PolyVox::class<PolyVox::volumetype<PolyVox::Material16> >;
|
||||||
|
%template(class ## volumetype ## MaterialDensityPair44) PolyVox::class<PolyVox::volumetype<PolyVox::MaterialDensityPair44> >;
|
||||||
|
%template(class ## volumetype ## MaterialDensityPair88) PolyVox::class<PolyVox::volumetype<PolyVox::MaterialDensityPair88> >;
|
||||||
|
%enddef
|
||||||
|
|
||||||
|
//Template based on volume type
|
||||||
|
%define EXTRACTORS(shortname)
|
||||||
|
EXTRACTOR(shortname, SimpleVolume)
|
||||||
|
EXTRACTOR(shortname, RawVolume)
|
||||||
|
EXTRACTOR(shortname, LargeVolume)
|
||||||
|
%enddef
|
||||||
|
|
||||||
%feature("autodoc", "1");
|
%feature("autodoc", "1");
|
||||||
|
|
||||||
//This will rename "operator=" to "assign" since Python doesn't have assignment
|
//This will rename "operator=" to "assign" since Python doesn't have assignment
|
||||||
|
@ -15,7 +15,7 @@ class TestSurfaceExtractor(unittest.TestCase):
|
|||||||
#Set one single voxel to have a reasonably high density
|
#Set one single voxel to have a reasonably high density
|
||||||
vol.setVoxelAt(PolyVoxCore.Vector3DInt32(5, 5, 5), PolyVoxCore.Density8(200))
|
vol.setVoxelAt(PolyVoxCore.Vector3DInt32(5, 5, 5), PolyVoxCore.Density8(200))
|
||||||
self.mesh = PolyVoxCore.SurfaceMeshPositionMaterialNormal()
|
self.mesh = PolyVoxCore.SurfaceMeshPositionMaterialNormal()
|
||||||
extractor = PolyVoxCore.SurfaceExtractorSimpleVolumeDensity8(vol, r, self.mesh)
|
extractor = PolyVoxCore.MarchingCubesSurfaceExtractorSimpleVolumeDensity8(vol, r, self.mesh)
|
||||||
extractor.execute()
|
extractor.execute()
|
||||||
|
|
||||||
def test_num_vertices(self):
|
def test_num_vertices(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user