pub struct Space {
pub coords: Vec2<i32>,
pub width: usize,
pub shape: Vec3<usize>,
pub min: Vec3<i32>,
pub params: SpaceParams,
pub updated_levels: HashSet<u32>,
/* private fields */
}
Expand description
A data structure used in Voxelize to access voxel data of multiple chunks at the same time. Centered with one chunk, a Space allows developers to know what’s around a chunk.
Construct a space by calling chunks.make_space
.
Fields
coords: Vec2<i32>
Chunk coordinate of the center chunk of the space.
width: usize
Width of the space.
shape: Vec3<usize>
Shape of the space.
min: Vec3<i32>
Minimum voxel coordinate of the space.
params: SpaceParams
Parameters to construct the space.
updated_levels: HashSet<u32>
A set of sub-chunks that have been updated.
Implementations
Trait Implementations
sourceimpl VoxelAccess for Space
impl VoxelAccess for Space
sourcefn get_raw_voxel(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_raw_voxel(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the raw voxel data at the voxel position. Zero is returned if chunk doesn’t exist. Panics if space does not contain voxel data.
sourcefn get_voxel(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_voxel(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the voxel type at the voxel position. Zero is returned if chunk doesn’t exist. Panics if space does not contain voxel data.
sourcefn get_voxel_rotation(&self, vx: i32, vy: i32, vz: i32) -> BlockRotation
fn get_voxel_rotation(&self, vx: i32, vy: i32, vz: i32) -> BlockRotation
Get the voxel rotation at the voxel position. Zero is returned if chunk doesn’t exist. Panics if space does not contain voxel data.
sourcefn get_voxel_stage(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_voxel_stage(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the voxel stage at the voxel position. Zero is returned if chunk doesn’t exist. Panics if space does not contain voxel data.
sourcefn get_raw_light(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_raw_light(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the raw light level at the voxel position. Zero is returned if chunk doesn’t exist. Panics if space does not contain lighting data.
sourcefn set_raw_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_raw_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the raw light level at the voxel position. Returns false if chunk doesn’t exist.
sourcefn get_sunlight(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_sunlight(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the sunlight level at the voxel position. Zero is returned if chunk doesn’t exist.
sourcefn get_max_height(&self, vx: i32, vz: i32) -> u32
fn get_max_height(&self, vx: i32, vz: i32) -> u32
Get the max height at the voxel column. Zero is returned if column doesn’t exist.
sourcefn get_lights(&self, cx: i32, cz: i32) -> Option<&Ndarray<u32>>
fn get_lights(&self, cx: i32, cz: i32) -> Option<&Ndarray<u32>>
Get a reference of lighting n-dimensional array.
sourcefn set_raw_voxel(&mut self, vx: i32, vy: i32, vz: i32, voxel: u32) -> bool
fn set_raw_voxel(&mut self, vx: i32, vy: i32, vz: i32, voxel: u32) -> bool
Set the raw voxel data at the voxel coordinate. Returns false couldn’t set.
sourcefn set_voxel(&mut self, vx: i32, vy: i32, vz: i32, id: u32) -> bool
fn set_voxel(&mut self, vx: i32, vy: i32, vz: i32, id: u32) -> bool
Set the voxel type at a voxel coordinate. Returns false couldn’t set.
sourcefn set_voxel_rotation(
&mut self,
vx: i32,
vy: i32,
vz: i32,
rotation: &BlockRotation
) -> bool
fn set_voxel_rotation(
&mut self,
vx: i32,
vy: i32,
vz: i32,
rotation: &BlockRotation
) -> bool
Set the voxel rotation at a voxel coordinate. Does nothing if chunk isn’t found.
sourcefn set_voxel_stage(&mut self, vx: i32, vy: i32, vz: i32, stage: u32) -> bool
fn set_voxel_stage(&mut self, vx: i32, vy: i32, vz: i32, stage: u32) -> bool
Set the voxel stage at a voxel coordinate. Does nothing if chunk isn’t found.
sourcefn set_sunlight(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_sunlight(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the sunlight level at a voxel coordinate. Returns false if could not set.
sourcefn get_red_light(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_red_light(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the red light level at the voxel position. Zero is returned if chunk doesn’t exist.
sourcefn set_red_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_red_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the red light level at the voxel position. Returns false if could not set.
sourcefn get_green_light(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_green_light(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the green light level at the voxel position. Zero is returned if chunk doesn’t exist.
sourcefn set_green_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_green_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the green light level at the voxel position. Returns false if could not set.
sourcefn get_blue_light(&self, vx: i32, vy: i32, vz: i32) -> u32
fn get_blue_light(&self, vx: i32, vy: i32, vz: i32) -> u32
Get the blue light level at the voxel position. Zero is returned if chunk doesn’t exist.
sourcefn set_blue_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
fn set_blue_light(&mut self, vx: i32, vy: i32, vz: i32, level: u32) -> bool
Set the blue light level at the voxel position. Returns false if could not set.
sourcefn get_torch_light(&self, vx: i32, vy: i32, vz: i32, color: &LightColor) -> u32
fn get_torch_light(&self, vx: i32, vy: i32, vz: i32, color: &LightColor) -> u32
Get the torch light level by color at a voxel coordinate. Returns 0 if chunk does not exist.
sourcefn set_torch_light(
&mut self,
vx: i32,
vy: i32,
vz: i32,
level: u32,
color: &LightColor
) -> bool
fn set_torch_light(
&mut self,
vx: i32,
vy: i32,
vz: i32,
level: u32,
color: &LightColor
) -> bool
Set the torch light level by color at a voxel coordinate. Returns false if could not set.
sourcefn set_max_height(&mut self, vx: i32, vz: i32, height: u32) -> bool
fn set_max_height(&mut self, vx: i32, vz: i32, height: u32) -> bool
Set the max height at a voxel column. Does nothing if column does not exist.
Auto Trait Implementations
impl RefUnwindSafe for Space
impl Send for Space
impl Sync for Space
impl Unpin for Space
impl UnwindSafe for Space
Blanket Implementations
impl<T> Any for T where
T: Any,
impl<T> Any for T where
T: Any,
fn get_type_id(&self) -> TypeId
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
sourceimpl<T> TryDefault for T where
T: Default,
impl<T> TryDefault for T where
T: Default,
sourcefn try_default() -> Result<T, String>
fn try_default() -> Result<T, String>
Tries to create the default.
sourcefn unwrap_default() -> Self
fn unwrap_default() -> Self
Calls try_default
and panics on an error case.
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more