Struct omf::BlockModel
source · pub struct BlockModel {
pub orient: Orient3,
pub grid: Grid3,
pub subblocks: Option<Subblocks>,
}
Expand description
Block model geometry with optional sub-blocks.
First, the orient
field defines the position and orientation of a (U, V, W) space relative
to the project, which could be just an offset or a full rotation as well. Then the grid
field defines the size and number of parent blocks aligned with that space and starting at
(0, 0, 0). Sub-blocks can then optionally be added inside those parent
blocks using a variety of layouts.
While sub-blocks are supported on tensor grids it isn’t a common arrangement and many applications won’t load them.
§Attribute Locations
-
Vertices
puts attribute values on the corners of the parent blocks. If the block count is $(N_0, N_1, N_2)$ then there must be $(N_0 + 1) · (N_1 + 1) · (N_2 + 1)$ values. Ordering increases U first, then V, then W. -
Blocks
puts attribute values on the centroids of the parent block. If the block count is $(N_0, N_1, N_2)$ then there must be $N_0 · N_1 · N_2$ values. Ordering increases U first, then V, then W. -
Subblocks
puts attribute values on sub-block centroids. The number and values and their ordering matches theparents
andcorners
arrays.To have attribute values on undivided parent blocks in this mode there must be a sub-block that covers the whole parent block.
Fields§
§orient: Orient3
Orientation of the block model.
grid: Grid3
Block sizes.
subblocks: Option<Subblocks>
Optional sub-blocks, which can be regular or free-form divisions of the parent blocks.
Implementations§
source§impl BlockModel
impl BlockModel
pub fn new(orient: Orient3, grid: Grid3) -> Self
pub fn with_subblocks( orient: Orient3, grid: Grid3, subblocks: Subblocks, ) -> Self
pub fn with_regular_subblocks( orient: Orient3, grid: Grid3, subblock_count: [u32; 3], subblocks: Array<RegularSubblock>, mode: Option<SubblockMode>, ) -> Self
pub fn with_freeform_subblocks( orient: Orient3, grid: Grid3, subblocks: Array<FreeformSubblock>, ) -> Self
sourcepub fn has_subblocks(&self) -> bool
pub fn has_subblocks(&self) -> bool
Returns true if the model has sub-blocks.
pub fn location_len(&self, location: Location) -> Option<u64>
Trait Implementations§
source§impl Clone for BlockModel
impl Clone for BlockModel
source§fn clone(&self) -> BlockModel
fn clone(&self) -> BlockModel
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for BlockModel
impl Debug for BlockModel
source§impl Default for BlockModel
impl Default for BlockModel
source§fn default() -> BlockModel
fn default() -> BlockModel
source§impl<'de> Deserialize<'de> for BlockModel
impl<'de> Deserialize<'de> for BlockModel
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>,
source§impl From<BlockModel> for Geometry
impl From<BlockModel> for Geometry
source§fn from(value: BlockModel) -> Self
fn from(value: BlockModel) -> Self
source§impl JsonSchema for BlockModel
impl JsonSchema for BlockModel
source§fn schema_name() -> String
fn schema_name() -> String
source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moresource§impl PartialEq for BlockModel
impl PartialEq for BlockModel
source§impl Serialize for BlockModel
impl Serialize for BlockModel
source§impl Validate for BlockModel
impl Validate for BlockModel
impl StructuralPartialEq for BlockModel
Auto Trait Implementations§
impl Freeze for BlockModel
impl RefUnwindSafe for BlockModel
impl Send for BlockModel
impl Sync for BlockModel
impl Unpin for BlockModel
impl UnwindSafe for BlockModel
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)