primitive#

Module dedicated for basic primitive.

faces_from_sphere_vertices(vertices)

Triangulate a set of vertices on the sphere.

repeat_primitive_function(func, centers, *)

Repeat Vertices and triangles of a specific primitive function.

repeat_primitive(vertices, faces, centers, *)

Repeat Vertices and triangles of a specific primitive shape.

prim_square()

Return vertices and triangles for a square geometry.

prim_box()

Return vertices and triangle for a box geometry.

prim_sphere(*[, name, gen_faces, phi, theta])

Provide vertices and triangles of the spheres.

prim_superquadric([roundness, sphere_name])

Provide vertices and triangles of a superquadrics.

prim_tetrahedron()

Return vertices and triangles for a tetrahedron.

prim_icosahedron()

Return vertices and triangles for icosahedron.

prim_rhombicuboctahedron()

Return vertices and triangles for rhombicuboctahedron.

prim_star(*[, dim])

Return vertices and triangle for star geometry.

prim_triangularprism()

Return vertices and triangle for a regular triangular prism.

prim_pentagonalprism()

Return vertices and triangles for a pentagonal prism.

prim_octagonalprism()

Return vertices and triangle for an octagonal prism.

prim_frustum()

Return vertices and triangle for a square frustum prism.

prim_cylinder(*[, radius, height, sectors, ...])

Return vertices and triangles for a cylinder.

prim_arrow(*[, height, resolution, ...])

Return vertices and triangle for arrow geometry.

prim_cone(*[, radius, height, sectors])

Return vertices and triangle of a Cone.

faces_from_sphere_vertices#

fury.primitive.faces_from_sphere_vertices(vertices)[source]#

Triangulate a set of vertices on the sphere.

Parameters:
vertices(M, 3) ndarray

XYZ coordinates of vertices on the sphere.

Returns:
faces(N, 3) ndarray

Indices into vertices; forms triangular faces.

repeat_primitive_function#

fury.primitive.repeat_primitive_function(func, centers, *, func_args=None, directions=(1, 0, 0), colors=(1, 0, 0), scales=1)[source]#

Repeat Vertices and triangles of a specific primitive function.

It could be seen as a glyph. The primitive function should generate and return vertices and faces

Parameters:
funccallable

primitive functions

centersndarray, shape (N, 3)

Superquadrics positions

func_argsargs

primitive functions arguments/parameters

directionsndarray, shape (N, 3) or tuple (3,), optional

The orientation vector of the cone.

colorsndarray (N,3) or (N, 4) or tuple (3,) or tuple (4,)

RGB or RGBA (for opacity) R, G, B and A should be at the range [0, 1]

scalesndarray, shape (N) or (N,3) or float or int, optional

The height of the cone.

Returns:
big_vertices: ndarray

Expanded vertices at the centers positions

big_triangles: ndarray

Expanded triangles that composed our shape to duplicate

big_colorsndarray

Expanded colors applied to all vertices/faces

repeat_primitive#

fury.primitive.repeat_primitive(vertices, faces, centers, *, directions=None, colors=(1, 0, 0), scales=1, have_tiled_verts=False)[source]#

Repeat Vertices and triangles of a specific primitive shape.

It could be seen as a glyph.

Parameters:
vertices: ndarray

vertices coords to duplicate at the centers positions

triangles: ndarray

triangles that composed our shape to duplicate

centersndarray, shape (N, 3)

Superquadrics positions

directionsndarray, shape (N, 3) or tuple (3,), optional

The orientation vector of the cone.

colorsndarray (N,3) or (N, 4) or tuple (3,) or tuple (4,)

RGB or RGBA (for opacity) R, G, B and A should be at the range [0, 1]

scalesndarray, shape (N) or (N,3) or float or int, optional

The height of the cone.

have_tiled_vertsbool

option to control if we need to duplicate vertices of a shape or not

Returns:
big_vertices: ndarray

Expanded vertices at the centers positions

big_triangles: ndarray

Expanded triangles that composed our shape to duplicate

big_colorsndarray

Expanded colors applied to all vertices/faces

big_centersndarray

Expanded centers for all vertices/faces

prim_square#

fury.primitive.prim_square()[source]#

Return vertices and triangles for a square geometry.

Returns:
vertices: ndarray

4 vertices coords that composed our square

triangles: ndarray

2 triangles that composed our square

prim_box#

fury.primitive.prim_box()[source]#

Return vertices and triangle for a box geometry.

Returns:
vertices: ndarray

8 vertices coords that composed our box

triangles: ndarray

12 triangles that composed our box

prim_sphere#

fury.primitive.prim_sphere(*, name='symmetric362', gen_faces=False, phi=None, theta=None)[source]#

Provide vertices and triangles of the spheres.

Parameters:
namestr, optional

which sphere - one of: * ‘symmetric362’ * ‘symmetric642’ * ‘symmetric724’ * ‘repulsion724’ * ‘repulsion100’ * ‘repulsion200’

gen_facesbool, optional

If True, triangulate a set of vertices on the sphere to get the faces. Otherwise, we load the saved faces from a file. Default: False

