Class Mesh#

Mesh sub class of Geometry

A Mesh has four domains:

Constructors#

Constructors come from the Blender menu Mesh primitives:

The Line constructor is also available with the different ways to initialize a line:

  • LineEndPoints: line is defined by its end points, the number of points is provided

  • LineEndPointsResolution: same as previous but resolution is given rather than the number of points

  • LineOffset: line is defined by a starting point, a direction and a number of points

Constructor#

Mesh(self, socket, node=None, label=None)

rom geonodes.nodes import domains

elf.points = Vertex(self) # Initialized before super().init which can override points

Content#

Properties

ID | bounding_box | bounding_box_min | convex_hull | corner_count | curve_component | domain_size | edge_count | face_count | index | instances_component | is_viewport | island | island_count | island_index | material_index | mesh_component | normal | point_count | points_component | position | radius | separate_components | volume_component

Inherited

bl_idname | bnode | is_multi_input | is_output | is_plugged | links | name | node_chain_label | socket_index

Class and static methods

Circle | Collection | Cone | Cube | Cylinder | FromCollection | Grid | IcoSphere | Input | Line | LineEndPoints | LineEndPointsResolution | LineOffset | UVSphere | capture_attribute_node | random_boolean | random_float | random_integer | random_vector

Inherited

get_bl_idname | get_class_name | gives_bsocket | is_socket | is_vector | python_type_to_socket | value_data_type

Methods

attribute_statistic | boolean_difference | boolean_intersect | boolean_union | capture_attribute | corners_of_face | corners_of_vertex | delete | delete_all | delete_edges | delete_faces | distribute_points_on_faces | dual_mesh | duplicate | edge_paths_to_curves | edge_paths_to_selection | edges_of_corner | edges_of_vertex | extrude | face_is_planar | face_of_corner | face_set_boundaries | field_at_index | flip_faces | instance_on_points | instantiate | interpolate_domain | is_shade_smooth | join | material_selection | merge_by_distance | named_attribute | named_boolean | named_color | named_float | named_integer | named_vector | offset_corner_in_face | pack_uv_islands | proximity | proximity_edges | proximity_faces | proximity_points | raycast | raycast_interpolated | raycast_nearest | remove_named_attribute | replace_material | sample_index | sample_nearest | sample_nearest_surface | sample_uv_surface | scale_elements | scale_single_axis | scale_uniform | separate | set_ID | set_material | set_material_index | set_position | set_shade_smooth | shortest_edge_paths | show_handles | split_edges | store_named_attribute | store_named_boolean | store_named_color | store_named_float | store_named_integer | store_named_vector | subdivide | subdivision_surface | switch | to_curve | to_instance | to_points | to_volume | transform | triangulate | uv_unwrap | vertex_of_corner | view | viewer

Inherited

connected_sockets | get_blender_socket | init_domains | init_socket | plug | reroute | reset_properties | stack | to_output

Properties#

ID#

Returns:#

  • socket ID

Go to top - main - nodes - nodes menus

bounding_box#

Returns:#

  • socket bounding_box of class Mesh

Go to top - main - nodes - nodes menus

bounding_box_min#

Returns:#

  • socket max

Go to top - main - nodes - nodes menus

convex_hull#

Returns:#

  • socket convex_hull of class Mesh

Go to top - main - nodes - nodes menus

corner_count#

Returns:#

  • socket face_corner_count

Go to top - main - nodes - nodes menus

curve_component#

Returns:#

  • socket curve of class Curve

Go to top - main - nodes - nodes menus

domain_size#

Returns:#

  • node with sockets [‘point_count’, ‘edge_count’, ‘face_count’, ‘face_corner_count’, ‘spline_count’, ‘instance_count’]

Go to top - main - nodes - nodes menus

edge_count#

Returns:#

  • socket edge_count

Go to top - main - nodes - nodes menus

face_count#

Returns:#

  • socket face_count

Go to top - main - nodes - nodes menus

index#

Returns:#

  • socket index

Go to top - main - nodes - nodes menus

instances_component#

Returns:#

  • socket instances of class Instances

Go to top - main - nodes - nodes menus

is_viewport#

Returns:#

  • socket is_viewport

Go to top - main - nodes - nodes menus

island#

Returns:#

  • node with sockets [‘island_index’, ‘island_count’]

Go to top - main - nodes - nodes menus

