Manipulator (hwx.inspire.gui)

Base class for manipulators

Extends Drawable to:

  • implement methods so it works with Context:

  • setObject - called from context when an object is selected

  • hide - called from context when it is deactivated

  • isMouseOverAny - dont process mouse events in the context

  • adds/remove itself to the ManipulatorRootNode

Inherits:
  • Drawable (hwx.inspire.gui)

Public Methods

classmethod isMouseOverAny (cls)

classmethod popup (cls, context, obj)

dragPoint (self, location)

draw (self)

drawHovered (self, node)

drawUnhovered (self, node)

flatArrow (self, origin, direction)

forceRedraw (self)

getGuiUnitsFactor (self, value=1, units=’length’)

getMousePosition (self, event, origin=None, direction=None, snapping=True)

getPointAlongLine (self, pt, direction, lengthInPixels)

getPointOnLine (self, event, origin, direction)

getPointOnXyPlane (self, event, xform, snapping=True)

getSnapPoint (self, event)

getViewNormal (self)

getViewScaleAtPoint (self, pt)

hide (self)

isMouseOver (self)

isPickable (self)

isactive (self)

linearRuler (self, pt1, pt2, axis)

noteState (self, state=None)

onObjectDeleted (self, obj)

onObjectModified (self, obj, attr)

redraw (self, alwaysOnTop=True, **kwds)

redrawView (self)

setCursor (self, cursor)

setObject (self, obj)

show (self, redrawView=False)

worldToScreen (self, pt)

Method Details

classmethod isMouseOverAny(cls)

Is the mouse over any pickable manipulators

This is used by the context not pass the mouse events to mouse enabled tools like the PickList and SelectList.

This checks all manipulators because it is possible to have manipulators associated with objects, that are not tied to the context.

returns

bool

classmethod popup(cls, context, obj)

Create and show Manipulator for the selected object.

Should be called during Context.popupObjectEditors.

param obj

Object being edited.

type obj

Named

param context

The active context.

type context

Context

dragPoint(self, location)

Create a drag point at specified location.

param location

location of the new drag point.

type location

math.Point

returns

new created drag point.

rtype

DragPointDrawable

draw(self)

Overload in derived classes to render this.

drawHovered(self, node)

Show that the mouse is over a Node.

param node

Node to be drawn hovered.

type node

Node

drawUnhovered(self, node)

Show that the mouse is no longer over a Node

param node

Node to be drawn unhovered.

type node

Node

flatArrow(self, origin, direction)

Create a flat arrow with specified origin and direction.

param origin

arrow origin.

type origin

math.Point

param direction

arrow direction.

type direction

math.Vector

returns

new created arrow.

rtype

FlatArrowDrawable

forceRedraw(self)

When this is created or modified, make sure it is drawn.

getGuiUnitsFactor(self, value=1, units='length')

Get a base to gui units scale factor.

param value

base value.

type value

float

param units

unit type.

type units

str

returns

scale factor to obtain gui value equivalent to base value.

rtype

float

getMousePosition(self, event, origin=None, direction=None, snapping=True)

Returns mouse position. Give preference to the closest snap point if snapping argument is True or the closest apparent point on line if origin and direction of line are provided as arguments.

param event

mouse event.

type event

Event

param origin

line point.

type origin

math.Point

param direction

line direction.

type direction

math.Vector

param snapping

if True give preference to snap points.

type snapping

bool

returns

math.Point

getPointAlongLine(self, pt, direction, lengthInPixels)

Returns a point projected on the line defined by pt and direction at the specified distance in pixels.

If you have a line/arrow/whatever 10 pixles long, you know its start point and its direction in model space, what is its end point in model space.

This is used to calculate snap gradients independent of the view zoom.

param pt

point of the line.

type pt

math.Point

param direction

direction of the line.

type direction

math.Vector

param lengthInPixels

distance in pixels to the point.

type lengthInPixels

int

returns

math.Point

getPointOnLine(self, event, origin, direction)

Return the closest apparent point to a line. If the lines are parallel, or if the closest point is out of view, returns None.

param event

event being processed.

type event

Event

param origin

origin of the line.

type origin

math.Point

param direction

line direction.

type direction

math.Vector

returns

math.Point

getPointOnXyPlane(self, event, xform, snapping=True)

Returns the closest apparent point to a plane.

param event

event being processed.

type event

Event

param xform

plane definition.

type xform

Matrix44

param snapping

give preference to snap points.

type snapping

bool

returns

math.Point

getSnapPoint(self, event)

Return the closest snap point under the mouse.

returns

math.Point

getViewNormal(self)

Return a vector pointing from the camera to the eye.

getViewScaleAtPoint(self, pt)

Return a scale factor that is zoom/model independent. Used to scaleToScreen in one direction. For example we want the gradations of the LinearRuler a certain height independent of the view zoom, but because the length of the ruler changes we can not user scaleToScreen.

param pt

view point.

type pt

math.Point

returns

The scale factor.

rtype

float

hide(self)

Deactivate this manipulator.

isMouseOver(self)

Returns True if the mouse is over this manipulator and if it is pickable.

isPickable(self)

Return False to disable picking. Used in derived some derived classes to disable picking the manipulator when the <Ctrl> key is down.

isactive(self)

Return True if Manipulator is active.

linearRuler(self, pt1, pt2, axis)

Create a linear ruler.

param pt1

one endpoint of ruler.

type pt1

math.Point

param pt2

one endpoint of ruler.

type pt2

math.Point

param axis

axis of the ruler.

type axis

math.Vector

returns

new created linear ruler.

rtype

LinearRulerDrawable

noteState(self, state=None)

Shortcut to set a history noteState to support undo/redo.

param state

name for noteState.

type state

str

onObjectDeleted(self, obj)

Hide manipulator when its object is deleted.

param obj

manipulator object.

type obj

Named | Feature | Hole

onObjectModified(self, obj, attr)

Redraw manipulator when its object is modified.

param obj

event containing the object.

type obj

Event

param attr

modified Attribute.

type attr

Attribute

redraw(self, alwaysOnTop=True, **kwds)

Overload from base class so this is drawn ‘on top’ of the model.

param alwaysOnTop

draw this ‘on top’ of the model.

type alwaysOnTop

bool

param **kwds

keyword arguments for Drawable.redraw()

redrawView(self)

Force a redraw of the view.

setCursor(self, cursor)

Set the named cursor if it is not the current one.

param cursor

name of the cursor, one of “” : the default cursor (arrow) “MAIN” : show the user whhat context he is in ‘+’ : show an object can be added to the pick list ‘-’ : show an object can be removed from the pick list ‘+- : show an object can be toggled (windowMode) ‘x’ : show an object is in the pick list .png : the name of an icon file other : the name of a registered cursor

type cursor

str

setObject(self, obj)

Set manipulator object. Called from context when an object is selected.

param obj

selected object.

type obj

Named | Feature | Hole

show(self, redrawView=False)

Activate this manipulator.

Called from setObject to add self to ManipulatorRootNode.

worldToScreen(self, pt)

For a given point get screen projection point in pixels.

param pt

Point for which we want to get the screen projection.

type pt

math.Point

returns

screen projection point in pixels.

rtype

math.Point