phiint, optional

Set the number of points in the latitude direction

thetaint, optional

Set the number of points in the longitude direction

Returns:
vertices: ndarray

vertices coords that composed our sphere

triangles: ndarray

triangles that composed our sphere

Examples

>>> import numpy as np
>>> from fury.primitive import prim_sphere
>>> verts, faces = prim_sphere('symmetric362')
>>> verts.shape == (362, 3)
True
>>> faces.shape == (720, 3)
True

prim_superquadric#

fury.primitive.prim_superquadric(roundness=(1, 1), sphere_name='symmetric362')[source]#

Provide vertices and triangles of a superquadrics.

Parameters:
roundnesstuple, optional

parameters (Phi and Theta) that control the shape of the superquadric

sphere_namestr, optional

which sphere - one of: * ‘symmetric362’ * ‘symmetric642’ * ‘symmetric724’ * ‘repulsion724’ * ‘repulsion100’ * ‘repulsion200’

Returns:
vertices: ndarray

vertices coords that composed our sphere

triangles: ndarray

triangles that composed our sphere

Examples

>>> import numpy as np
>>> from fury.primitive import prim_superquadric
>>> verts, faces = prim_superquadric(roundness=(1, 1))
>>> verts.shape == (362, 3)
True
>>> faces.shape == (720, 3)
True

prim_tetrahedron#

fury.primitive.prim_tetrahedron()[source]#

Return vertices and triangles for a tetrahedron.

This shape has a side length of two units.

Returns:
pyramid_vert: numpy.ndarray

4 vertices coordinates

triangles: numpy.ndarray

4 triangles representing the tetrahedron

prim_icosahedron#

fury.primitive.prim_icosahedron()[source]#

Return vertices and triangles for icosahedron.

Returns:
icosahedron_vertices: numpy.ndarray

12 vertices coordinates to the icosahedron

icosahedron_mesh: numpy.ndarray

20 triangles representing the tetrahedron

prim_rhombicuboctahedron#

fury.primitive.prim_rhombicuboctahedron()[source]#

Return vertices and triangles for rhombicuboctahedron.

Returns:
vertices: numpy.ndarray

24 vertices coordinates to the rhombicuboctahedron

triangles: numpy.ndarray

44 triangles representing the rhombicuboctahedron

prim_star#

fury.primitive.prim_star(*, dim=2)[source]#

Return vertices and triangle for star geometry.

Parameters:
dim: int

Represents the dimension of the wanted star

Returns:
vertices: ndarray

vertices coords that composed our star

triangles: ndarray

Triangles that composed our star

prim_triangularprism#

fury.primitive.prim_triangularprism()[source]#

Return vertices and triangle for a regular triangular prism.

Returns:
vertices: ndarray

vertices coords that compose our prism

triangles: ndarray

triangles that compose our prism

prim_pentagonalprism#

fury.primitive.prim_pentagonalprism()[source]#

Return vertices and triangles for a pentagonal prism.

Returns:
vertices: ndarray

vertices coords that compose our prism

triangles: ndarray

triangles that compose our prism

prim_octagonalprism#

fury.primitive.prim_octagonalprism()[source]#

Return vertices and triangle for an octagonal prism.

Returns:
vertices: ndarray

vertices coords that compose our prism

triangles: ndarray

triangles that compose our prism

prim_frustum#

fury.primitive.prim_frustum()[source]#

Return vertices and triangle for a square frustum prism.

Returns:
vertices: ndarray

vertices coords that compose our prism

triangles: ndarray

triangles that compose our prism

prim_cylinder#

fury.primitive.prim_cylinder(*, radius=0.5, height=1, sectors=36, capped=True)[source]#

Return vertices and triangles for a cylinder.

Parameters:
radius: float

Radius of the cylinder

height: float

Height of the cylinder

sectors: int

Sectors in the cylinder

capped: bool

Whether the cylinder is capped at both ends or open

Returns:
vertices: ndarray

vertices coords that compose our cylinder

triangles: ndarray

triangles that compose our cylinder

prim_arrow#

fury.primitive.prim_arrow(*, height=1.0, resolution=10, tip_length=0.35, tip_radius=0.1, shaft_radius=0.03)[source]#

Return vertices and triangle for arrow geometry.

Parameters:
heightfloat

The height of the arrow (default: 1.0).

resolutionint

The resolution of the arrow.

tip_lengthfloat

The tip size of the arrow (default: 0.35)

tip_radiusfloat

the tip radius of the arrow (default: 0.1)

shaft_radiusfloat

The shaft radius of the arrow (default: 0.03)

Returns:
vertices: ndarray

vertices of the Arrow

triangles: ndarray

Triangles of the Arrow

prim_cone#

fury.primitive.prim_cone(*, radius=0.5, height=1, sectors=10)[source]#

Return vertices and triangle of a Cone.

Parameters:
radius: float, optional

Radius of the cone

height: float, optional

Height of the cone

sectors: int, optional

Sectors in the cone

Returns:
vertices: ndarray

vertices coords that compose our cone

triangles: ndarray

triangles that compose our cone