29 lines
988 B
Python
29 lines
988 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
import sys
|
|
sys.path.append("../library/bindings/")
|
|
|
|
import unittest
|
|
import PolyVoxCore
|
|
|
|
def test_functor(sampler):
|
|
return sampler <= 0
|
|
|
|
class TestSurfaceExtractor(unittest.TestCase):
|
|
def setUp(self):
|
|
|
|
#Create a small volume
|
|
r = PolyVoxCore.Region(PolyVoxCore.Vector3DInt32(0,0,0), PolyVoxCore.Vector3DInt32(31,31,31))
|
|
self.vol = PolyVoxCore.SimpleVolumeDensity8(r)
|
|
#Set one single voxel to have a reasonably high density
|
|
self.vol.setVoxelAt(PolyVoxCore.Vector3DInt32(5, 5, 5), PolyVoxCore.Density8(200))
|
|
|
|
def test_hit_voxel(self):
|
|
self.assertEqual(PolyVoxCore.raycastWithEndpointsSimpleVolumeDensity8(self.vol, PolyVoxCore.Vector3DFloat(0,0,0), PolyVoxCore.Vector3DFloat(31,31,31), test_functor), 1)
|
|
|
|
def test_miss_voxel(self):
|
|
self.assertEqual(PolyVoxCore.raycastWithEndpointsSimpleVolumeDensity8(self.vol, PolyVoxCore.Vector3DFloat(0,0,0), PolyVoxCore.Vector3DFloat(0,31,31), test_functor), 0)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|