PatchDance was written using MetroWerks CodeWarrior C++ for PowerPC and the PowerPlant application framework. PowerPlant Constructor and Mathemaesthetics Resorcerer were used to construct the interface.
The original of this Manual is a MacWrite Pro document. It is available in that form (or any translated format MacWrite Pro supports) or Adobe Acrobat on request. The HTML version was done using HTML_Pro, a great little shareware program by Niklas Frykholm and available from info-mac.
PatchDance and all associated files and materials are copyright © 1994-1996 Paul Sexton.
Questions/comments? Want to register (relax, no charge) and get on my mailing list? If so, and you have a modem and net connection ready, e-mail the author here!
INTRODUCTION: (DON¹T SKIP THIS!)
TERMINOLOGY: (DON¹T SKIP THIS!)
POINT / VERTEX
SELECTION
SPLINES
PATCHES
OBJECTS
IMPORTANT NOTES:
INTERFACE: (DON¹T SKIP THIS!)
TOOLS
TOOL DIALOGS
MODIFIER KEYS
COLOR BUTTONS
THUMBWHEEL
SLIDE WIDGET
NUMERIC DATA
3D CURSOR
TOOL PALETTE
ARROW (A).
PEN (P).
MARQUEE (M).
HAND (H).
ZOOMER (Z).
ROTATOR (R).
MAGNET (T).
MOVER (D).
SCALER (S).
OBJECT (O).
SPLINE ARROW (B).
OBJECT ARROW (C).
NAME ARROW (N).
SCISSORS (2).
WINDOWS AND PALETTES
MODELING WINDOWS
CAMERA WINDOW
Tools in the Camera View
Using the Shaded View
GENERAL DIALOG
SAVE and OPEN DIALOGS
HIERARCHY DIALOG
SNAP PALETTE
PREFERENCES
MENU REFERENCE
FILE MENU
EDIT MENU
SELECTION MENU
MODEL MENU
TEXTURE MENU
ANIMATE MENU
RENDER MENU
WINDOWS MENU
OPERATIONS REFERENCE
SMOOTH / UNSMOOTH...
SWEEP
LATHE / REFLECT...
Interactive Lathing
Advanced Lathe options
EXTRUDE...
Interactive Extrusion
Advanced Extrusion Options
JOIN...
LOFT...
RANDOMIZE...
TRIM...
GENERAL REFERENCE
SPLINE PATHS
Path Extrude / Pipelining
Lofting
Hierarchy Paths
UNDO / REDO
DXF IMPORT/EXPORT
QUICKDRAW 3D IMPORT/EXPORT
EXAMPLES
EXTRUDE EXAMPLE / SPLINE EXAMPLE / PEN EXAMPLE
CAMERA EXAMPLE
LOFT EXAMPLE / CAMERA EXAMPLE
LOFT EXAMPLE 2
MAGNET EXAMPLE / RANDOMIZE EXAMPLE / OBJECTS EXAMPLE
PATH EXTRUDE EXAMPLE / PIPELINE EXAMPLE
INTRODUCTION: (DON¹T SKIP THIS!)
This Manual is designed as a quickstart, hopefully providing enough information to make PatchDance useful without shutting down coding and debugging to write a fancier one.
A few suggestions:
Most 3D programs ARE object oriented, meaning that they work with complex objects: spheres, cubes, meshes. Better ones allow for adjusting individual vertices, but very few allow you to create and destroy them, or arbitrarily create objects by simply creating new points and splines.
PatchDance is vertex oriented: all objects, regardless of their source, are treated as collections of points, (and splines and surface patches); most operations work on any or all SELECTED points, splines, and patches regardless of which ³object² they belong to. The only other Macintosh modeler offering this degree of control is the wonderful but expensive Sculpt3D, whose power and interface helped to inspire PatchDance. This method gives tremendous flexibility in what CAN be built, but may take some getting used to. Sculpt users will find PatchDance familiar in many ways, but should not assume that they already know how to use it.
Weaknesses of the vertex-oriented approach: Cross-sectional modeling is impractical: this is a technique where, for example, a lathed object ³remembers² the 2D profile used to create it, and allows the profile to be edited (and the existing lathed object to be updated). It is also difficult to wrap textures around objects and compute volumes and centroids (surface area is no problem). For modeling complex, non-symmetrical shapes, however, PatchDance has few (no inexpensive) equals.
TERMINOLOGY: (DON¹T SKIP THIS!)
POINT / VERTEX
These terms are used interchangeably. Both refer to a specific point in 3D space, containing a Point/Vertex entity. Point is used more often in this manual: vertex implies a corner point, where plane polygons join; a PatchDance Point joins curved splines and may not form a visible corner.
PatchDance operates on arbitrary sets of points, splines, and patches. Points help to define splines and patches: a point can exist alone while the others cannot.
SELECTION
In general, tools operate on all selected points and ignore deselected points. (the Arrow tools, when used for dragging, are an exception). Points are usually created in the selected state and are displayed in the current selected color; deselected points are displayed in a different (deselected) color (see Preferences). Selection can be changed in a variety of ways (see Arrow (A, C, N), Marquee (M), the Selection Menu, and Hierarchy). It makes absolutely no difference where the selected points are located or what they are connected to. You can scale half of two different objects at once, or rotate half the points in a single object. You can also delete any part of an object, add new parts to existing objects one point/spline at a time, and individually texture any patch in a model.
A few operations refer to selected splines or patches. A spline is selected if BOTH its endpoints are selected; a patch is selected if ALL the points that make it up are selected.
IMPORTANT: Selected points stay selected until you explicitly deselect them! Points may be selected in any order or combination by any available method, with no effect on each other. Clicking in empty space has NO effect on selection.
SPLINES
Important notes about Splines and Patches follow this section.
PatchDance uses cubic Bezier splines to construct objects. Most modern drawing packages use similar type splines, and they should already be familiar. Note, however, that PatchDance¹s implementation provides completely 3D splines and has more options than most 2D programs.
Two-dimensional programs usually limit a point to 2 splines, forming a linear object that is called a path. PatchDance has no limit to the number of splines attached to a point (allowing you to create 3D meshes as well as paths). PatchDance does use the term Path in a special sense, see Spline Paths for details.
There are 3 basic spline types that you will encounter: All 3 types are identical (internally) and can be freely converted, but they behave differently and many dialogs and tools allow you to choose the type you want to create.
Smooth (also called simply a spline or a standard spline): Any spline, which can be curved or not. Don¹t forget, a spline may appear straight in one view and curved in another. Strictly speaking, ALL splines are smooth.
Segments: These behave exactly like lines/polylines in non-spline based programs, essentially like rubber bands. They are actually standard splines whose handles are located at their associated endpoints (the handles can be easily dragged off to produce a curved spline). See Spline Arrow (B) (deleting a handle, moving handles) and Pen (P) (creates a segment when clicked and not dragged). When a segment¹s handles are displayed, they¹re drawn on top of their endpoints: this causes affected points to ³appear² in the handle color rather than the selected or deselected colors. Any spline whose handles happen to be very close to its endpoints will look and behave like a segment: they are not formally distinguished by the software except that they may be created as an option in several operations.
Straight: These are splines that are not segments but happen to be straight (3D) lines. When PatchDance creates them (as an option), both handles are located at the midpoint of the spline. The handles can of course be freely moved to produce a curved spline. Note that these DO NOT behave at all like segments when their endpoints are adjusted.
There is no direct provision for permanently unlocking the handles on a point to create a corner. Corners are made by option-dragging with the Arrow (A) or Spline Arrow (B) tool and can be removed simply by adjusting a handle with the option key up. Many modeling functions can also produce corners.
See Extrude Example for more details on the 3 spline types and their behaviors.
PATCHES
PatchDance describes a surface (what you see in a rendering) as a collection of Patches. A patch is a (closed) figure made of 3 or 4 splines (3 or 4 connected points) that contains a Patch entity. There is no limitation as to the shape or size of a patch: ANY splines can be used. Patches render smoothly regardless of size or shape (they are a mathematically defined surface), though they may appear faceted in the Camera window, which emphasizes speed rather than image quality.
The terms ³Spline mesh² and ³Surface² are often used interchangeably but they are not the same thing. Unlike many polygonal modelers, PatchDance does not automatically create a patch whenever it finds a suitable closed shape. If you draw a square with the Pen tool, you will have exactly what you see: an EMPTY square shape that is INVISIBLE in a rendering. (You could choose Make Patch or Fill Mesh from the Patches submenu of the Model menu to ³fill in² selected, 3 or 4 sided, closed shape(s)). You can use the Camera window to ensure that you have surfaces everywhere you want them before starting a high-quality rendering.
Most 3D operations automatically generate patches when they create a surface. In general, the Pen (P) tool is designed for creating spline paths that are then used by the 3D forming operations (Loft, Extrude, Lathe, etc) to create a patch surface. While you certainly may create a surface one spline at a time, it is usually not the best way. See Loft Example 2 for a technique for creating oddly-shaped meshes manually. When exporting PatchDance models to other software, empty meshes may become surfaces if they contain closed shapes meeting the other program¹s definition of a surface and the other program is capable of reading the information (many programs cannot handle pure spline/mesh data).
OBJECTS:
PatchDance does recognize and use objects! An object is a collection of points,splines, and patches that can be managed as a whole. The entire selection set at any given time constitutes one object. There are two other basic types:
IMPORTANT NOTES: More about Splines and Patches
PatchDance was designed to place as few limitations as possible upon the user: there should be almost nothing that CANNOT be built. On the other hand, there are many allowed operations that will lead to problems or cause poor results.
Cubic Bezier splines are easier to work with than B-Splines (NURBS are a type of B-Spline) and very versatile. Their main limitation is that they cannot form mathematically exact circles and ellipses (conic sections). For non-drafting purposes, though, they are generally accurate enough. B-Splines also make it easier to create fair (equal slope) curves; PatchDance has special added support for this.
It is possible, though not generally recommended, to create more than one spline between 2 points. It is NOT possible to make a 2 sided patch, so this type of construction will ALWAYS render as a hole.
It is easy to divide splines into smaller pieces: try not to use more than 120° of curvature in a single spline (PatchDance itself never exceeds 90°, and this is even better). Large curvatures lead to highly ³stressed² surfaces that cause problems with the camera view (in shaded mode) and spline based operations such as path extrusion. It may also increase rendering time and memory usage, even if the number of patches is less.
PatchDance surfaces are based on a mathematical formulation called a Coons patch. These are very general (no limitations on boundary curves) but may lead to problems if used carelessly. Several points to remember:
Using QuickDraw 3D
PatchDance supports many QuickDraw 3D features (with more on the way). In order to use them, you must install the QuickDraw 3D shared library (available online, or preinstalled on late model Power Macintoshes). This in turn requires that you have at least 16MB of RAM (and several MB) free, or the system won¹t work: commands requiring it will either be disabled or display an alert.
The Show Clipboard command also requires the QuickDraw 3D Viewer shared library.
When importing or rendering large models, be aware that much more memory than 16MB may be required. PatchDance should be able to recover from most out-of-memory errors, but that definitely isn¹t guaranteed.
INTERFACE: (DON¹T SKIP THIS!)
PatchDance generally uses a ³standard² interface, familiar to Macintosh users. There are a few exceptions, discussed below. Also see Selection, which is quite different from standard behavior.
Many menu items are enabled whether or not they can actually be done. This doesn¹t mean that a given operation is possible, it¹s just not practical to check all the possibilities each time the user clicks in the menu bar (especially in the case of user-defined extensions). If you try to do something that doesn¹t make sense, you¹ll be notified by an alert, usually with a reason, which is more helpful than a disabled item anyway.
Tool / Operation Dialogs
You will notice that there are several distinct ³styles² of dialogs. Tech Support is highly interested in user input as to the best types. The goal is for v1.0 to have the best possible interface, in the users¹ opinions.
Many PatchDance functions are controlled by dialogs. With very few exceptions (the Preferences Dialog is one), control and option dialogs are modeless: you are free to have them on screen all the time if you wish. Most dialogs (and the Modeling windows) get the select click, i.e. clicking a button in an inactive dialog both activates the dialog and clicks the button. If a dialog is closed or hidden, just select it from the menu or Tool Palette and it will reappear, with all settings intact. Most dialogs have default buttons, and hotkey equivalents for most other buttons.
IMPORTANT: Hot keys are usually the first letter of the button title. When a conflict occurs, the hotkey is marked (Centroid (D)). On graphical buttons, the letter is marked the same way as on the Tool Palette. You must NOT use the Command key with this (it causes keystrokes to be sent to PatchDance directly), and it does NOT work with:
THUMBWHEEL
The thumbwheel feature allows you to quickly adjust a numeric value without having to type a new number. It¹s difficult to explain in print: type a value into an edit field, place the cursor in the middle, and press the up/down arrow keys until you see how it works. Note that the FIRST time you press a key, the target digit (if deselected) is selected but not changed. You CANNOT use the up/down arrow keys to move to the beginning or end of an edit box; use Home and End instead.
SLIDE WIDGET
This is a small, low overhead replacement for the standard Mac slider type control. They are used only for interactive (real time) operations that provide their own feedback, and where there is not enough room for a standard slider. Examples are the roll and zoom controls at the bottom of the Camera window. When these are clicked and the mouse dragged (horizontally, in this case) the result is immediately displayed in the Camera window, as well as numerically in the edit fields next to the controls. Slide Widgets always have a red border, unlike all other controls.
NUMERIC DATA
Fields for numeric entry can be picky about what they accept. If the computer beeps and/or refuses to accept a keystroke, chances are you are trying to enter a value of the wrong type (some fields accept only integer values) or outside the allowed bounds: the allowed range (if any) is usually listed in the Prompt Bar at the bottom of the screen if you point to the edit field.
3D CURSOR:
Also called the Cursor (capitalized). It should be clear from the context whether the normal (mouse cursor) is intended. The 3D Cursor appears in the Modeling windows as a small cross in the current Marker color. It has several uses: