@@ -138,7 +138,7 @@ class abstract_voxel_storage {
138138
139139 virtual abstract_voxel_storage* make_explicit (void * location = nullptr ) const = 0;
140140 virtual abstract_voxel_storage* empty_copy () const = 0;
141- virtual abstract_voxel_storage* empty_copy_as (voxel_desc_t & fmt) const = 0;
141+ virtual abstract_voxel_storage* empty_copy_as (voxel_desc_t * fmt) const = 0;
142142 virtual abstract_voxel_storage* copy (void * location = nullptr ) const = 0;
143143
144144 virtual size_t ray_intersect_n (const vec_n<3 , size_t >& pos, const vec_n<3 , size_t >& dir) {
@@ -398,7 +398,7 @@ class continuous_voxel_storage : public regular_voxel_storage {
398398 return nullptr ;
399399 }
400400
401- abstract_voxel_storage* empty_copy_as (voxel_desc_t & fmt) const {
401+ abstract_voxel_storage* empty_copy_as (voxel_desc_t * fmt) const {
402402 // @todo is this safe?
403403 return nullptr ;
404404 }
@@ -621,7 +621,7 @@ class planar_voxel_storage : public regular_voxel_storage {
621621 return nullptr ;
622622 }
623623
624- abstract_voxel_storage* empty_copy_as (voxel_desc_t & fmt) const {
624+ abstract_voxel_storage* empty_copy_as (voxel_desc_t * fmt) const {
625625 // @todo is this safe?
626626 return nullptr ;
627627 }
@@ -781,7 +781,7 @@ class constant_voxel_storage : public regular_voxel_storage {
781781 return nullptr ;
782782 }
783783
784- abstract_voxel_storage* empty_copy_as (voxel_desc_t & fmt) const {
784+ abstract_voxel_storage* empty_copy_as (voxel_desc_t * fmt) const {
785785 // @todo is this safe?
786786 return nullptr ;
787787 }
@@ -1561,7 +1561,7 @@ class memory_mapped_chunked_voxel_storage : public abstract_chunked_voxel_storag
15611561 return new memory_mapped_chunked_voxel_storage (grid_offset_, d_, chunk_size_, nc, factory::mmap_filename ());
15621562 }
15631563
1564- abstract_voxel_storage* empty_copy_as (voxel_desc_t & fmt) const {
1564+ abstract_voxel_storage* empty_copy_as (voxel_desc_t * fmt) const {
15651565 throw std::runtime_error (" not implemented" );
15661566 }
15671567
@@ -1655,15 +1655,17 @@ class chunked_voxel_storage : public abstract_chunked_voxel_storage {
16551655 return new chunked_voxel_storage (grid_offset_, d_, chunk_size_, nc);
16561656 }
16571657
1658- abstract_voxel_storage* empty_copy_as (voxel_desc_t & fmt) const {
1658+ abstract_voxel_storage* empty_copy_as (voxel_desc_t * fmt) const {
16591659 auto nc = num_chunks ();
16601660 // @todo some sort of factory or visitor is needed here:
1661- if (fmt. get_size_in_bits () == 1 ) {
1661+ if (fmt-> get_size_in_bits () == 1 ) {
16621662 return new chunked_voxel_storage<bit_t >(grid_offset_, d_, chunk_size_, nc);
1663- } else if (fmt. get_size_in_bits () == 8 ) {
1663+ } else if (fmt-> get_size_in_bits () == 8 ) {
16641664 return new chunked_voxel_storage<voxel_uint8_t >(grid_offset_, d_, chunk_size_, nc);
1665- } else if (fmt. get_size_in_bits () == 32 ) {
1665+ } else if (fmt-> get_size_in_bits () == 32 ) {
16661666 return new chunked_voxel_storage<voxel_uint32_t >(grid_offset_, d_, chunk_size_, nc);
1667+ } else {
1668+ throw std::runtime_error (" Not implemented" );
16671669 }
16681670 }
16691671
@@ -1976,7 +1978,7 @@ class voxel_region : public regular_voxel_storage {
19761978 virtual abstract_voxel_storage* empty_copy () const { return base_->empty_copy (); }
19771979 virtual abstract_voxel_storage* copy (void * location = nullptr ) const { return base_->copy (); }
19781980
1979- virtual abstract_voxel_storage* empty_copy_as (voxel_desc_t & fmt) const { throw std::runtime_error (" Not implemented" ); }
1981+ virtual abstract_voxel_storage* empty_copy_as (voxel_desc_t * fmt) const { throw std::runtime_error (" Not implemented" ); }
19801982
19811983 virtual long long unsigned int count () const {
19821984 unsigned long long n = 0 ;
0 commit comments