Struct Geometry

Source
pub struct Geometry {
    pub node: HoudiniNode,
    /* private fields */
}
Expand description

Represents a SOP node with methods for manipulating geometry.

Fields§

§node: HoudiniNode

Implementations§

Source§

impl Geometry

Source

pub fn part_info(&self, part_id: i32) -> Result<PartInfo>

Get geometry partition info by index.

Source

pub fn volume_info(&self, part_id: i32) -> Result<VolumeInfo>

Source

pub fn set_volume_info(&self, part_id: i32, info: &VolumeInfo) -> Result<()>

Source

pub fn volume_bounds(&self, part_id: i32) -> Result<VolumeBounds>

Source

pub fn get_volume_visual_info(&self, part_id: i32) -> Result<VolumeVisualInfo>

Source

pub fn geo_info(&self) -> Result<GeoInfo>

Get information about Node’s geometry. Note: The node must be cooked before calling this method.

Source

pub fn set_part_info(&self, info: &PartInfo) -> Result<()>

Source

pub fn box_info(&self, part_id: i32) -> Result<BoxInfo>

Source

pub fn sphere_info(&self, part_id: i32) -> Result<SphereInfo>

Source

pub fn set_curve_info(&self, part_id: i32, info: &CurveInfo) -> Result<()>

Source

pub fn set_input_curve_info( &self, part_id: i32, info: &InputCurveInfo, ) -> Result<()>

Source

pub fn get_input_curve_info(&self, part_id: i32) -> Result<InputCurveInfo>

Source

pub fn set_input_curve_positions( &self, part_id: i32, positions: &[f32], ) -> Result<()>

Source

pub fn set_input_curve_transform( &self, part_id: i32, positions: &[f32], rotation: &[f32], scale: &[f32], ) -> Result<()>

Source

pub fn set_curve_counts(&self, part_id: i32, count: &[i32]) -> Result<()>

Source

pub fn set_curve_knots(&self, part_id: i32, knots: &[f32]) -> Result<()>

Source

pub fn set_vertex_list( &self, part_id: i32, list: impl AsRef<[i32]>, ) -> Result<()>

Source

pub fn set_face_counts( &self, part_id: i32, list: impl AsRef<[i32]>, ) -> Result<()>

Source

pub fn update(&mut self) -> Result<()>

Source

pub fn curve_info(&self, part_id: i32) -> Result<CurveInfo>

Source

pub fn curve_counts( &self, part_id: i32, start: i32, length: i32, ) -> Result<Vec<i32>>

Retrieve the number of vertices for each curve in the part.

Source

pub fn curve_orders( &self, part_id: i32, start: i32, length: i32, ) -> Result<Vec<i32>>

Retrieve the orders for each curve in the part if the curve has varying order.

Source

pub fn curve_knots( &self, part_id: i32, start: i32, length: i32, ) -> Result<Vec<f32>>

Retrieve the knots of the curves in this part.

Source

pub fn vertex_list(&self, part: &PartInfo) -> Result<Vec<i32>>

Get array containing the vertex-point associations where the ith element in the array is the point index the ith vertex associates with.

Source

pub fn partitions(&self) -> Result<Vec<PartInfo>>

Source

pub fn get_face_counts(&self, part: &PartInfo) -> Result<Vec<i32>>

Source

pub fn get_materials(&self, part: &PartInfo) -> Result<Option<Materials>>

Return material nodes applied to geometry.

Source

pub fn get_group_names(&self, group_type: GroupType) -> Result<StringArray>

Get geometry group names by type.

Source

pub fn get_edge_count_of_edge_group( &self, group: &str, part_id: i32, ) -> Result<i32>

Source

pub fn get_element_count_by_owner( &self, part: &PartInfo, owner: AttributeOwner, ) -> Result<i32>

Get num geometry elements by type (points, prims, vertices).

Source

pub fn get_attribute_count_by_owner( &self, part: &PartInfo, owner: AttributeOwner, ) -> Result<i32>

Get number of attributes by type.

Source

pub fn get_attribute_names( &self, owner: AttributeOwner, part: &PartInfo, ) -> Result<StringArray>

Source

pub fn get_position_attribute(&self, part_id: i32) -> Result<NumericAttr<f32>>

Convenient method for getting the P attribute

Source

pub fn get_attribute_info( &self, part_id: i32, owner: AttributeOwner, name: impl TryInto<AttributeName, Error = impl Into<HapiError>>, ) -> Result<AttributeInfo>

Retrieve information about a geometry attribute.

Source

pub fn get_attribute<T>( &self, part_id: i32, owner: AttributeOwner, name: T, ) -> Result<Option<Attribute>>

Get geometry attribute by name and owner.

Source

pub fn add_numeric_attribute<T: AttribAccess>( &self, name: &str, part_id: i32, info: AttributeInfo, ) -> Result<NumericAttr<T>>

Add a new numeric attribute to geometry.

Source

