entities.molecule.annotations

entities.molecule.annotations

Classes

Name Description
Label2D Common Label2D Annotation for all entities
Label3D Common Label3D Annotation for all entities
MoleculeAnnotation Base class for a Molecule Annotation
MoleculeAnnotationManager Annotation Manager for Molecule Entity
MoleculeInfo Molecule Info Annotation

Label2D

entities.molecule.annotations.Label2D()

Common Label2D Annotation for all entities

Label3D

entities.molecule.annotations.Label3D()

Common Label3D Annotation for all entities

MoleculeAnnotation

entities.molecule.annotations.MoleculeAnnotation(molecule)

Base class for a Molecule Annotation

All molecule annotations should derive from this base class and implement the ‘draw’ method. All derived classes will have access to the molecule instance (self.molecule) and all the annotation inputs and common params via self.interface.

An optional ‘defaults’ method can be provided to set default values to the annotation.

Attributes

Name Description
viewport_height Get the viewport region height in pixels
viewport_width Get the viewport region width in pixels

Methods

Name Description
bpy_image_to_pil_image Convert Blender image to PIL image
defaults Optional method to set default annotation params
distance Distance between two vectors
draw The main draw method for an annotation
draw_bmesh Draw a Blender bmesh
draw_bpy_image Draw an image from bpy.data.images at the given 2D position (normalized
draw_circle_2d Draw a circle around a 2D point (normalized coordinate) in the viewport space
draw_circle_3d Draw a circle around a 3D point in the plane perpendicular to the
draw_cone Draw a cone
draw_cylinder Draw a cylinder
draw_line_2d Draw a line between two points (normalized co-ordinates) in 2D viewport space
draw_line_3d Draw a line between two points in 3D space
draw_n_sided_cylinder Draw an n sided cylinder
draw_n_sided_pyramid Draw an n sided pyramid
draw_sphere Draw a sphere
draw_text_2d Draw text at a given 2D position (normalized co-ordinates) of Viewport.
draw_text_3d Draw text at a given 3D position
draw_triclinic_cell Draw a triclinic box based on box vector lengths and angles
draw_wigner_seitz_cell Draw a Wigner-Seitz cell from triclinic vectors
pil_image_to_bpy_image Convert PIL image to Blender image
validate Optional method to validate annotation inputs
bpy_image_to_pil_image
entities.molecule.annotations.MoleculeAnnotation.bpy_image_to_pil_image(
    bpy_image,
)

Convert Blender image to PIL image

Parameters
Name Type Description Default
bpy_image bpy.types.Image Blender image required
Returns
Name Type Description
Image.Image PIL Image
defaults
entities.molecule.annotations.MoleculeAnnotation.defaults()

Optional method to set default annotation params This is called only once when the annotation instance is created

distance
entities.molecule.annotations.MoleculeAnnotation.distance(v1, v2)

Distance between two vectors

Parameters
Name Type Description Default
v1 Vector A 3D or 2D vector or tuple required
v2 Vector A 3D or 2D vector or tuple required
Returns
Name Type Description
Distance between the two vectors
draw
entities.molecule.annotations.MoleculeAnnotation.draw()

The main draw method for an annotation This is called multiple times in the 3D viewport draw handler

draw_bmesh
entities.molecule.annotations.MoleculeAnnotation.draw_bmesh(bm, overrides=None)

Draw a Blender bmesh

Parameters
Name Type Description Default
bm bmesh.types.BMesh A bmesh object. A copy is made for internal use. Users will have to free the passed in object required
overrides dict Optional dictionary to override common annotation params None
draw_bpy_image
entities.molecule.annotations.MoleculeAnnotation.draw_bpy_image(
    pos_2d,
    image,
    scale=1.0,
)

Draw an image from bpy.data.images at the given 2D position (normalized co-ordinates) of Viewport.

Parameters
Name Type Description Default
pos_2d Vector Normalized co-ordinates (0 - 1). (0, 0) is at bottom left. Bottom left of the image is placed at this position required
image bpy.types.Image An image from bpy.data.images to draw at specified position required
scale float Scale of the image to draw 1.0
draw_circle_2d
entities.molecule.annotations.MoleculeAnnotation.draw_circle_2d(
    center,
    radius,
    angle=360.0,
    start_dv=None,
    c_arrow=False,
    cc_arrow=False,
    overrides=None,
)

Draw a circle around a 2D point (normalized coordinate) in the viewport space

Parameters
Name Type Description Default
center Vector A 2D co-ordinate of the center. Normalized co-ordinate (0 - 1). (0, 0) is at bottom left required
radius float The radius of the circle required
angle float An angle less than 360 for partial circle (arc) - in degrees Default is 360 degrees 360.0
start_dv Vector The direction vector along which to start the circle (arc) If not provided, a random point in the circle plane is chosen None
c_arrow bool Whether to display clockwise arrow. Default is False False
cc_arrow bool Whether to display counter clockwise arrow. Default is False False
overrides dict Optional dictionary to override common annotation params None
draw_circle_3d
entities.molecule.annotations.MoleculeAnnotation.draw_circle_3d(
    center,
    radius,
    normal=None,
    angle=360.0,
    start_dv=None,
    c_arrow=False,
    cc_arrow=False,
    overrides=None,
)

Draw a circle around a 3D point in the plane perpendicular to the given normal

Parameters
Name Type Description Default
center Vector A 3D position vector of the center required
radius float The radius of the circle required
normal Vector | None The normal vector of the plane on which the cirle is to be drawn. When None, the circle is drawn in the viewport plane None
angle float An angle less than 360 for partial circle (arc) - in degrees Default is 360 degrees 360.0
start_dv Vector The direction vector along which to start the circle (arc) If not provided, a random point in the plane perpendicular to the normal is chosen None
c_arrow bool Whether to display clockwise arrow. Default is False False
cc_arrow bool Whether to display counter clockwise arrow. Default is False False
overrides dict Optional dictionary to override common annotation params None
draw_cone
entities.molecule.annotations.MoleculeAnnotation.draw_cone(
    location=(0, 0, 0),
    radius=1.0,
    height=1.0,
    axis=(0, 0, 1),
    cap_ends=True,
    overrides=None,
)

Draw a cone

Parameters
Name Type Description Default
location Vector A 3D position vector of the base center (0, 0, 0)
radius float Radius of the cone 1.0
height float Height of the cone 1.0
axis Vector Axis of the cone (0, 0, 1)
cap_ends bool Whether to cap the base True
overrides dict Optional dictionary to override common annotation params None
draw_cylinder
entities.molecule.annotations.MoleculeAnnotation.draw_cylinder(
    location=(0, 0, 0),
    radius=1.0,
    height=1.0,
    axis=(0, 0, 1),
    cap_ends=True,
    overrides=None,
)

Draw a cylinder

Parameters
Name Type Description Default
location Vector A 3D position vector of the base center (0, 0, 0)
radius float Radius of the cylinder 1.0
height float Height of the cylinder 1.0
axis Vector Axis of the cylinder (0, 0, 1)
cap_ends bool Whether to cap the ends of cylinder True
overrides dict Optional dictionary to override common annotation params None
draw_line_2d
entities.molecule.annotations.MoleculeAnnotation.draw_line_2d(
    v1,
    v2,
    v1_text=None,
    v2_text=None,
    mid_text=None,
    v1_arrow=False,
    v2_arrow=False,
    overrides=None,
)

Draw a line between two points (normalized co-ordinates) in 2D viewport space

Parameters
Name Type Description Default
v1 Vector 2D co-ordinates of the first point. Normalized co-ordinate (0 - 1). (0, 0) is at bottom left required
v2 Vector 2D co-ordinates of the second point. Normalized co-ordinate (0 - 1). (0, 0) is at bottom left required
v1_text str Optional text to display at v1 None
v2_text str Optional text to display at v2 None
mid_text str Optional text to display at the middle of the line None
v1_arrow bool Whether to display an arrow at v1 False
v2_arrow bool Whether to display an arrow at v2 False
overrides dict Optional dictionary to override common annotation params None
draw_line_3d
entities.molecule.annotations.MoleculeAnnotation.draw_line_3d(
    v1,
    v2,
    v1_text=None,
    v2_text=None,
    mid_text=None,
    v1_arrow=False,
    v2_arrow=False,
    overrides=None,
)

Draw a line between two points in 3D space

Parameters
Name Type Description Default
v1 Vector 3D co-ordinates of the first point required
v2 Vector 3D co-ordinates of the second point required
v1_text str Optional text to display at v1 None
v2_text str Optional text to display at v2 None
mid_text str Optional text to display at the middle of the line None
v1_arrow bool Whether to display an arrow at v1 False
v2_arrow bool Whether to display an arrow at v2 False
overrides dict Optional dictionary to override common annotation params None
draw_n_sided_cylinder
entities.molecule.annotations.MoleculeAnnotation.draw_n_sided_cylinder(
    n=6,
    radius=10,
    height=10,
    origin=(0, 0, 0),
    axis=(0, 0, 1),
    cap_ends=True,
    overrides=None,
)

Draw an n sided cylinder Eg: square, rectangle, triangular prism, cube, cuboid, hexagonal cell etc

Parameters
Name Type Description Default
n int Number of sides 6
radius float Radius of the cylinder 10
height float Height of the cylinder 10
origin Vector Center of the base of the cylinder (0, 0, 0)
axis Vector Axis of the cylinder (0, 0, 1)
cap_ends bool Whether to cap the ends of cylinder True
overrides dict Optional dictionary to override common annotation params None
draw_n_sided_pyramid
entities.molecule.annotations.MoleculeAnnotation.draw_n_sided_pyramid(
    n=6,
    radius=10,
    height=10,
    origin=(0, 0, 0),
    axis=(0, 0, 1),
    cap_ends=True,
    overrides=None,
)

Draw an n sided pyramid Eg: triangle, prism, square pyramid, pentagonal pyramid, etc

Parameters
Name Type Description Default
n int Number of sides 6
radius float Radius of the pyramid 10
height float Height of the pyramid 10
origin Vector Center of the base of the pyramid (0, 0, 0)
axis Vector Axis of the pyramid (0, 0, 1)
cap_ends bool Whether to cap the ends of pyramid True
overrides dict Optional dictionary to override common annotation params None
draw_sphere
entities.molecule.annotations.MoleculeAnnotation.draw_sphere(
    location=(0, 0, 0),
    radius=1.0,
    overrides=None,
)

Draw a sphere

Parameters
Name Type Description Default
location Vector A 3D position vector of the center (0, 0, 0)
radius float Radius of the sphere 1.0
overrides dict Optional dictionary to override common annotation params None
draw_text_2d
entities.molecule.annotations.MoleculeAnnotation.draw_text_2d(
    pos_2d,
    text,
    overrides=None,
)

Draw text at a given 2D position (normalized co-ordinates) of Viewport.

Parameters
Name Type Description Default
pos_2d Vector Normalized co-ordinates (0 - 1). (0, 0) is at bottom left required
text str Text to display. ‘|’ as multi-line separator required
overrides dict Optional dictionary to override common annotation params None
draw_text_3d
entities.molecule.annotations.MoleculeAnnotation.draw_text_3d(
    pos_3d,
    text,
    overrides=None,
)

Draw text at a given 3D position

Parameters
Name Type Description Default
pos_3d Vector Co-ordinates in 3D world space (x, y, z) required
text str Text to display. ‘|’ as multi-line separator required
overrides dict Optional dictionary to override common annotation params None
draw_triclinic_cell
entities.molecule.annotations.MoleculeAnnotation.draw_triclinic_cell(
    a=10.0,
    b=10.0,
    c=10.0,
    alpha=90.0,
    beta=90.0,
    gamma=90.0,
    origin=(0, 0, 0),
    show_lattice=False,
    overrides=None,
)

Draw a triclinic box based on box vector lengths and angles

Parameters
Name Type Description Default
a float Box vector a length 10.0
b float Box vector b length 10.0
c float Box vector c length 10.0
alpha float Angle between box vectors bc 90.0
beta float Angle between box vectors ac 90.0
gamma float Angle between box vectors ab 90.0
origin Vector Origin of the box (0, 0, 0)
show_lattice bool Whether to show a 3x3x3 lattice False
overrides dict Optional dictionary to override common annotation params None
draw_wigner_seitz_cell
entities.molecule.annotations.MoleculeAnnotation.draw_wigner_seitz_cell(
    triclinic_vectors,
    center_to_origin=False,
    show_lattice=False,
    overrides=None,
)

Draw a Wigner-Seitz cell from triclinic vectors

Parameters
Name Type Description Default
triclinic_vectors npt.ArrayLike Vectors that represent the base triclinic cell required
center_to_origin bool Move the center of the cell to origin (0, 0, 0) False
show_lattice bool Whether to show a 3x3x3 lattice False
overrides dict Optional dictionary to override common annotation params None
pil_image_to_bpy_image
entities.molecule.annotations.MoleculeAnnotation.pil_image_to_bpy_image(
    pil_image,
    name='PIL Image',
)

Convert PIL image to Blender image

Parameters
Name Type Description Default
pil_image Image.Image PIL Image required
name str Name of the bpy.data.images data block. Using an exisiting name will re-use the data block, whereas using a new name will create a new image data block. 'PIL Image'
Returns
Name Type Description
bpy.types.Image Blender Image
validate
entities.molecule.annotations.MoleculeAnnotation.validate(input_name=None)

Optional method to validate annotation inputs This is called during annotation creation and any time the inputs change either through the API or GUI. Can return False or raise an exception when validation fails. Returns True when all validations succeed.

Note: This method gets called when any inputs change, so updating values in here will lead to a recursive loop and should not be done.

Parameters
Name Type Description Default
input_name str The input name update that trigged this validation callback. When no specific input name is available, None is passed. None

MoleculeAnnotationManager

entities.molecule.annotations.MoleculeAnnotationManager(entity)

Annotation Manager for Molecule Entity

Attributes

Name Description
visible Visibility of all annotations - getter

Methods

Name Description
clear Remove all annotations
get Get an annotation by name
register_class Register an annotation class
remove Remove an annotation by name or instance
unregister_type Unregister a registered annotation type
clear
entities.molecule.annotations.MoleculeAnnotationManager.clear()

Remove all annotations

get
entities.molecule.annotations.MoleculeAnnotationManager.get(name)

Get an annotation by name

register_class
entities.molecule.annotations.MoleculeAnnotationManager.register_class(
    annotation_class,
)

Register an annotation class

This method adds the annotation class to the entity specific class registry (classes) and adds a new method (add) to the manager with a signature that matches the annotation inputs.

remove
entities.molecule.annotations.MoleculeAnnotationManager.remove(annotation)

Remove an annotation by name or instance

When a name is used, all annotations that match the name will be removed

unregister_type
entities.molecule.annotations.MoleculeAnnotationManager.unregister_type(
    annotation_type,
)

Unregister a registered annotation type

This method removes the annotation type from the entity speicific class registry and removes the ‘add_<>’ method from the manager

MoleculeInfo

entities.molecule.annotations.MoleculeInfo(molecule)

Molecule Info Annotation

Attributes

Name Type Description
location tuple[float, float] Normalized coordinates (0.0 - 1.0) of the postion in viewport / render
show_models bool Whether or not to show the number of models in the molecule
show_atoms bool Whether or not to show the number of atoms in the molecule
custom_text str Any custom text to add at the end of the annotation

Methods

Name Description
bpy_image_to_pil_image Convert Blender image to PIL image
distance Distance between two vectors
draw_bmesh Draw a Blender bmesh
draw_bpy_image Draw an image from bpy.data.images at the given 2D position (normalized
draw_circle_2d Draw a circle around a 2D point (normalized coordinate) in the viewport space
draw_circle_3d Draw a circle around a 3D point in the plane perpendicular to the
draw_cone Draw a cone
draw_cylinder Draw a cylinder
draw_line_2d Draw a line between two points (normalized co-ordinates) in 2D viewport space
draw_line_3d Draw a line between two points in 3D space
draw_n_sided_cylinder Draw an n sided cylinder
draw_n_sided_pyramid Draw an n sided pyramid
draw_sphere Draw a sphere
draw_text_2d Draw text at a given 2D position (normalized co-ordinates) of Viewport.
draw_text_3d Draw text at a given 3D position
draw_triclinic_cell Draw a triclinic box based on box vector lengths and angles
draw_wigner_seitz_cell Draw a Wigner-Seitz cell from triclinic vectors
pil_image_to_bpy_image Convert PIL image to Blender image
bpy_image_to_pil_image
entities.molecule.annotations.MoleculeInfo.bpy_image_to_pil_image(bpy_image)

Convert Blender image to PIL image

Parameters
Name Type Description Default
bpy_image bpy.types.Image Blender image required
Returns
Name Type Description
Image.Image PIL Image
distance
entities.molecule.annotations.MoleculeInfo.distance(v1, v2)

Distance between two vectors

Parameters
Name Type Description Default
v1 Vector A 3D or 2D vector or tuple required
v2 Vector A 3D or 2D vector or tuple required
Returns
Name Type Description
Distance between the two vectors
draw_bmesh
entities.molecule.annotations.MoleculeInfo.draw_bmesh(bm, overrides=None)

Draw a Blender bmesh

Parameters
Name Type Description Default
bm bmesh.types.BMesh A bmesh object. A copy is made for internal use. Users will have to free the passed in object required
overrides dict Optional dictionary to override common annotation params None
draw_bpy_image
entities.molecule.annotations.MoleculeInfo.draw_bpy_image(
    pos_2d,
    image,
    scale=1.0,
)

Draw an image from bpy.data.images at the given 2D position (normalized co-ordinates) of Viewport.

Parameters
Name Type Description Default
pos_2d Vector Normalized co-ordinates (0 - 1). (0, 0) is at bottom left. Bottom left of the image is placed at this position required
image bpy.types.Image An image from bpy.data.images to draw at specified position required
scale float Scale of the image to draw 1.0
draw_circle_2d
entities.molecule.annotations.MoleculeInfo.draw_circle_2d(
    center,
    radius,
    angle=360.0,
    start_dv=None,
    c_arrow=False,
    cc_arrow=False,
    overrides=None,
)

Draw a circle around a 2D point (normalized coordinate) in the viewport space

Parameters
Name Type Description Default
center Vector A 2D co-ordinate of the center. Normalized co-ordinate (0 - 1). (0, 0) is at bottom left required
radius float The radius of the circle required
angle float An angle less than 360 for partial circle (arc) - in degrees Default is 360 degrees 360.0
start_dv Vector The direction vector along which to start the circle (arc) If not provided, a random point in the circle plane is chosen None
c_arrow bool Whether to display clockwise arrow. Default is False False
cc_arrow bool Whether to display counter clockwise arrow. Default is False False
overrides dict Optional dictionary to override common annotation params None
draw_circle_3d
entities.molecule.annotations.MoleculeInfo.draw_circle_3d(
    center,
    radius,
    normal=None,
    angle=360.0,
    start_dv=None,
    c_arrow=False,
    cc_arrow=False,
    overrides=None,
)

Draw a circle around a 3D point in the plane perpendicular to the given normal

Parameters
Name Type Description Default
center Vector A 3D position vector of the center required
radius float The radius of the circle required
normal Vector | None The normal vector of the plane on which the cirle is to be drawn. When None, the circle is drawn in the viewport plane None
angle float An angle less than 360 for partial circle (arc) - in degrees Default is 360 degrees 360.0
start_dv Vector The direction vector along which to start the circle (arc) If not provided, a random point in the plane perpendicular to the normal is chosen None
c_arrow bool Whether to display clockwise arrow. Default is False False
cc_arrow bool Whether to display counter clockwise arrow. Default is False False
overrides dict Optional dictionary to override common annotation params None
draw_cone
entities.molecule.annotations.MoleculeInfo.draw_cone(
    location=(0, 0, 0),
    radius=1.0,
    height=1.0,
    axis=(0, 0, 1),
    cap_ends=True,
    overrides=None,
)

Draw a cone

Parameters
Name Type Description Default
location Vector A 3D position vector of the base center (0, 0, 0)
radius float Radius of the cone 1.0
height float Height of the cone 1.0
axis Vector Axis of the cone (0, 0, 1)
cap_ends bool Whether to cap the base True
overrides dict Optional dictionary to override common annotation params None
draw_cylinder
entities.molecule.annotations.MoleculeInfo.draw_cylinder(
    location=(0, 0, 0),
    radius=1.0,
    height=1.0,
    axis=(0, 0, 1),
    cap_ends=True,
    overrides=None,
)

Draw a cylinder

Parameters
Name Type Description Default
location Vector A 3D position vector of the base center (0, 0, 0)
radius float Radius of the cylinder 1.0
height float Height of the cylinder 1.0
axis Vector Axis of the cylinder (0, 0, 1)
cap_ends bool Whether to cap the ends of cylinder True
overrides dict Optional dictionary to override common annotation params None
draw_line_2d
entities.molecule.annotations.MoleculeInfo.draw_line_2d(
    v1,
    v2,
    v1_text=None,
    v2_text=None,
    mid_text=None,
    v1_arrow=False,
    v2_arrow=False,
    overrides=None,
)

Draw a line between two points (normalized co-ordinates) in 2D viewport space

Parameters
Name Type Description Default
v1 Vector 2D co-ordinates of the first point. Normalized co-ordinate (0 - 1). (0, 0) is at bottom left required
v2 Vector 2D co-ordinates of the second point. Normalized co-ordinate (0 - 1). (0, 0) is at bottom left required
v1_text str Optional text to display at v1 None
v2_text str Optional text to display at v2 None
mid_text str Optional text to display at the middle of the line None
v1_arrow bool Whether to display an arrow at v1 False
v2_arrow bool Whether to display an arrow at v2 False
overrides dict Optional dictionary to override common annotation params None
draw_line_3d
entities.molecule.annotations.MoleculeInfo.draw_line_3d(
    v1,
    v2,
    v1_text=None,
    v2_text=None,
    mid_text=None,
    v1_arrow=False,
    v2_arrow=False,
    overrides=None,
)

Draw a line between two points in 3D space

Parameters
Name Type Description Default
v1 Vector 3D co-ordinates of the first point required
v2 Vector 3D co-ordinates of the second point required
v1_text str Optional text to display at v1 None
v2_text str Optional text to display at v2 None
mid_text str Optional text to display at the middle of the line None
v1_arrow bool Whether to display an arrow at v1 False
v2_arrow bool Whether to display an arrow at v2 False
overrides dict Optional dictionary to override common annotation params None
draw_n_sided_cylinder
entities.molecule.annotations.MoleculeInfo.draw_n_sided_cylinder(
    n=6,
    radius=10,
    height=10,
    origin=(0, 0, 0),
    axis=(0, 0, 1),
    cap_ends=True,
    overrides=None,
)

Draw an n sided cylinder Eg: square, rectangle, triangular prism, cube, cuboid, hexagonal cell etc

Parameters
Name Type Description Default
n int Number of sides 6
radius float Radius of the cylinder 10
height float Height of the cylinder 10
origin Vector Center of the base of the cylinder (0, 0, 0)
axis Vector Axis of the cylinder (0, 0, 1)
cap_ends bool Whether to cap the ends of cylinder True
overrides dict Optional dictionary to override common annotation params None
draw_n_sided_pyramid
entities.molecule.annotations.MoleculeInfo.draw_n_sided_pyramid(
    n=6,
    radius=10,
    height=10,
    origin=(0, 0, 0),
    axis=(0, 0, 1),
    cap_ends=True,
    overrides=None,
)

Draw an n sided pyramid Eg: triangle, prism, square pyramid, pentagonal pyramid, etc

Parameters
Name Type Description Default
n int Number of sides 6
radius float Radius of the pyramid 10
height float Height of the pyramid 10
origin Vector Center of the base of the pyramid (0, 0, 0)
axis Vector Axis of the pyramid (0, 0, 1)
cap_ends bool Whether to cap the ends of pyramid True
overrides dict Optional dictionary to override common annotation params None
draw_sphere
entities.molecule.annotations.MoleculeInfo.draw_sphere(
    location=(0, 0, 0),
    radius=1.0,
    overrides=None,
)

Draw a sphere

Parameters
Name Type Description Default
location Vector A 3D position vector of the center (0, 0, 0)
radius float Radius of the sphere 1.0
overrides dict Optional dictionary to override common annotation params None
draw_text_2d
entities.molecule.annotations.MoleculeInfo.draw_text_2d(
    pos_2d,
    text,
    overrides=None,
)

Draw text at a given 2D position (normalized co-ordinates) of Viewport.

Parameters
Name Type Description Default
pos_2d Vector Normalized co-ordinates (0 - 1). (0, 0) is at bottom left required
text str Text to display. ‘|’ as multi-line separator required
overrides dict Optional dictionary to override common annotation params None
draw_text_3d
entities.molecule.annotations.MoleculeInfo.draw_text_3d(
    pos_3d,
    text,
    overrides=None,
)

Draw text at a given 3D position

Parameters
Name Type Description Default
pos_3d Vector Co-ordinates in 3D world space (x, y, z) required
text str Text to display. ‘|’ as multi-line separator required
overrides dict Optional dictionary to override common annotation params None
draw_triclinic_cell
entities.molecule.annotations.MoleculeInfo.draw_triclinic_cell(
    a=10.0,
    b=10.0,
    c=10.0,
    alpha=90.0,
    beta=90.0,
    gamma=90.0,
    origin=(0, 0, 0),
    show_lattice=False,
    overrides=None,
)

Draw a triclinic box based on box vector lengths and angles

Parameters
Name Type Description Default
a float Box vector a length 10.0
b float Box vector b length 10.0
c float Box vector c length 10.0
alpha float Angle between box vectors bc 90.0
beta float Angle between box vectors ac 90.0
gamma float Angle between box vectors ab 90.0
origin Vector Origin of the box (0, 0, 0)
show_lattice bool Whether to show a 3x3x3 lattice False
overrides dict Optional dictionary to override common annotation params None
draw_wigner_seitz_cell
entities.molecule.annotations.MoleculeInfo.draw_wigner_seitz_cell(
    triclinic_vectors,
    center_to_origin=False,
    show_lattice=False,
    overrides=None,
)

Draw a Wigner-Seitz cell from triclinic vectors

Parameters
Name Type Description Default
triclinic_vectors npt.ArrayLike Vectors that represent the base triclinic cell required
center_to_origin bool Move the center of the cell to origin (0, 0, 0) False
show_lattice bool Whether to show a 3x3x3 lattice False
overrides dict Optional dictionary to override common annotation params None
pil_image_to_bpy_image
entities.molecule.annotations.MoleculeInfo.pil_image_to_bpy_image(
    pil_image,
    name='PIL Image',
)

Convert PIL image to Blender image

Parameters
Name Type Description Default
pil_image Image.Image PIL Image required
name str Name of the bpy.data.images data block. Using an exisiting name will re-use the data block, whereas using a new name will create a new image data block. 'PIL Image'
Returns
Name Type Description
bpy.types.Image Blender Image