Panda3D

- Main Page
- Packages
- Classes

- Packages
- Package Functions

Classes | Functions | Variables

# Package directtools.DirectManipulation

## Classes
class | DirectManipulationControl
class | ObjectHandles
## Functions
def | addTag
def | disableManipulation
def | disableWidgetMove
def | drawBox
def | drawMarquee
def | enableManipulation
def | enableWidgetMove
def | followSelectedNodePathTask
def | getEditTypes
def | gridSnapping
def | manipulateObject
def | manipulateObjectCleanup
def | manipulateObjectTask
def | manipulationStart
def | manipulationStop
def | plantSelectedNodePath
| Utility functions ##.
def | removeManipulateObjectTask
def | removeTag
def | rotate1D
def | rotate2D
def | rotateAboutViewVector
def | scale1D
def | scale3D
def | scaleWidget
| ['.
def | spawnFollowSelectedNodePathTask
def | spawnManipulateObjectTask
def | supportMultiView
def | switchToLocalSpaceMode
def | switchToMoveMode
def | switchToWorldSpaceMode
def | toggleObjectHandlesMode
def | watchMarqueeTask
def | watchMouseTask
def | widgetCheck
def | xlate1D
| WIDGET MANIPULATION METHODS ###.
def | xlate2D
def | xlateCamXY
def | xlateCamXZ
| FREE MANIPULATION METHODS ###.
## Variables
tuple | bb = geom.getBounds()
tuple | bbc = bb.makeCopy()
tuple | boundingSphereTest = marqueeFrustum.contains(bbc)
| constraint
| currEditTypes
| deltaNearX
tuple | entry = base.direct.iRay.pickGeom(skipFlags = skipFlags)
| fAllowSelectionOnly
| fHitInit
tuple | fll = Point3(min[0], max[1], min[2])
tuple | flr = Point3(max[0], max[1], min[2])
| fManip
| fMovable
| fMultiView
| frontViewWidget
| fScaleInit
| fScaleInit1
| fScaling1D
| fScaling3D
| fSetCoa
tuple | ful = Point3(min[0], max[1], max[2])
| fur = max
| fWidgetTop
| hitPtDist
| hitPtScale
| initScale
| initScaleMag
| lastCrankAngle
| leftViewWidget
| marquee
| marqueeInfo
tuple | max = Point3(0)
tuple | min = Point3(0)
| mode
| moveDir
| nll = min
tuple | nlr = Point3(max[0], min[1], min[2])
tuple | nodePath = findTaggedNodePath(geom)
| elif (skipFlags & SKIP_BACKFACE) and base.direct.iRay.isEntryBackfacing(): # Skip, if backfacing poly pass
tuple | nul = Point3(min[0], min[1], max[2])
tuple | nur = Point3(max[0], min[1], max[2])
| origScale
| rotateAxis
| rotationCenter
tuple | tbb = BoundingHexahedron(fll, flr, fur, ful, nll, nlr, nur, nul)
tuple | tightBoundTest = marqueeFrustum.contains(tbb)
tuple | tMat = Mat4(geom.getMat())
| topViewWidget
| widgetList
| worldSpaceManip
| xlateSF

## Function Documentation

def directtools.DirectManipulation.addTag | ( |  | self,
|  |  | tag
| ) |  |

def directtools.DirectManipulation.disableManipulation | ( |  | self,
|  |  | allowSelectionOnly = `False`
| ) |  |

def directtools.DirectManipulation.disableWidgetMove | ( |  | self | ) |

def directtools.DirectManipulation.drawBox | ( |  | lines,
|  |  | center,
|  |  | sideLength
| ) |  |

def directtools.DirectManipulation.drawMarquee | ( |  | self,
|  |  | startX,
|  |  | startY
| ) |  |

def directtools.DirectManipulation.enableManipulation | ( |  | self | ) |

def directtools.DirectManipulation.enableWidgetMove | ( |  | self | ) |

def directtools.DirectManipulation.followSelectedNodePathTask | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.getEditTypes | ( |  | self,
|  |  | objects
| ) |  |

def directtools.DirectManipulation.gridSnapping | ( |  | self,
|  |  | nodePath,
|  |  | offset
| ) |  |

def directtools.DirectManipulation.manipulateObject | ( |  | self | ) |

def directtools.DirectManipulation.manipulateObjectCleanup | ( |  | self | ) |

def directtools.DirectManipulation.manipulateObjectTask | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.manipulationStart | ( |  | self,
|  |  | modifiers
| ) |  |

def directtools.DirectManipulation.manipulationStop | ( |  | self | ) |

def directtools.DirectManipulation.plantSelectedNodePath | ( |  | self | ) |

Utility functions ##.

    Move selected object to intersection point of cursor on scene

def directtools.DirectManipulation.removeManipulateObjectTask | ( |  | self | ) |

def directtools.DirectManipulation.removeTag | ( |  | self,
|  |  | tag
| ) |  |

def directtools.DirectManipulation.rotate1D | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.rotate2D | ( |  | self,
|  |  | state
| ) |  |

    Virtual trackball rotation of widget

def directtools.DirectManipulation.rotateAboutViewVector | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.scale1D | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.scale3D | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.scaleWidget | ( |  | self,
|  |  | factor
| ) |  |

['.

', self.objectHandles.multiplyScalingFactorBy, 2.0], ['>', self.objectHandles.multiplyScalingFactorBy, 2.0], [',', self.objectHandles.multiplyScalingFactorBy, 0.5], ['<', self.objectHandles.multiplyScalingFactorBy, 0.5],

def directtools.DirectManipulation.spawnFollowSelectedNodePathTask | ( |  | self | ) |

def directtools.DirectManipulation.spawnManipulateObjectTask | ( |  | self | ) |

def directtools.DirectManipulation.supportMultiView | ( |  | self | ) |

def directtools.DirectManipulation.switchToLocalSpaceMode | ( |  | self | ) |

def directtools.DirectManipulation.switchToMoveMode | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.switchToWorldSpaceMode | ( |  | self | ) |

def directtools.DirectManipulation.toggleObjectHandlesMode | ( |  | self | ) |

def directtools.DirectManipulation.watchMarqueeTask | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.watchMouseTask | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.widgetCheck | ( |  | self,
|  |  | type
| ) |  |

def directtools.DirectManipulation.xlate1D | ( |  | self,
|  |  | state
| ) |  |

WIDGET MANIPULATION METHODS ###.

def directtools.DirectManipulation.xlate2D | ( |  | self,
|  |  | state
| ) |  |

def directtools.DirectManipulation.xlateCamXY | ( |  | self,
|  |  | state
| ) |  |

    Constrained 2D motion perpendicular to camera's image plane
    This moves the object in the camera's XY plane if shift is held
    Moves object toward camera if control is held

def directtools.DirectManipulation.xlateCamXZ | ( |  | self,
|  |  | state
| ) |  |

FREE MANIPULATION METHODS ###.

    Constrained 2D motion parallel to the camera's image plane
    This moves the object in the camera's XZ plane

## Variable Documentation

tuple bb = geom.getBounds()

tuple bbc = bb.makeCopy()

tuple boundingSphereTest = marqueeFrustum.contains(bbc)

constraint

currEditTypes

deltaNearX

tuple entry = base.direct.iRay.pickGeom(skipFlags = skipFlags)

fAllowSelectionOnly

fHitInit

tuple fll = Point3(min[0], max[1], min[2])

tuple flr = Point3(max[0], max[1], min[2])

fManip

fMovable

fMultiView

frontViewWidget

fScaleInit

fScaleInit1

fScaling1D

fScaling3D

fSetCoa

tuple ful = Point3(min[0], max[1], max[2])

fur = max

fWidgetTop

hitPtDist

hitPtScale

initScale

initScaleMag

lastCrankAngle

leftViewWidget

marquee

marqueeInfo

tuple max = Point3(0)

tuple min = Point3(0)

mode

moveDir

nll = min

tuple nlr = Point3(max[0], min[1], min[2])

tuple nodePath = findTaggedNodePath(geom)

elif (skipFlags & SKIP_BACKFACE) and base.direct.iRay.isEntryBackfacing(): # Skip, if backfacing poly pass

tuple nul = Point3(min[0], min[1], max[2])

tuple nur = Point3(max[0], min[1], max[2])

origScale

rotateAxis

rotationCenter

tuple tbb = BoundingHexahedron(fll, flr, fur, ful, nll, nlr, nur, nul)

tuple tightBoundTest = marqueeFrustum.contains(tbb)

tuple tMat = Mat4(geom.getMat())

topViewWidget

widgetList

worldSpaceManip

xlateSF

All Classes Namespaces Functions Variables Enumerations Enumerator Properties