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
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 |