schrodinger.graphics3d.box module¶
Maestro 3D boxes.
The box module allows creation and drawing of boxes and parallelepipeds. A box is a special case of a parallelepiped where angles between edges are 90° and edges are parallel to the XYZ axes.
Control over the positioning, color, and opacity of a box are provided. See the MaestroBos and MaestroParallelepiped classes for more info.
To draw any number of boxes, create the class instances, add them to a Group instance then invoke the Group’s draw() method.
Copyright Schrodinger, LLC. All rights reserved.
- class schrodinger.graphics3d.box.MaestroParallelepiped(points, color, opacity=1.0, line_width=1.0, style=0)¶
Bases:
schrodinger.graphics3d.common.Primitive
Class for placing a parallelepiped into the Workspace. Can be used for drawing boxes that are not positioned with edges parallel to 3 axes.
3D objects should be added to a graphics3d.common.Group. See the graphics3d.common.Group documentation.
See note on transparency in the module level docstring.
API Example:
import schrodinger.maestro.maestro as maestro import schrodinger.graphics3d.common as common import schrodinger.graphics3d.box as box box_grp = common.Group() st = maestro.workspace_get() bx = box.Parallelepiped( points=[origin, xyz2, xyz3, xyz4] color='red', opacity=1.0, style=box.LINE ) # Add the primitive to the container. box_grp.add(bx) # Hide the markers. box_grp.hide() # Remove the markers and the callback. box_grp.clear()
- __init__(points, color, opacity=1.0, line_width=1.0, style=0)¶
Constructor requires:
- points: List of 4 (x, y, z) coordinates, representing half of the
corners of the box. First coordinate must be adjacent to each of the other 3 coordinates.
- color: One of:
Color object Color name (string) Tuple of (R, G, B) (each 0.0-1.0)
Optional arguments:
- opacity: 0.0 (invisible) through 1.0 (opaque)
Defaults to 1.0
line_width: Line width. Default is 1.0.
style: FILL, LINE or DASHED_LINE. Default is LINE.
- groupHidden()¶
Called when the group of this object is hidden. Hide the Maestro object(s).
- groupShown()¶
Called when the group of this object is shown. Show the Maestro object, if we are being shown.
- hide()¶
Hide the object. It will not be drawn when the group is drawn.
- isGroupShown()¶
Returns True if this object’s group is shown. False otherwise.
- isShown()¶
Returns True if this object shown. False otherwise.
- setEntryID(entry_id)¶
Sets entry ID for Maestro object (necessary to render in tile-by-entry mode.
- Parameters
entry_id (str) – Object’s entry ID.
- setGlowColor(r, g, b)¶
Sets glow color for the object.
- Parameters
r (float) – Red component of glow color [0.0 .. 1.0]
g (float) – Green component of glow color [0.0 .. 1.0]
b (float) – Blue component of glow color [0.0 .. 1.0]
- setIsGlowing(is_glowing)¶
Enables or disables glow effect for the object.
- Parameters
is_glowing (bool) – Whether the object is glowing.
- setRightClickOnGObject(pymodule, pyfunc)¶
Sets the python callback which should be called whenever given graphics object is right clicked.
- Parameters
pymodule (str) – Python module
pyfunc (str) – Python function
- show()¶
Display this object, if it was hidden
- class schrodinger.graphics3d.box.MaestroBox(center, extents, color, opacity=1.0, line_width=1.0, style=0)¶
Bases:
schrodinger.graphics3d.box.MaestroParallelepiped
Class for placing a 3D box into the Workspace. Edges of the box will be aligned with X/Y/Z axes. For custom rotation, or to create “skewed” boxes, use MaestroParallelepiped class.
3D objects should be added to a graphics3d.common.Group. See the graphics3d.common.Group documentation.
See note on transparency in the module level docstring.
API Example:
import schrodinger.maestro.maestro as maestro import schrodinger.graphics3d.common as common import schrodinger.graphics3d.box as box box_grp = common.Group() st = maestro.workspace_get() bx = box.Box( center=(x, y, z), extents=(10, 10, 10), color='red', opacity=1.0, style=box.LINE ) # Add the primitive to the container. box_grp.add(bx) # Hide the markers. box_grp.hide() # Remove the markers and the callback. box_grp.clear()
- __init__(center, extents, color, opacity=1.0, line_width=1.0, style=0)¶
Constructor requires:
- center: List of 3 Angstrom values indicating the center coordinate
of the box.
- extents: List of 3 float values in Angstroms -
x length, y length, z length.
- color: One of:
Color object Color name (string) Tuple of (R, G, B) (each 0.0-1.0)
Optional arguments:
- opacity: 0.0 (invisible) through 1.0 (opaque)
Defaults to 1.0
line_width: Line width. Default is 1.0.
style: FILL, LINE or DASHED_LINE. Default is LINE.
- groupHidden()¶
Called when the group of this object is hidden. Hide the Maestro object(s).
- groupShown()¶
Called when the group of this object is shown. Show the Maestro object, if we are being shown.
- hide()¶
Hide the object. It will not be drawn when the group is drawn.
- isGroupShown()¶
Returns True if this object’s group is shown. False otherwise.
- isShown()¶
Returns True if this object shown. False otherwise.
- setEntryID(entry_id)¶
Sets entry ID for Maestro object (necessary to render in tile-by-entry mode.
- Parameters
entry_id (str) – Object’s entry ID.
- setGlowColor(r, g, b)¶
Sets glow color for the object.
- Parameters
r (float) – Red component of glow color [0.0 .. 1.0]
g (float) – Green component of glow color [0.0 .. 1.0]
b (float) – Blue component of glow color [0.0 .. 1.0]
- setIsGlowing(is_glowing)¶
Enables or disables glow effect for the object.
- Parameters
is_glowing (bool) – Whether the object is glowing.
- setRightClickOnGObject(pymodule, pyfunc)¶
Sets the python callback which should be called whenever given graphics object is right clicked.
- Parameters
pymodule (str) – Python module
pyfunc (str) – Python function
- show()¶
Display this object, if it was hidden