island_count#

Returns:#

  • socket island_count

Go to top - main - nodes - nodes menus

island_index#

Returns:#

  • socket island_index

Go to top - main - nodes - nodes menus

material_index#

Returns:#

  • socket material_index

Go to top - main - nodes - nodes menus

mesh_component#

Returns:#

  • socket mesh of class Mesh

Go to top - main - nodes - nodes menus

normal#

Returns:#

  • socket normal

Go to top - main - nodes - nodes menus

point_count#

Returns:#

  • socket point_count

Go to top - main - nodes - nodes menus

points_component#

Returns:#

  • socket point_cloud of class Points

Go to top - main - nodes - nodes menus

position#

Returns:#

  • socket position

Go to top - main - nodes - nodes menus

radius#

Returns:#

  • socket radius

Go to top - main - nodes - nodes menus

separate_components#

Returns:#

  • node with sockets [‘mesh’, ‘point_cloud’, ‘curve’, ‘volume’, ‘instances’]

Go to top - main - nodes - nodes menus

volume_component#

Returns:#

  • socket volume of class Volume

Go to top - main - nodes - nodes menus

Class and static methods#

Circle#

@classmethod
def Circle(cls, vertices=None, radius=None, fill_type='NONE')

Args:#

  • vertices: Integer

  • radius: Float

  • fill_type (str): ‘NONE’ in [NONE, NGON, TRIANGLE_FAN]

Returns:#

  • socket mesh

Go to top - main - nodes - nodes menus

Collection#

@classmethod
def Collection(cls, collection=None, separate_children=None, reset_children=None, transform_space='ORIGINAL')

Args:#

  • collection: Collection

  • separate_children: Boolean

  • reset_children: Boolean

  • transform_space (str): ‘ORIGINAL’ in [ORIGINAL, RELATIVE]

Returns:#

  • socket geometry

Go to top - main - nodes - nodes menus

Cone#

@staticmethod
def Cone(vertices=None, side_segments=None, fill_segments=None, radius_top=None, radius_bottom=None, depth=None, fill_type='NGON')

Args:#

  • vertices: Integer

  • side_segments: Integer

  • fill_segments: Integer

  • radius_top: Float

  • radius_bottom: Float

  • depth: Float

  • fill_type (str): ‘NGON’ in [NONE, NGON, TRIANGLE_FAN]

Node Image

Returns:#

  • tuple (’mesh’, ‘top’, ‘bottom’, ‘side’)

Go to top - main - nodes - nodes menus

Cube#

@classmethod
def Cube(cls, size=None, vertices_x=None, vertices_y=None, vertices_z=None)

Args:#

  • size: Vector

  • vertices_x: Integer

  • vertices_y: Integer

  • vertices_z: Integer

Returns:#

  • socket mesh

Go to top - main - nodes - nodes menus

Cylinder#

@staticmethod
def Cylinder(vertices=None, side_segments=None, fill_segments=None, radius=None, depth=None, fill_type='NGON')

Args:#

  • vertices: Integer

  • side_segments: Integer

  • fill_segments: Integer

  • radius: Float

  • depth: Float

  • fill_type (str): ‘NGON’ in [NONE, NGON, TRIANGLE_FAN]

Node Image

Returns:#

  • tuple (’mesh’, ‘top’, ‘bottom’, ‘side’)

Go to top - main - nodes - nodes menus

FromCollection#

