Struct re_renderer::renderer::lines::LineBatchInfo
source · pub struct LineBatchInfo {
pub label: DebugLabel,
pub world_from_obj: Affine3A,
pub line_vertex_count: u32,
pub overall_outline_mask_ids: OutlineMaskPreference,
pub additional_outline_mask_ids_vertex_ranges: Vec<(Range<u32>, OutlineMaskPreference)>,
pub picking_object_id: PickingLayerObjectId,
pub depth_offset: DepthOffset,
pub triangle_cap_length_factor: f32,
pub triangle_cap_width_factor: f32,
}
Expand description
Data that is valid for a batch of line strips.
Fields§
§label: DebugLabel
§world_from_obj: Affine3A
Transformation applies to line positions
TODO(andreas): We don’t apply scaling to the radius yet. Need to pass a scaling factor like this in
let scale = Mat3::from(world_from_obj).determinant().abs().cbrt()
line_vertex_count: u32
Number of vertices covered by this batch.
The batch will start with the next vertex after the one the previous batch ended with. It is expected that this vertex is the first vertex of a new batch.
overall_outline_mask_ids: OutlineMaskPreference
Optional outline mask setting for the entire batch.
additional_outline_mask_ids_vertex_ranges: Vec<(Range<u32>, OutlineMaskPreference)>
Defines an outline mask for an individual vertex ranges (can span several line strips!)
Vertex ranges are not relative within the current batch, but relates to the draw data vertex buffer.
Having many of these individual outline masks can be slow as they require each their own uniform buffer & draw call. This feature is meant for a limited number of “extra selections” If an overall mask is defined as well, the per-vertex-range masks is overwriting the overall mask.
picking_object_id: PickingLayerObjectId
Picking object id that applies for the entire batch.
depth_offset: DepthOffset
Depth offset applied after projection.
triangle_cap_length_factor: f32
Length factor as multiple of a line’s radius applied to all triangle caps in this batch.
This controls how far the “pointy end” of the triangle/arrow-head extends. (defaults to 4.0)
triangle_cap_width_factor: f32
Width factor as multiple of a line’s radius applied to all triangle caps in this batch.
This controls how wide the triangle/arrow-head is orthogonal to the line’s direction. (defaults to 2.0)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LineBatchInfo
impl RefUnwindSafe for LineBatchInfo
impl Send for LineBatchInfo
impl Sync for LineBatchInfo
impl Unpin for LineBatchInfo
impl UnwindSafe for LineBatchInfo
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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