Re-enable more of the bindings

This should enable enough of the bindings to be able to extract a surface
mesh.
This commit is contained in:
Matt Williams 2012-06-21 22:24:04 +01:00
parent d79b1006f3
commit 869d1a8d6a
5 changed files with 61 additions and 41 deletions

View File

@ -3,6 +3,8 @@
#include "Density.h"
%}
%include "Voxel.h"
%include "SurfaceExtractor.h"
%include "Density.h"
%template(Density8) PolyVox::Density<uint8_t>;

View File

@ -2,33 +2,40 @@
#define POLYVOX_API
%rename(equals) operator==;
%rename(notEqualTo) operator!=;
%rename(lessThan) operator<;
%rename(greaterThan) operator>;
%rename(lessThanOrEqualTo) operator<=;
%rename(greaterThanOrEqualTo) operator>=;
%rename(assignment) operator=;
%rename(additionAssignment) operator+=;
%rename(subtractionAssignment) operator-=;
%rename(multiplicationAssignment) operator*=;
%rename(divisionAssignment) operator/=;
%rename(arrayOperator) operator[];
//This macro allows us to use Python properties on our classes
%define PROPERTY(type,name,getter,setter)
%extend type {
%pythoncode %{
__swig_getmethods__["name"] = getter
__swig_setmethods__["name"] = setter
if _newclass: name = property(getter, setter)
%}
};
%enddef
//Put this in an %extend section to wrap operator<< as __str__
%define STR()
const char* __str__() {
std::ostringstream out;
out << *$self;
return out.str().c_str();
}
%enddef
%include "stdint.i"
%include "std_vector.i"
%include "Vector.i"
%include "Density.i"
//%include "Material.i"
//%include "Density.i"
//%include "Region.i"
//%include "SimpleVolume.i"
%include "Region.i"
%include "SimpleVolume.i"
//%include "TypeDef.i"
//%include "SubArray.i"
//%include "Array.i"
//%include "VertexTypes.i"
//%include "SurfaceMesh.i"
%include "VertexTypes.i"
%include "SurfaceMesh.i"
//%include "SimpleVolumeSampler.i"
//%include "SurfaceExtractor.i"
%include "SurfaceExtractor.i"
//%include "CubicSurfaceExtractor.i"
//%include "CubicSurfaceExtractorWithNormals.i"
//%include "MeshDecimator.i"

View File

@ -5,9 +5,12 @@
#include "SimpleVolume.h"
%}
%import "BaseVolume.h"
%include "Material.h"
%include "Density.h"
%include "SimpleVolume.h"
%template(SimpleVolumeMaterial8) PolyVox::SimpleVolume<PolyVox::Material8>;
%template(BaseVolumeDensity8) PolyVox::BaseVolume<PolyVox::Density8>;
//%template(SimpleVolumeMaterial8) PolyVox::SimpleVolume<PolyVox::Material8>;
%template(SimpleVolumeDensity8) PolyVox::SimpleVolume<PolyVox::Density8>;

View File

@ -1,30 +1,11 @@
%module SurfaceExtractor
%{
#include "SimpleVolume.h"
#include "Material.h"
#include "SurfaceExtractor.h"
#include "PolyVoxCore/Material.h"
namespace PolyVox
{
class SurfaceExtractorSimpleVolumeMaterial8 : public SurfaceExtractor<SimpleVolume, Material8>
{
public:
SurfaceExtractorSimpleVolumeMaterial8(SimpleVolume<Material8>* volData, Region region, SurfaceMesh<PositionMaterialNormal>* result)
: SurfaceExtractor<SimpleVolume, Material8>(volData, region, result) {}
void execute() { SurfaceExtractor<SimpleVolume, Material8>::execute(); }
};
};
%}
%include "SimpleVolume.h"
%include "SurfaceExtractor.h"
namespace PolyVox
{
class SurfaceExtractorSimpleVolumeMaterial8 : public SurfaceExtractor<SimpleVolume, Material8>
{
public:
SurfaceExtractorSimpleVolumeMaterial8(SimpleVolume<Material8>* volData, Region region, SurfaceMesh<PositionMaterialNormal>* result);
void execute();
};
};
%template(SurfaceExtractorSimpleVolumeDensity8) PolyVox::SurfaceExtractor<PolyVox::SimpleVolume<PolyVox::Density8> >;

View File

@ -1,10 +1,37 @@
%module Vector
%{
#include "Vector.h"
#include <sstream>
%}
%include "Vector.h"
PROPERTY(PolyVox::Vector, x, getX, setX)
PROPERTY(PolyVox::Vector, y, getY, setY)
PROPERTY(PolyVox::Vector, z, getZ, setZ)
%extend PolyVox::Vector {
PolyVox::Vector __add__(const PolyVox::Vector& rhs) {
return *$self + rhs;
}
PolyVox::Vector __sub__(const PolyVox::Vector& rhs) {
return *$self - rhs;
}
PolyVox::Vector __div__(const PolyVox::Vector& rhs) {
return *$self / rhs;
}
PolyVox::Vector __div__(const Type& rhs) {
return *$self / rhs;
}
PolyVox::Vector __mul__(const PolyVox::Vector& rhs) {
return *$self * rhs;
}
PolyVox::Vector __mul__(const Type& rhs) {
return *$self * rhs;
}
STR()
};
%template(Vector3DFloat) PolyVox::Vector<3,float>;
%template(Vector3DDouble) PolyVox::Vector<3,double>;
%template(Vector3DInt8) PolyVox::Vector<3,int8_t>;
@ -14,4 +41,4 @@
%template(Vector3DInt32) PolyVox::Vector<3,int32_t>;
%template(Vector3DUint32) PolyVox::Vector<3,uint32_t>;
%rename(assign) Vector3DFloat::operator=;
//%rename(assign) Vector3DFloat::operator=;