pub enum SpatialKind {
Show 15 variants
None,
Point,
Direction,
Tangent,
Plane,
Length,
InverseLength,
FromWorld,
ToWorld,
WithinWorld,
WithinWorldColumn,
LightRecord,
CubeByDirection,
VolumeByPosition,
ImageOfDirections,
}Expand description
How a value moves from the world’s frame into a program frame C (world = C(program), a signed axis permutation
times a unit scale): the methods of SourceFrame that convert each kind are named with it. View space and clip
space are not frames of the world: a world-to-view matrix converted as SpatialKind::FromWorld takes the program’s
positions to the same view space, so values in view or clip space, and lengths measured there, keep theirs.
Variants§
None
No coordinates of the world’s space (a colour, a count, a texture coordinate, a view-space value): fed as it is.
Point
A position, or an offset between positions, in the world’s or an object’s space:
SourceFrame::point_to_source.
Direction
A direction or a normal: SourceFrame::direction_to_source.
Tangent
A tangent, xyz a direction and w the bitangent’s sign: SourceFrame::tangent_to_source.
Plane
A plane (n, d) of the world’s space: SourceFrame::plane_to_source.
Length
A distance measured in the world’s space: SourceFrame::length_to_source.
InverseLength
One over a distance measured in the world’s space: SourceFrame::inverse_length_to_source.
FromWorld
A matrix that takes world (or object) positions to a space that is not the world’s (the view, the clip):
SourceFrame::from_world_matrix_to_source.
ToWorld
A matrix that gives world (or object) positions from a space that is not the world’s:
SourceFrame::to_world_matrix_to_source.
WithinWorld
A matrix from one space of the world’s frame to another (an object’s to the world, a joint’s to its model’s):
SourceFrame::world_matrix_to_source.
WithinWorldColumn
One column of a SpatialKind::WithinWorld rotation (an instance’s axis): the column of the converted matrix,
which for a permuting frame is another axis’s column converted, so a consumer converts the whole rotation.
LightRecord
A record of a light table: each field by its own kind (LightValue::spatial_kind).
CubeByDirection
A cube image a program samples by a direction (a reflection probe): its faces must be the program frame’s.
VolumeByPosition
A volume image a program samples at a position (light probes): its placement must be the program frame’s.
ImageOfDirections
An image whose texels hold directions (a decal normal buffer): written and read in the program frame.
Trait Implementations§
Source§impl Clone for SpatialKind
impl Clone for SpatialKind
impl Copy for SpatialKind
Source§impl Debug for SpatialKind
impl Debug for SpatialKind
impl Eq for SpatialKind
Source§impl Hash for SpatialKind
impl Hash for SpatialKind
Source§impl PartialEq for SpatialKind
impl PartialEq for SpatialKind
impl StructuralPartialEq for SpatialKind
Auto Trait Implementations§
impl Forget for SpatialKind
impl Freeze for SpatialKind
impl RefUnwindSafe for SpatialKind
impl Send for SpatialKind
impl Sync for SpatialKind
impl Unpin for SpatialKind
impl UnsafeUnpin for SpatialKind
impl UnwindSafe for SpatialKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.