Contents
Preface xv
1 INTRODUCTION
1.1 Example Files
1.1.1 Compiling Example Plug-ins
1.1.2 Sourcing Example MEL Scripts1.2 Executing MEL Code in the Script Editor
2 POINTS
2.1 Dimensions
2.2 Cartesian Coordinates
2.3 Homogeneous Coordinates
2.4 Polar and Spherical Coordinates
2.5 Conversions2.5.1 Cartesian to Homogeneous
2.5.2 Homogeneous to Cartesian
2.5.3 Cartesian to Polar
2.5.4 Polar to Cartesian
2.5.5 Cartesian to Spherical
2.5.6 Spherical to Cartesian2.6 MEL
2.7 C++ API
2.8 Locators3 VECTORS
3.1 MEL
3.2 C++ API
3.3 Adding
3.4 Subtracting
3.5 Scaling
3.6 Length3.6.1 MEL
3.6.2 C++ API3.7 Distance Between Points
3.7.1 MEL
3.7.2 C++ API3.8 Normalizing Vectors
3.8.1 MEL
3.8.2 C++ API3.9 Dot Product
3.9.1 Angle Between
3.9.2 Length Squared
3.9.3 Perpendicular Projection3.10 Cross Product
3.10.1 Perpendicular Vector
3.10.2 Area of Triangle3.11 Points Versus Vectors
4 ROTATIONS
4.1 Angles
4.1.1 MEL
4.1.2 C++ API4.2 Rotations
4.3 Orientation Representations4.3.1 Euler Angles
4.3.2 Quaternions5 TRANSFORMATIONS
5.1 Matrices
5.1.1 Matrix Multiplication
5.1.2 Matrix Transpose
5.1.3 Identity Matrix
5.1.4 Inverse Matrix
5.1.5 MEL
5.1.6 C++ API5.2 Transforming Points
5.2.1 MEL
5.2.2 C++ API5.3 Transforming Vectors
5.3.1 MEL
5.3.2 C++ API5.4 Transforming Normals
5.4.1 MEL
5.4.2 C++ API6 TRANSFORM NODES
6.1 Pivot Points
6.2 Transformation Matrices6.2.1 Querying Transformation Matrices
6.2.2 Editing Transformation Matrices6.3 Hierarchies of Transformations
6.3.1 Transformation Spaces
6.3.2 MEL
6.3.3 C++ API7 COORDINATE FRAMES
7.1 Up Axis
7.1.1 MEL
7.1.2 C++ API7.2 Handedness
7.3 Custom Coordinate Frames7.3.1 C++ API
8 POLYGONAL MESHES
8.1 Displaying Meshes
8.1.1 General
8.1.2 Components
8.1.3 Normals
8.1.4 Back-face Culling
8.1.5 UV Texture Coordinates
8.1.6 Vertex Colors
8.1.7 Nonplanar Faces8.2 Querying Meshes
8.2.1 Vertices
8.2.2 Edges
8.2.3 Polygons
8.2.4 Face Vertices
8.2.5 Normals
8.2.6 UV Texture Coordinates
8.2.7 Blind Data8.3 Creating Meshes
8.3.1 Problematic Meshes
8.3.2 Creation Checks
8.3.3 Molecule1 Plug-in
8.3.4 Molecule2 Plug-in
8.3.5 Molecule3 Plug-in
8.3.6 Molecule4 Plug-in8.4 Editing Meshes
8.4.1 Construction History
8.4.2 Supporting Construction History
8.4.3 Supporting Tweaks
8.4.4 Mesh-editing Framework
8.4.5 DisplaceMesh Plug-in9 NURBS
9.1 Concepts
9.1.1 Control Vertex (CV)
9.1.2 Hull
9.1.3 Span
9.1.4 Degree
9.1.5 Order
9.1.6 Edit Points
9.1.7 Curve Point
9.1.8 Parameterization
9.1.9 Knots
9.1.10 Form
9.1.11 Surface Point
9.1.12 Surface Isoparms
9.1.13 Surface Patches
9.1.14 Surface Curves
9.1.15 Trimmed Surfaces9.2 NURBS Curves
9.2.1 Displaying Curves
9.2.2 Querying Curves
9.2.3 Creating Curves
9.2.4 Editing Curves9.3 NURBS Surfaces
9.3.1 Displaying Surfaces
9.3.2 Querying Surfaces
9.3.3 Creating Surfaces
9.3.4 Editing Surfaces10 SUBDIVISION SURFACES
10.1 Concepts
10.1.1 Control Mesh
10.1.2 Subdivision
10.1.3 Limit Surface
10.1.4 Creases
10.1.5 Hierarchical Subdivisions
10.1.6 Ordinary and Extraordinary Points
10.1.7 Subdivision Scheme10.2 Displaying Subdivision Surfaces
10.3 Querying Subdivision Surfaces10.3.1 Components
10.3.2 Creases
10.3.3 UV Texture Coordinates
10.3.4 MEL
10.3.5 C++ API10.4 Creating and Converting Subdivision Surfaces
10.4.1 Polygonal Mesh to Subdivision Surface
10.4.2 Subdivision Surface to Polygonal Mesh
10.4.3 NURBS Surface to Subdivision Surface
10.4.4 Subdivision Surface to NURBS Surface
10.5 Editing Subdivision Surfaces
10.5.1 MEL11 CONTEXTS (TOOLS)
11.1 SelectRingContext1 Plug-in
11.1.1 Usage
11.2 SelectRingContext2 Plug-in
11.2.1 Installation
11.2.2 Usage11.3 SelectVolumeContext1 Plug-in
11.3.1 Installation
11.3.2 UsageA FURTHER LEARNING
A.1 Online Resources
A.1.1 Companion Web Site
A.1.2 Additional Web SitesA.2 Maya Application
A.2.1 Documentation
A.2.2 ExamplesB FURTHER READING
B.1 Mathematics
B.2 ProgrammingB.2.1 General
B.2.2 C++ LanguageB.3 Computer Graphics
B.3.1 General
B.3.2 Modeling
B.3.3 Animation
B.3.4 Image SynthesisGlossary
Index