pub struct MeshTextureData {
pub texture_id: u32,
pub rgba: Option<Arc<Vec<u8>>>,
pub width: u32,
pub height: u32,
pub url: Option<String>,
pub repeat_s: bool,
pub repeat_t: bool,
}Expand description
A surface texture attached to a mesh (issues #961, #1781). Exactly one of
rgba / url is set:
rgba: decoded in Rust (IfcBlobTexturePNG /IfcPixelTextureraw); the browser only uploads it to a GPU texture — no image logic in TS.url: anIfcImageTexturereference (#1781) the HOST layer resolves — typically a sibling image file inside the.ifcZIPcontainer. Real files share one multi-megapixel image across dozens of face sets, so the pipeline ships the reference, never per-mesh pixels.
Fields§
§texture_id: u32Express id of the source IfcSurfaceTexture — the stable dedup key:
every mesh sampling the same image carries the same id, so consumers
create ONE GPU texture per id, not one per mesh. 0 in legacy payloads.
rgba: Option<Arc<Vec<u8>>>width * height * 4 bytes, row-major, top-down, straight alpha.
Arc-shared across meshes; None for an external image reference.
width: u32§height: u32§url: Option<String>IfcImageTexture.URLReference verbatim (#1781); None for decoded.
repeat_s: boolSampler wrap from IfcSurfaceTexture.RepeatS/RepeatT.
repeat_t: boolImplementations§
Source§impl MeshTextureData
impl MeshTextureData
Sourcepub fn from_attachment(att: &TextureAttachment) -> Self
pub fn from_attachment(att: &TextureAttachment) -> Self
Build from the geometry crate’s per-face-set attachment.
Trait Implementations§
Source§impl Clone for MeshTextureData
impl Clone for MeshTextureData
Source§fn clone(&self) -> MeshTextureData
fn clone(&self) -> MeshTextureData
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MeshTextureData
impl Debug for MeshTextureData
Source§impl<'de> Deserialize<'de> for MeshTextureData
impl<'de> Deserialize<'de> for MeshTextureData
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for MeshTextureData
impl RefUnwindSafe for MeshTextureData
impl Send for MeshTextureData
impl Sync for MeshTextureData
impl Unpin for MeshTextureData
impl UnsafeUnpin for MeshTextureData
impl UnwindSafe for MeshTextureData
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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> ⓘ
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 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> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§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 moreSource§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).Source§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.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.