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