MeshRow

Struct MeshRow 

Source
pub(super) struct MeshRow<'a> {
Show 13 fields pub express_id: u32, pub ifc_type: &'a str, pub v_start: u32, pub vert_count: u32, pub i_start: u32, pub index_count: u32, pub color: [f32; 4], pub origin: [f64; 3], pub geometry_class: u8, pub geometry_item_id: Option<u32>, pub material_id: Option<u32>, pub finish: [f32; 2], pub rotation: [f32; 9],
}
Expand description

One mesh’s row across the three tables, in the order mesh_schema() lists.

A struct, not the 11-element tuple this was. That tuple was POSITIONAL and several slots share a type – the four u32 offsets/counts, and the two Option<u32> source ids. Measured BEFORE this branch grew its tests: swapping the two ids compiled and left 202/202 green, writing every representation-item id into the material column and back.

It is caught now – mesh_table_carries_both_source_ids_on_the_right_columns fails on that swap. Named fields make it unreachable at the construction site as well, which is belt and braces, not a reason to drop the test: the RecordBatch arrays are still positional against the schema.

Fields§

§express_id: u32§ifc_type: &'a str§v_start: u32§vert_count: u32§i_start: u32§index_count: u32§color: [f32; 4]§origin: [f64; 3]

In the SAME Y-up frame as the emitted positions. The swap is linear, so swap(origin + position) = swap(origin) + swap(position); see services::axis for the one definition.

§geometry_class: u8§geometry_item_id: Option<u32>§material_id: Option<u32>§finish: [f32; 2]

[metallic, roughness], NaN where unauthored (#5984).

§rotation: [f32; 9]

Row-major 3x3, Y-up, placing the SHARED block this row points at: world = origin + R * p. Identity for a row that owns its geometry.

Implementations§

Source§

impl<'a> MeshRow<'a>

Source

pub fn new(mesh: &'a MeshData, placement: RowPlacement) -> Self

Build one row from an occurrence and the placement of the shape block it draws.

Here rather than at the call site so the field order is stated once, next to the schema whose column order it feeds. On every unshared row, which is every row of a -parquet-v8 payload, the block is mesh’s own.

Auto Trait Implementations§

§

impl<'a> Freeze for MeshRow<'a>

§

impl<'a> RefUnwindSafe for MeshRow<'a>

§

impl<'a> Send for MeshRow<'a>

§

impl<'a> Sync for MeshRow<'a>

§

impl<'a> Unpin for MeshRow<'a>

§

impl<'a> UnwindSafe for MeshRow<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<U> As for U

§

fn as_<T>(self) -> T
where T: CastFrom<U>,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

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

Checks if self is actually part of its subset T (and can be converted to it).
§

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

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,