UV Surface (.uv_surface)#
cutouts#
- class infinigen2.uv_surface.cutouts.UvCutoutResult(...)[source]#
Bases:
NamedTupleFields:
mesh:ProcNode[~MeshObject];is_cutout_face:ProcNode[bool];holed:ProcNode[~MeshObject];instances:ProcNode[~Instances]
- infinigen2.uv_surface.cutouts.uv_cutout_instances(...) UvCutoutResult[source]#
Remesh a metres-UV surface around footprint holes at each grid point, and place instance over each hole. Instances are authored with +X along the surface normal, +Y along U and +Z along V before rotation_offset.
- Parameters:
surface (pf.ProcNode[pf.MeshObject])
uv_field (pf.ProcNode[pf.Vector] | pf.Vector)
grid (GridFromSpacingResult)
instance (pf.ProcNode[pf.MeshObject] | None)
footprint (pf.ProcNode[pf.MeshObject] | None)
face_expand_margin (pf.ProcNode[pf.Vector] | pf.Vector) -- (default:
(0.0, 0.0, 0.0))rotation_offset (pf.ProcNode[pf.Vector] | pf.Vector) -- (default:
(0.0, 0.0, 0.0))secondary_axis_vector (pf.ProcNode[pf.Vector] | pf.Vector) -- (default:
(0, 0, 1))normal_offset (pf.ProcNode[float] | float) -- (default:
0.0)
grid_placement#
- class infinigen2.uv_surface.grid_placement.FacesForInstanceGridBboxesResult(mesh, is_instance_face, inset)[source]#
Bases:
NamedTupleFields:
mesh:ProcNode[~MeshObject];is_instance_face:ProcNode[bool];inset:ProcNode[Vector]
- class infinigen2.uv_surface.grid_placement.GridFromSpacingResult(...)[source]#
Bases:
NamedTupleFields:
grid_mesh:ProcNode[~MeshObject];query_uv:ProcNode[Vector];index_x:ProcNode[int];index_y:ProcNode[int]
- class infinigen2.uv_surface.grid_placement.GridWithIndicesResult(...)[source]#
Bases:
NamedTupleFields:
mesh:ProcNode[~MeshObject];index_x:ProcNode[int];index_y:ProcNode[int];uv_integer:ProcNode[Vector];uv_factor:ProcNode[Vector]
- class infinigen2.uv_surface.grid_placement.NormedUvToBoundsUvResult(uv_out, lower, upper)[source]#
Bases:
NamedTupleFields:
uv_out:ProcNode[Vector];lower:ProcNode[Vector];upper:ProcNode[Vector]
- class infinigen2.uv_surface.grid_placement.SubgridResult(...)[source]#
Bases:
NamedTupleFields:
is_boundary:ProcNode[bool];is_boundary_x:ProcNode[bool];is_boundary_y:ProcNode[bool];subgrid_verts_x:ProcNode[int];subgrid_verts_y:ProcNode[int];subgrid_index_x:ProcNode[int];subgrid_index_y:ProcNode[int]
- infinigen2.uv_surface.grid_placement.faces_for_instance_grid_bboxes(
- ...,
Remesh a surface into a grid with one hole face-patch per instance footprint.
Nonzero profile heights (metres) round the top/bottom of each footprint into ellipse quarters; use more than two verts_per_instance_x columns for them. face_expand_margin grows the mesh outline; inset maps it back per point.
- Parameters:
target_surface (pf.ProcNode[pf.MeshObject])
target_uv (pf.ProcNode[pf.Vector] | pf.Vector)
instance (pf.ProcNode[pf.MeshObject])
query_grid (pf.ProcNode[pf.MeshObject])
instance_uvs (pf.ProcNode[pf.Vector] | pf.Vector)
grid_index_x (pf.ProcNode[int] | int)
grid_index_y (pf.ProcNode[int] | int)
verts_per_instance_x (pf.ProcNode[int] | int) -- (default:
2)verts_per_instance_y (pf.ProcNode[int] | int) -- (default:
2)margin_verts_x (pf.ProcNode[int] | int) -- (default:
1)margin_verts_y (pf.ProcNode[int] | int) -- (default:
1)face_expand_margin (pf.ProcNode[pf.Vector] | pf.Vector) -- (default:
(0.0, 0.0, 0.0))rotation_offset (pf.ProcNode[pf.Vector] | pf.Vector) -- (default:
(0.0, 0.0, 0.0))top_profile_height (pf.ProcNode[float] | float) -- (default:
0.0)bottom_profile_height (pf.ProcNode[float] | float) -- (default:
0.0)
- infinigen2.uv_surface.grid_placement.grid_between(
- first_uv,
- last_uv,
- count,
count query points evenly spaced in UV from first_uv to last_uv.
- Parameters:
first_uv (pf.ProcNode[pf.Vector] | pf.Vector)
last_uv (pf.ProcNode[pf.Vector] | pf.Vector)
count (pf.ProcNode[int] | int)
- infinigen2.uv_surface.grid_placement.grid_from_spacing(...) GridFromSpacingResult[source]#
- Parameters:
uv_surface (pf.ProcNode[pf.MeshObject])
target_uv (pf.ProcNode[pf.Vector] | pf.Vector)
instance (pf.ProcNode[pf.MeshObject])
spacing (pf.ProcNode[pf.Vector] | pf.Vector)
margin_low (pf.ProcNode[pf.Vector] | pf.Vector)
margin_high (pf.ProcNode[pf.Vector] | pf.Vector)
x_instances_max (pf.ProcNode[int] | int) -- (default:
1000)y_instances_max (pf.ProcNode[int] | int) -- (default:
1000)rotation_offset (pf.ProcNode[pf.Vector] | pf.Vector) -- (default:
(0.0, 0.0, 0.0))
- infinigen2.uv_surface.grid_placement.grid_with_indices(
- vertices_x,
- vertices_y,
- Parameters:
vertices_x (pf.ProcNode[int] | int)
vertices_y (pf.ProcNode[int] | int)
- infinigen2.uv_surface.grid_placement.normed_uv_to_bounds_uv(
- ...,
- Parameters:
geometry (pf.ProcNode[pf.MeshObject])
target_uv (pf.ProcNode[pf.Vector] | pf.Vector)
query_uv (pf.ProcNode[pf.Vector] | pf.Vector)
margin_low (pf.ProcNode[pf.Vector] | pf.Vector)
margin_high (pf.ProcNode[pf.Vector] | pf.Vector)
- infinigen2.uv_surface.grid_placement.place_instances_on_uv_grid(
- ...,
- Parameters:
surface (pf.ProcNode[pf.MeshObject])
uv_field (pf.ProcNode[pf.Vector] | pf.Vector)
grid_mesh (pf.ProcNode[pf.MeshObject])
query_uv (pf.ProcNode[pf.Vector] | pf.Vector)
instance (pf.ProcNode[pf.MeshObject])
secondary_axis_vector (pf.ProcNode[pf.Vector] | pf.Vector) -- (default:
(0, 0, 1))rotation_offset (pf.ProcNode[pf.Vector] | pf.Vector) -- (default:
(0.0, 0.0, 0.0))normal_offset (pf.ProcNode[float] | float) -- (default:
0.0)
- infinigen2.uv_surface.grid_placement.subgrid(...) SubgridResult[source]#
- Parameters:
x_index (pf.ProcNode[int] | int)
y_index (pf.ProcNode[int] | int)
n_verts_x (pf.ProcNode[int] | int)
n_verts_y (pf.ProcNode[int] | int)
margin_verts_x (pf.ProcNode[int] | int)
margin_verts_y (pf.ProcNode[int] | int)