@classmethod
def FromCollection(cls, collection=None, separate_children

Get the geometry from a collection

Go to top - main - nodes - nodes menus

Grid#

@classmethod
def Grid(cls, size_x=None, size_y=None, vertices_x=None, vertices_y=None)

Args:#

  • size_x: Float

  • size_y: Float

  • vertices_x: Integer

  • vertices_y: Integer

Returns:#

  • socket mesh

Go to top - main - nodes - nodes menus

IcoSphere#

@classmethod
def IcoSphere(cls, radius=None, subdivisions=None)

Args:#

  • radius: Float

  • subdivisions: Integer

Returns:#

  • socket mesh

Go to top - main - nodes - nodes menus

Input#

@classmethod
def Input(cls, name = None, description = "")

Create a Geometry input socket in the Group Input Node

Args:#

  • name: The socket name

  • description: User tip

Returns:#

  • Geometry: The Geometry data socket

Note: This method create a new input socket in the Group Input node. To get the default input geometry, use Tree.input_geometry property.

Go to top - main - nodes - nodes menus

Line#

@classmethod
def Line(cls, count=None, resolution=None, start_location=None, offset=None, count_mode='TOTAL', mode='OFFSET')

Args:#

  • count: Integer

  • resolution: Float

  • start_location: Vector

  • offset: Vector

  • count_mode (str): ‘TOTAL’ in [TOTAL, RESOLUTION]

  • mode (str): ‘OFFSET’ in [OFFSET, END_POINTS]

Returns:#

  • socket mesh

Go to top - main - nodes - nodes menus

LineEndPoints#

@classmethod
def LineEndPoints(cls, count=None, start_location=None, end_location=None)

Args:#

  • count: Integer

  • start_location: Vector

  • end_location: Vector

Returns:#

  • socket mesh

Go to top - main - nodes - nodes menus

LineEndPointsResolution#

@classmethod
def LineEndPointsResolution(cls, resolution=None, start_location=None, end_location=None)

Args:#

  • resolution: Float

  • start_location: Vector

  • end_location: Vector

Returns:#

  • socket mesh

Go to top - main - nodes - nodes menus

LineOffset#

@classmethod
def LineOffset(cls, count=None, start_location=None, offset=None)

Args:#

  • count: Integer

  • start_location: Vector

  • offset: Vector

Returns:#

  • socket mesh

Go to top - main - nodes - nodes menus

UVSphere#

@classmethod
def UVSphere(cls, segments=None, rings=None, radius=None)

Args:#

  • segments: Integer

  • rings: Integer

  • radius: Float

Returns:#

  • socket mesh

Go to top - main - nodes - nodes menus

capture_attribute_node#

@staticmethod
def capture_attribute_node(geometry=None, value=None, data_type='FLOAT', domain='POINT')

Args:#

  • geometry: Geometry

  • value: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • data_type (str): ‘FLOAT’ in [FLOAT, INT, FLOAT_VECTOR, FLOAT_COLOR, BOOLEAN]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • node with sockets [‘geometry’, ‘attribute’]

Go to top - main - nodes - nodes menus

random_boolean#

@staticmethod
def random_boolean(probability=None, ID=None, seed=None)

Args:#

  • probability: Float

  • ID: Integer

  • seed: Integer

Returns:#

  • socket value

Go to top - main - nodes - nodes menus

random_float#

@staticmethod
def random_float(min=None, max=None, ID=None, seed=None)

Args:#

  • min: [‘Vector’, ‘Float’, ‘Integer’]

  • max: [‘Vector’, ‘Float’, ‘Integer’]

  • ID: Integer

  • seed: Integer

Returns:#

  • socket value

Go to top - main - nodes - nodes menus

random_integer#

@staticmethod
def random_integer(min=None, max=None, ID=None, seed=None)

Args:#

  • min: [‘Vector’, ‘Float’, ‘Integer’]

  • max: [‘Vector’, ‘Float’, ‘Integer’]

  • ID: Integer

  • seed: Integer

Returns:#

  • socket value

Go to top - main - nodes - nodes menus

random_vector#

@staticmethod
def random_vector(min=None, max=None, ID=None, seed=None)

Args:#

  • min: [‘Vector’, ‘Float’, ‘Integer’]

  • max: [‘Vector’, ‘Float’, ‘Integer’]

  • ID: Integer

  • seed: Integer

Returns:#

  • socket value

Go to top - main - nodes - nodes menus

Methods#

attribute_statistic#

def attribute_statistic(self, selection=None, attribute=None, domain='POINT')

Args:#

  • selection: Boolean

  • attribute: [‘Float’, ‘Vector’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • node with sockets [‘mean’, ‘median’, ‘sum’, ‘min’, ‘max’, ‘range’, ‘standard_deviation’, ‘variance’]

Go to top - main - nodes - nodes menus

boolean_difference#

def boolean_difference(self, *mesh_2, self_intersection=None, hole_tolerant=None)

Args:#

  • mesh_2: Geometry

  • self_intersection: Boolean

  • hole_tolerant: Boolean

Returns:#

  • socket intersecting_edges

Go to top - main - nodes - nodes menus

boolean_intersect#

def boolean_intersect(*mesh_2, self_intersection=None, hole_tolerant=None)

Args:#

  • mesh_2: Geometry

  • self_intersection: Boolean

  • hole_tolerant: Boolean

Returns:#

  • socket intersecting_edges

Go to top - main - nodes - nodes menus

boolean_union#

def boolean_union(*mesh_2, self_intersection=None, hole_tolerant=None)

Args:#

  • mesh_2: Geometry

  • self_intersection: Boolean

  • hole_tolerant: Boolean

Returns:#

  • socket intersecting_edges

Go to top - main - nodes - nodes menus

capture_attribute#

def capture_attribute(self, value=None, domain='POINT')

Args:#

  • value: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • socket attribute

Go to top - main - nodes - nodes menus

corners_of_face#

def corners_of_face(self, face_index=None, weights=None, sort_index=None)

Args:#

  • face_index: Integer

  • weights: Float

  • sort_index: Integer

Node Image

Returns:#

  • tuple (’corner_index’, ‘total’)

Go to top - main - nodes - nodes menus

corners_of_vertex#

def corners_of_vertex(self, vertex_index=None, weights=None, sort_index=None)

Args:#

  • vertex_index: Integer

  • weights: Float

  • sort_index: Integer

Node Image

Returns:#

  • tuple (’corner_index’, ‘total’)

Go to top - main - nodes - nodes menus

delete#

def delete(self, selection=None, domain='POINT', mode='ALL')

Args:#

  • selection: Boolean

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CURVE, INSTANCE]

  • mode (str): ‘ALL’ in [ALL, EDGE_FACE, ONLY_FACE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

delete_all#

def delete_all(self, selection=None, domain='POINT')

Args:#

  • selection: Boolean

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CURVE, INSTANCE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

delete_edges#

def delete_edges(self, selection=None, domain='POINT')

Args:#

  • selection: Boolean

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CURVE, INSTANCE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

delete_faces#

def delete_faces(self, selection=None, domain='POINT')

Args:#

  • selection: Boolean

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CURVE, INSTANCE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

distribute_points_on_faces#

def distribute_points_on_faces(self, selection=None, distance_min=None, density_max=None, density=None, density_factor=None, seed=None, distribute_method='RANDOM')

Args:#

  • selection: Boolean

  • distance_min: Float

  • density_max: Float

  • density: Float

  • density_factor: Float

  • seed: Integer

  • distribute_method (str): ‘RANDOM’ in [RANDOM, POISSON]

Node Image

Returns:#

  • tuple (’points’, ‘normal’, ‘rotation’)

Go to top - main - nodes - nodes menus

dual_mesh#

def dual_mesh(self, keep_boundaries=None)

Args:#

  • keep_boundaries: Boolean

Returns:#

  • socket dual_mesh of class Mesh

Go to top - main - nodes - nodes menus

duplicate#

def duplicate(self, selection=None, amount=None, domain='POINT')

Args:#

  • selection: Boolean

  • amount: Integer

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, SPLINE, INSTANCE]

Returns:#

  • socket duplicate_index

Go to top - main - nodes - nodes menus

edge_paths_to_curves#

def edge_paths_to_curves(self, start_vertices=None, next_vertex_index=None)

Args:#

  • start_vertices: Boolean

  • next_vertex_index: Integer

Returns:#

  • socket curves of class Curve

Go to top - main - nodes - nodes menus

edge_paths_to_selection#

def edge_paths_to_selection(self, start_vertices=None, next_vertex_index=None)

Args:#

  • start_vertices: Boolean

  • next_vertex_index: Integer

Returns:#

  • socket selection

Go to top - main - nodes - nodes menus

edges_of_corner#

def edges_of_corner(self, corner_index=None)

Args:#

  • corner_index: Integer

Node Image

Returns:#

  • tuple (’next_edge_index’, ‘previous_edge_index’)

Go to top - main - nodes - nodes menus

edges_of_vertex#

def edges_of_vertex(self, vertex_index=None, weights=None, sort_index=None)

Args:#

  • vertex_index: Integer

  • weights: Float

  • sort_index: Integer

Node Image

Returns:#

  • tuple (’edge_index’, ‘total’)

Go to top - main - nodes - nodes menus

extrude#

def extrude(self, selection=None, offset=None, offset_scale=None, individual=None, mode='FACES')

Args:#

  • selection: Boolean

  • offset: Vector

  • offset_scale: Float

  • individual: Boolean

  • mode (str): ‘FACES’ in [VERTICES, EDGES, FACES]

Node Image

Returns:#

  • tuple (’top’, ‘side’)

Go to top - main - nodes - nodes menus

face_is_planar#

def face_is_planar(self, threshold=None)

Args:#

  • threshold: Float

Returns:#

  • socket planar

Go to top - main - nodes - nodes menus

face_of_corner#

def face_of_corner(self, corner_index=None)

Args:#

  • corner_index: Integer

Node Image

Returns:#

  • tuple (’face_index’, ‘index_in_face’)

Go to top - main - nodes - nodes menus

face_set_boundaries#

def face_set_boundaries(self, face_set=None)

Args:#

  • face_set: Integer

Returns:#

  • socket boundary_edges

Go to top - main - nodes - nodes menus

field_at_index#

def field_at_index(self, index=None, value=None, domain='POINT')

Args:#

  • index: Integer

  • value: [‘Float’, ‘Integer’, ‘Vector’, ‘Color’, ‘Boolean’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • socket value

Go to top - main - nodes - nodes menus

flip_faces#

def flip_faces(self, selection=None)

Args:#

  • selection: Boolean

Returns:#

  • self

Go to top - main - nodes - nodes menus

instance_on_points#

def instance_on_points(self, selection=None, instance=None, pick_instance=None, instance_index=None, rotation=None, scale=None)

Args:#

  • selection: Boolean

  • instance: Geometry

  • pick_instance: Boolean

  • instance_index: Integer

  • rotation: Vector

  • scale: Vector

Returns:#

  • socket instances

Go to top - main - nodes - nodes menus

instantiate#

def instantiate(self, count = 1, realize = False)

Instantiate the geometry

Args:#

  • count: Number of instances to create

  • realize: True to realize the instances

Returns:#

  • Instances or Geometry

The duplication is performed by instantiating the geometry along the vertices of a Mesh Line initialized with count points.

The operator * can be used to operate this method with realize = False:

    
curves = curve * 10

# is equivalent to

curves = curve.duplicate(10, realize=False)

Go to top - main - nodes - nodes menus

interpolate_domain#

def interpolate_domain(self, value=None, domain='POINT')

Args:#

  • value: [‘Float’, ‘Integer’, ‘Vector’, ‘Color’, ‘Boolean’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • socket value

Go to top - main - nodes - nodes menus

is_shade_smooth#

def is_shade_smooth(self)

Returns:#

  • socket smooth

Go to top - main - nodes - nodes menus

join#

def join(*geometry)

Args:#

  • geometry: Geometry

Returns:#

  • socket geometry

Go to top - main - nodes - nodes menus

material_selection#

def material_selection(self, material=None)

Args:#

  • material: Material

Returns:#

  • socket selection

Go to top - main - nodes - nodes menus

merge_by_distance#

def merge_by_distance(self, selection=None, distance=None, mode='ALL')

Args:#

  • selection: Boolean

  • distance: Float

  • mode (str): ‘ALL’ in [ALL, CONNECTED]

Returns:#

  • self

Go to top - main - nodes - nodes menus

named_attribute#

def named_attribute(self, name=None, data_type='FLOAT')

Args:#

  • name: String

  • data_type (str): ‘FLOAT’ in [FLOAT, INT, FLOAT_VECTOR, FLOAT_COLOR, BOOLEAN]

Returns:#

  • socket attribute

Go to top - main - nodes - nodes menus

named_boolean#

def named_boolean(self, name=None)

Args:#

  • name: String

Returns:#

  • socket attribute

Go to top - main - nodes - nodes menus

named_color#

def named_color(self, name=None)

Args:#

  • name: String

Returns:#

  • socket attribute

Go to top - main - nodes - nodes menus

named_float#

def named_float(self, name=None)

Args:#

  • name: String

Returns:#

  • socket attribute

Go to top - main - nodes - nodes menus

named_integer#

def named_integer(self, name=None)

Args:#

  • name: String

Returns:#

  • socket attribute

Go to top - main - nodes - nodes menus

named_vector#

def named_vector(self, name=None)

Args:#

  • name: String

Returns:#

  • socket attribute

Go to top - main - nodes - nodes menus

offset_corner_in_face#

def offset_corner_in_face(self, corner_index=None, offset=None)

Args:#

  • corner_index: Integer

  • offset: Integer

Returns:#

  • socket corner_index

Go to top - main - nodes - nodes menus

pack_uv_islands#

def pack_uv_islands(self, uv=None, selection=None, margin=None, rotate=None)

Args:#

  • uv: Vector

  • selection: Boolean

  • margin: Float

  • rotate: Boolean

Returns:#

  • socket uv

Go to top - main - nodes - nodes menus

proximity#

def proximity(self, target=None, source_position=None, target_element='FACES')

Args:#

  • target: Geometry

  • source_position: Vector

  • target_element (str): ‘FACES’ in [POINTS, EDGES, FACES]

Returns:#

  • socket distance

Go to top - main - nodes - nodes menus

proximity_edges#

def proximity_edges(self, target=None, source_position=None)

Args:#

  • target: Geometry

  • source_position: Vector

Returns:#

  • socket distance

Go to top - main - nodes - nodes menus

proximity_faces#

def proximity_faces(self, target=None, source_position=None)

Args:#

  • target: Geometry

  • source_position: Vector

Returns:#

  • socket distance

Go to top - main - nodes - nodes menus

proximity_points#

def proximity_points(self, target=None, source_position=None)

Args:#

  • target: Geometry

  • source_position: Vector

Returns:#

  • socket distance

Go to top - main - nodes - nodes menus

raycast#

def raycast(self, target_geometry=None, attribute=None, source_position=None, ray_direction=None, ray_length=None, mapping='INTERPOLATED')

Args:#

  • target_geometry: Geometry

  • attribute: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • source_position: Vector

  • ray_direction: Vector

  • ray_length: Float

  • mapping (str): ‘INTERPOLATED’ in [INTERPOLATED, NEAREST]

Returns:#

  • node with sockets [‘is_hit’, ‘hit_position’, ‘hit_normal’, ‘hit_distance’, ‘attribute’]

Go to top - main - nodes - nodes menus

raycast_interpolated#

def raycast_interpolated(self, target_geometry=None, attribute=None, source_position=None, ray_direction=None, ray_length=None)

Args:#

  • target_geometry: Geometry

  • attribute: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • source_position: Vector

  • ray_direction: Vector

  • ray_length: Float

Returns:#

  • node with sockets [‘is_hit’, ‘hit_position’, ‘hit_normal’, ‘hit_distance’, ‘attribute’]

Go to top - main - nodes - nodes menus

raycast_nearest#

def raycast_nearest(self, target_geometry=None, attribute=None, source_position=None, ray_direction=None, ray_length=None)

Args:#

  • target_geometry: Geometry

  • attribute: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • source_position: Vector

  • ray_direction: Vector

  • ray_length: Float

Returns:#

  • node with sockets [‘is_hit’, ‘hit_position’, ‘hit_normal’, ‘hit_distance’, ‘attribute’]

Go to top - main - nodes - nodes menus

remove_named_attribute#

def remove_named_attribute(self, name=None)

Args:#

  • name: String

Returns:#

  • self

Go to top - main - nodes - nodes menus

replace_material#

def replace_material(self, old=None, new=None)

Args:#

  • old: Material

  • new: Material

Returns:#

  • self

Go to top - main - nodes - nodes menus

sample_index#

def sample_index(self, value=None, index=None, clamp=False, domain='POINT')

Args:#

  • value: [‘Float’, ‘Integer’, ‘Vector’, ‘Color’, ‘Boolean’]

  • index: Integer

  • clamp (bool): False

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • socket value

Go to top - main - nodes - nodes menus

sample_nearest#

def sample_nearest(self, sample_position=None, domain='POINT')

Args:#

  • sample_position: Vector

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER]

Returns:#

  • socket index

Go to top - main - nodes - nodes menus

sample_nearest_surface#

def sample_nearest_surface(self, value=None, sample_position=None)

Args:#

  • value: [‘Float’, ‘Integer’, ‘Vector’, ‘Color’, ‘Boolean’]

  • sample_position: Vector

Returns:#

  • socket value

Go to top - main - nodes - nodes menus

sample_uv_surface#

def sample_uv_surface(self, value=None, source_uv_map=None, sample_uv=None)

Args:#

  • value: [‘Float’, ‘Integer’, ‘Vector’, ‘Color’, ‘Boolean’]

  • source_uv_map: Vector

  • sample_uv: Vector

Node Image

Returns:#

  • tuple (’value’, ‘is_valid’)

Go to top - main - nodes - nodes menus

scale_elements#

def scale_elements(self, selection=None, scale=None, center=None, axis=None, domain='FACE', scale_mode='UNIFORM')

Args:#

  • selection: Boolean

  • scale: Float

  • center: Vector

  • axis: Vector

  • domain (str): ‘FACE’ in [FACE, EDGE]

  • scale_mode (str): ‘UNIFORM’ in [UNIFORM, SINGLE_AXIS]

Returns:#

  • self

Go to top - main - nodes - nodes menus

scale_single_axis#

def scale_single_axis(self, selection=None, scale=None, center=None, axis=None, domain='FACE')

Args:#

  • selection: Boolean

  • scale: Float

  • center: Vector

  • axis: Vector

  • domain (str): ‘FACE’ in [FACE, EDGE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

scale_uniform#

def scale_uniform(self, selection=None, scale=None, center=None, domain='FACE')

Args:#

  • selection: Boolean

  • scale: Float

  • center: Vector

  • domain (str): ‘FACE’ in [FACE, EDGE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

separate#

def separate(self, selection=None, domain='POINT')

Args:#

  • selection: Boolean

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CURVE, INSTANCE]

Node Image

Returns:#

  • tuple (’selection’, ‘inverted’)

Go to top - main - nodes - nodes menus

set_ID#

def set_ID(self, selection=None, ID=None)

Args:#

  • selection: Boolean

  • ID: Integer

Returns:#

  • self

Go to top - main - nodes - nodes menus

set_material#

def set_material(self, selection=None, material=None)

Args:#

  • selection: Boolean

  • material: Material

Returns:#

  • self

Go to top - main - nodes - nodes menus

set_material_index#

def set_material_index(self, selection=None, material_index=None)

Args:#

  • selection: Boolean

  • material_index: Integer

Returns:#

  • self

Go to top - main - nodes - nodes menus

set_position#

def set_position(self, selection=None, position=None, offset=None)

Args:#

  • selection: Boolean

  • position: Vector

  • offset: Vector

Returns:#

  • self

Go to top - main - nodes - nodes menus

set_shade_smooth#

def set_shade_smooth(self, selection=None, shade_smooth=None)

Args:#

  • selection: Boolean

  • shade_smooth: Boolean

Returns:#

  • self

Go to top - main - nodes - nodes menus

shortest_edge_paths#

def shortest_edge_paths(self, end_vertex=None, edge_cost=None)

Args:#

  • end_vertex: Boolean

  • edge_cost: Float

Node Image

Returns:#

  • tuple (’next_vertex_index’, ‘total_cost’)

Go to top - main - nodes - nodes menus

show_handles#

def show_handles(self)

Generate a mesh and cloud points to visualize the control points and handles

Returns:#

  • Geometry: The geometry can be joined to the output

Example:

curve = ... # Curve initialization

visu = curve.show_handles()

tree.output_geometry = curve + visu

Go to top - main - nodes - nodes menus

split_edges#

def split_edges(self, selection=None)

Args:#

  • selection: Boolean

Returns:#

  • self

Go to top - main - nodes - nodes menus

store_named_attribute#

def store_named_attribute(self, name=None, value=None, domain='POINT')

Args:#

  • name: String

  • value: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

store_named_boolean#

def store_named_boolean(self, name=None, value=None, domain='POINT')

Args:#

  • name: String

  • value: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

store_named_color#

def store_named_color(self, name=None, value=None, domain='POINT')

Args:#

  • name: String

  • value: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

store_named_float#

def store_named_float(self, name=None, value=None, domain='POINT')

Args:#

  • name: String

  • value: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

store_named_integer#

def store_named_integer(self, name=None, value=None, domain='POINT')

Args:#

  • name: String

  • value: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

store_named_vector#

def store_named_vector(self, name=None, value=None, domain='POINT')

Args:#

  • name: String

  • value: [‘Vector’, ‘Float’, ‘Color’, ‘Boolean’, ‘Integer’]

  • domain (str): ‘POINT’ in [POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • self

Go to top - main - nodes - nodes menus

subdivide#

def subdivide(self, level=None)

Args:#

  • level: Integer

Returns:#

  • self

Go to top - main - nodes - nodes menus

subdivision_surface#

def subdivision_surface(self, level=None, edge_crease=None, vertex_crease=None, boundary_smooth='ALL', uv_smooth='PRESERVE_BOUNDARIES')

Args:#

  • level: Integer

  • edge_crease: Float

  • vertex_crease: Float

  • boundary_smooth (str): ‘ALL’ in [PRESERVE_CORNERS, ALL]

  • uv_smooth (str): ‘PRESERVE_BOUNDARIES’ in [NONE, PRESERVE_CORNERS, PRESERVE_CORNERS_AND_JUNCTIONS, PRESERVE_CORNERS_JUNCTIONS_AND_CONCAVE, PRESERVE_BOUNDARIES, SMOOTH_ALL]

Returns:#

  • self

Go to top - main - nodes - nodes menus

switch#

def switch(self, switch=None, true=None)

Args:#

  • switch: Boolean

  • true: Geometry

Returns:#

  • socket output

Go to top - main - nodes - nodes menus

to_curve#

def to_curve(self, selection=None)

Args:#

  • selection: Boolean

Returns:#

  • socket curve of class Curve

Go to top - main - nodes - nodes menus

to_instance#

def to_instance(*geometry)

Args:#

  • geometry: Geometry

Returns:#

  • socket instances of class Instances

Go to top - main - nodes - nodes menus

to_points#

def to_points(self, selection=None, position=None, radius=None, mode='VERTICES')

Args:#

  • selection: Boolean

  • position: Vector

  • radius: Float

  • mode (str): ‘VERTICES’ in [VERTICES, EDGES, FACES, CORNERS]

Returns:#

  • socket points of class Points

Go to top - main - nodes - nodes menus

to_volume#

def to_volume(self, density=None, voxel_size=None, voxel_amount=None, exterior_band_width=None, interior_band_width=None, fill_volume=None, resolution_mode='VOXEL_AMOUNT')

Args:#

  • density: Float

  • voxel_size: Float

  • voxel_amount: Float

  • exterior_band_width: Float

  • interior_band_width: Float

  • fill_volume: Boolean

  • resolution_mode (str): ‘VOXEL_AMOUNT’ in [VOXEL_AMOUNT, VOXEL_SIZE]

Returns:#

  • socket volume of class Volume

Go to top - main - nodes - nodes menus

transform#

def transform(self, translation=None, rotation=None, scale=None)

Args:#

  • translation: Vector

  • rotation: Vector

  • scale: Vector

Returns:#

  • self

Go to top - main - nodes - nodes menus

triangulate#

def triangulate(self, selection=None, minimum_vertices=None, ngon_method='BEAUTY', quad_method='SHORTEST_DIAGONAL')

Args:#

  • selection: Boolean

  • minimum_vertices: Integer

  • ngon_method (str): ‘BEAUTY’ in [BEAUTY, CLIP]

  • quad_method (str): ‘SHORTEST_DIAGONAL’ in [BEAUTY, FIXED, FIXED_ALTERNATE, SHORTEST_DIAGONAL, LONGEST_DIAGONAL]

Returns:#

  • self

Go to top - main - nodes - nodes menus

uv_unwrap#

def uv_unwrap(self, selection=None, seam=None, margin=None, fill_holes=None, method='ANGLE_BASED')

Args:#

  • selection: Boolean

  • seam: Boolean

  • margin: Float

  • fill_holes: Boolean

  • method (str): ‘ANGLE_BASED’ in [ANGLE_BASED, CONFORMAL]

Returns:#

  • socket uv

Go to top - main - nodes - nodes menus

vertex_of_corner#

def vertex_of_corner(self, corner_index=None)

Args:#

  • corner_index: Integer

Returns:#

  • socket vertex_index

Go to top - main - nodes - nodes menus

view#

def view(self, value=None, domain='AUTO')

Args:#

  • value: [‘Float’, ‘Vector’, ‘Color’, ‘Integer’, ‘Boolean’]

  • domain (str): ‘AUTO’ in [AUTO, POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • node with sockets []

Go to top - main - nodes - nodes menus

viewer#

def viewer(self, value=None, domain='AUTO')

Args:#

  • value: [‘Float’, ‘Vector’, ‘Color’, ‘Integer’, ‘Boolean’]

  • domain (str): ‘AUTO’ in [AUTO, POINT, EDGE, FACE, CORNER, CURVE, INSTANCE]

Returns:#

  • node with sockets []

Go to top - main - nodes - nodes menus