pub fn add_numeric_array_attribute<T>( &self, name: &str, part_id: i32, info: AttributeInfo, ) -> Result<NumericArrayAttr<T>>
where T: AttribAccess, [T]: ToOwned<Owned = Vec<T>>,

Add a new numeric array attribute to geometry.

Source

pub fn add_string_attribute( &self, name: &str, part_id: i32, info: AttributeInfo, ) -> Result<StringAttr>

Add a new string attribute to geometry

Source

pub fn add_string_array_attribute( &self, name: &str, part_id: i32, info: AttributeInfo, ) -> Result<StringArrayAttr>

Add a new string array attribute to geometry.

Source

pub fn add_dictionary_attribute( &self, name: &str, part_id: i32, info: AttributeInfo, ) -> Result<DictionaryAttr>

Add a new dictionary attribute to geometry

Source

pub fn add_dictionary_array_attribute( &self, name: &str, part_id: i32, info: AttributeInfo, ) -> Result<DictionaryArrayAttr>

Add a new dictionary attribute to geometry

Source

pub fn add_group( &self, part_id: i32, group_type: GroupType, group_name: &str, membership: Option<&[i32]>, ) -> Result<()>

Create a new geometry group.

Source

pub fn delete_group( &self, part_id: i32, group_type: GroupType, group_name: &str, ) -> Result<()>

Delete a geometry group.

Source

pub fn set_group_membership( &self, part_id: i32, group_type: GroupType, group_name: &str, array: &[i32], ) -> Result<()>

Set element membership for a group.

Source

pub fn get_group_membership( &self, part: &PartInfo, group_type: GroupType, group_name: &str, ) -> Result<Vec<i32>>

Get element membership for a group.

Source

pub fn group_count_by_type(&self, group_type: GroupType) -> Result<i32>

Number of geometry groups by type.

Source

pub fn get_instanced_part_ids(&self, part: &PartInfo) -> Result<Vec<i32>>

Source

pub fn get_group_membership_on_packed_instance_part( &self, part: &PartInfo, group_type: GroupType, group_name: &CStr, ) -> Result<(bool, Vec<i32>)>

Get group membership for a packed instance part. This functions allows you to get the group membership for a specific packed primitive part.

Source

pub fn get_group_count_on_packed_instance( &self, part: &PartInfo, ) -> Result<(i32, i32)>

Source

pub fn get_instance_part_groups_names( &self, group: GroupType, part_id: i32, ) -> Result<StringArray>

Source

pub fn get_instance_part_transforms( &self, part: &PartInfo, order: RSTOrder, ) -> Result<Vec<Transform>>

Source

pub fn save_to_file(&self, filepath: &str) -> Result<()>

Save geometry to a file.

Source

pub fn load_from_file(&self, filepath: &str) -> Result<()>

Load geometry from a file.

Source

pub fn commit(&self) -> Result<()>

Commit geometry edits to the node.

Source

pub fn revert(&self) -> Result<()>

Revert last geometry edits

Source

pub fn save_to_memory(&self, format: GeoFormat) -> Result<Vec<i8>>

Serialize node’s geometry to bytes.

Source

pub fn load_from_memory(&self, data: &[i8], format: GeoFormat) -> Result<()>

Load geometry from a given buffer into this node.

Source

pub fn read_volume_tile<T: VolumeStorage>( &self, part: i32, fill: T, tile: &VolumeTileInfo, values: &mut [T], ) -> Result<()>

Source

pub fn write_volume_tile<T: VolumeStorage>( &self, part: i32, tile: &VolumeTileInfo, values: &[T], ) -> Result<()>

Source

pub fn read_volume_voxel<T: VolumeStorage>( &self, part: i32, x_index: i32, y_index: i32, z_index: i32, values: &mut [T], ) -> Result<()>

Source

pub fn write_volume_voxel<T: VolumeStorage>( &self, part: i32, x_index: i32, y_index: i32, z_index: i32, values: &[T], ) -> Result<()>

Source

pub fn foreach_volume_tile( &self, part: i32, info: &VolumeInfo, callback: impl Fn(Tile<'_>), ) -> Result<()>

Iterate over volume tiles and apply a function to each tile.

Source

pub fn get_heightfield_data( &self, part_id: i32, volume_info: &VolumeInfo, ) -> Result<Vec<f32>>

Source

pub fn set_heightfield_data( &self, part_id: i32, name: &str, data: &[f32], ) -> Result<()>

Source

pub fn create_heightfield_input( &self, parent: impl Into<Option<NodeHandle>>, volume_name: &str, x_size: i32, y_size: i32, voxel_size: f32, sampling: HeightFieldSampling, ) -> Result<HeightfieldNodes>

Source

pub fn create_heightfield_input_volume( &self, parent: impl Into<Option<NodeHandle>>, volume_name: &str, x_size: i32, y_size: i32, voxel_size: f32, ) -> Result<HoudiniNode>

Trait Implementations§

Source§

impl Clone for Geometry

Source§

fn clone(&self) -> Geometry

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Geometry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl GeometryExtension for Geometry

Auto Trait Implementations§

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
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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.