File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed
Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff line change 8888 throw std::runtime_error (" Unsupported data type, size: " + std::to_string ($self->value_bits ()));
8989 }
9090 }
91+ bool set (long i, long j, long k, PyObject* v) {
92+ auto acvs_voxels = dynamic_cast <abstract_chunked_voxel_storage const *>($self);
93+ if (!acvs_voxels) {
94+ throw std::runtime_error (" Unsupported storage" );
95+ }
96+ auto ijk_long = (make_vec<long >(i, j, k) - (acvs_voxels->grid_offset () * acvs_voxels->chunk_size ()).as <long >());
97+ auto ijk = ijk_long.as <size_t >();
98+ if (!(ijk_long > 0 ).all () || !(ijk < $self->extents ()).all ()) {
99+ return false ;
100+ }
101+ if ($self->value_bits () == 1 ) {
102+ bool b = PyObject_IsTrue (v) == 1 ;
103+ $self->Set (ijk, &b);
104+ return true ;
105+ }
106+ return false ;
107+ }
91108 PyObject* get (double x, double y, double z) const {
92109 auto acvs_voxels = dynamic_cast <abstract_chunked_voxel_storage const *>($self);
93110 if (!acvs_voxels) {
You can’t perform that action at this time.
0 commit comments