RANDOM USER PROJECTS
An advanced rendering pipeline for Panda3D
Angels Fall First: the Second Antarean War
Flight Simulator, created by Carnegie Mellon students

Panda3D Manual: Panda3D Utility Functions

Panda3D has a set of utilities that may be used to learn more about various objects and methods within an application. To access these utilities you need to import the PythonUtil module as follows.

from direct.showbase.PythonUtil import *

The * can be replaced by any of the utility functions in that module.

To get a detailed listing of a class or an object's attributes and methods, use the pdir() command. pdir() prints the information out to the command console. pdir() can take many arguments for formatting the output but the easiest way to use it is to provide it a NodePath.

pdir() will list all of the functions of the class of NodePath including those of its base classes

pdir(NodePath)
# e.g. pdir(camera)

There are many other useful functions in the PythonUtil module. All of these are not necessarily Panda specific, but utility functions for python. There are random number generators, random number generator in a gaussian distribution curve, quadratic equation solver, various list functions, useful angle functions etc. A full list can be found in the API.

An alternative command to pdir is inspect(). This command will create a window with methods and attributes on one side, and the details of a selected attribute on the other. inspect() also displays the current values of a class’ attributes. If these attributes are changing, you may have to click on a value to refresh it. To use inspect() you have to do the following:

from direct.tkpanels.inspector import inspect
inspect(NodePath)
# e.g. inspect(camera)

While the directtools suite calls upon a number of tools, if the suite is disabled, the user may activate certain panels of the suite. The place() command opens the object placer console. The explore() opens the scene graph explorer, which allows you to inspect the hierarchy of a NodePath. Finally, in order to change the color of a NodePath, the rgbPanel() command opens color panel.

camera.place()
render.explore()
panda.rgbPanel()

Useful DirectTool panels are explained in the Panda Tools section.