[N-World Contents] [Book Contents] [Prev] [Next] [Index]
Contents
About this Document
- Contents of This Document
- Document Style Conventions
- Functions
- Arguments
- Notes
- Mouse and Keyboard Notation
- Menu Notation
1 Welcome to Nichimen's Wide Open World
- Opening the Door
- Defining Your Own Functions
- Using Buffers
- Finding Arguments
- Saving your New Function
- Welcome to the Wide Open World!
2 Lisp Fundamentals
- The Lisp Interpreter and Evaluation
- Symbols
- Packages
- Forms and Evaluation
- Functions
- Evaluation, Side Effects,
and Functional Programming
- Defining Your Own Functions
- Lists
- Manipulating Lists
- Creating a List
- Returning Elements of a List
- Variables
- Scope
- Setting Local Variables
- Types
- Arrays
- Classes
- Slots
- Generic Functions
- Defining Classes
- Instancing
- Manipulating Slot Values
- Defining Methods
- Inheritance of Slots and Methods
- Object Oriented Programming Tools
3 Creating N·World Code
- Getting Started
- Using Xemacs
- Extending Xemacs
- The Xemacs Window
- Basic Commands and Key Bindings
- Creating Code
- Entering Code in the Lisp Listener
- Entering Code in a Buffer
- Saving Your Work
- Where to Save Your Source Code
- Xemacs Modes
- Finding a Function, Method, or Macro
- Getting the Argument List of a Function
- Getting the Source Code of a Function
- Object Oriented Programming Tools
- Using the Window Inspector
- Compiling Your Code
- Compiling Individual Forms
- Compiling a Buffer
- Compiling to a File
- Using the Debugger
- Break Levels
- Moving Through Break Levels
- Debugging and Multiprocessing
- Working with Plug-Ins
- Storing Your Plug-ins
- Using Your Plug-ins
- Default Plug-in Directories
- Loading Plug-ins Every Time N·World Loads
- Loading Plug-ins in Specific Situations
4 Defining Foreign Functions
- Handling Foreign Functions
- Compiling and Linking Shared Object Files
- Compiler Options
- Including C Libraries
- Loading Shared Object Files
- Defining C Types
- Typedefs
- Type Checking
- Example
- Creating a C Object
- Getting the Value of a C Object from Lisp
- Setting the Value of a C Object from Lisp
- Data Types and Clipping
- Defining a Type in Lisp Space
- Defining More Complex C Structures
- Manipulating Slots in Structures
- Defining Arrays
- C-Type Utilities
- Listing C Types
- Examining C Types
- Using FF Types
- Defining New FF Types
- FF Type Utilities
- Managing Strings
- Defining Foreign Functions
- Example:
- General Issues With Foreign Functions
- Watch out for Bignums & C Pointers
- When to Recompile Your Lisp Code
- .SO Load Order
- .SO Files Cannot Reference External Definitions
- Converting N·World 2.1 Foreign Functions
5 Building Interfaces with the UI-Toolkit
- Types of Windows
- Applications Windows
- Pop-up menus
- Menu Object Hierarchy
- Creating Application Windows
- Application Window field properties
- Defining Pop-up Windows
- Pop-up Window field properties
- Example
- General Window field properties
- Using Defaults to Control Window Appearance
- Adding Fields to Applications Windows
- How Fields Work
- Expose Tests
- Fields and Data
- Field Types
- Field Properties
- Mouse Documentation
- Defining Fields
- Container Fields
- Creating Container Fields
- Container Field Properties
- Label Fields
- Creating Label Fields
- Field properties
- Example
- Spacer Fields
- Creating Spacer Fields
- Field properties
- Example
- Number Fields
- Creating Number Fields
- Field properties
- Examples
- Text Fields
- Creating Text Fields
- Field Properties
- Example
- Pathname-String Fields
- Creating Pathname Fields
- Field Properties
- Example
- Directory Fields
- Creating Directory Fields
- Field Properties
- Examples
- File-name Fields
- Creating Filename Fields
- Field Properties
- Examples
- Command Fields
- Creating Command Fields
- Field Properties
- Example
- Do It Fields
- Creating Do it Fields
- Abort Fields
- Creating Abort Fields
- Field Properties
- Slider Fields
- Creating Slider Fields
- Field Properties
- Slider Field Defaults
- Examples
- Multiple Choice Fields
- Creating Multiple Choice Toggle Fields
- Subfield Field Properties
- Examples
- Pop-Up Fields
- Field Properties
- Object Fields
- Color Fields
- Colors
- Graphic Contexts
- Value-Objects
- Returning Values from Value-Objects
- Traversing Menu Objects
- Finding Superfields
- Finding Subfields
- Finding Select Methods
- Returning Field Values
- Controlling Fields
- Defining Select-Methods
- Determining Which Mouse Buttons are Pressed
- Expose Tests
- Field Utilities
- Menu Choose
- Field Properties
- Menu Notify
- Menu Confirm
6 Introduction to N·World Objects
- N·World Object Structure
- Changing Transformation Matrices
7 Creating, Manipulating, and Traversing
Bodies and Objects
- A Quick Review of Bodies and Objects
- Getting Started
- Creating Simple Objects
- Make Functions for Polyhedra
- Binding Bodies to Variables
- Creating Objects
- Naming Objects
- Viewing Objects
- Selecting Items
- Selecting Bodies Interactively
- Referencing Elements Symbolically
- Referencing Objects by Name
- Selecting Objects From a Menu
- Choosing Multiple Objects
- Working with Lists of Multiple Objects
- Finding Out about Objects with Describe
- Traversing Elements of Polyhedra
- Traversing Vertices
- Traversing Faces
- Traversing Elements of a Face
- Collecting the Elements of Polyhedra
- Collecting Faces Given a Body
- Collecting Faces GIven an Edge
- Collecting Vertices
- Traversing Grids
- Traversing Wireframes and Skeletons
- More Ways to Collect Elements
- Manipulating Objects
- Basic Object Hierarchy Concepts
- Determining Position in a Hierarchy
- Finding Superior and Inferior Objects
- Finding the Body of an Object
- Finding Objects of a Body
- Finding BDIs of a Body
- Finding the Body Referenced by a BDI
- Finding the Object Referenced by a BDI
- Finding Top-Level Objects of a BDI
- Traversing Object Hierarchies
- Getting the Objects of a Compound Object
- Getting the Terminal Objects of a Hierarchy
- Getting the Bodies of Objects in a Hierarchy
- Getting the BDIs in a Hierarchy
- Loop Paths for Object Hierarchies Summarized
- Non-Standard Loop Paths
- Getting Superior Objects of a Body
- Getting Top Level Objects of a Body
8 Exporting Object Data
- Exporting Geometry
- Determining Element Order
- Avoiding Printed Representations
- Formatting Output to a File
- A Sample Exporter
- Exporting UV Coordinates
- Getting the UVs of a Vertex
- Examples and Templates
- Seams and Edges
- Transformations
- Transformation Matrices
- Unit Direction Vectors
- Normalizing Vectors
- Transformation Notation
- Creating Scratch Matrices
- Transformations and Object Hierarchies
- Obtaining the Local Transformation
- Calculating the Current Transformation
- Calculating Current Transformations With Respect to Other Objects
- Additional Transformation Matrices
- Body-Matrix
- Init-matrix
- Manipulating Transformations
- Transforming Objects
- Altering Matrices
- Altering Matrices: Examples
- Rotating
- Decomposing Matrices
- Rotations
- Obtaining Rotations
- Obtaining Scalings, Shearings, and Translations
- Obtaining Positions
- Obtaining Up, Direction, and Position from Matrices
- Converting Matrices to Quaternions
9 Rendering Operations
- A Conceptual Overview of Rendering
- Attributes
- Attribute Domains
- Attribute Domain Hierarchy
- Attribute Values for Bodies
- Attribute Values for Face Parts
- Surface Contexts
- Derived Attribute Values: an Example
- Defining Attributes and Attribute Domains
- Example
- Defining Attributes
- Example
- Understanding Element-Types
- Adding Your Domain to the Materials Editor
- Creating Attributes Editor Menus
- Defining the Parameters Menu
- Creating Attribute Fields
- Defining Command Fields
- Saving Parameters to a Preference File
- Manipulating Attributes, Sets, and Domains
- Retrieving Attribute Domains
- Finding a specific domain
- Returning the Current Domain
- Changing the Current Domain
- Retrieving materials
- Retrieving a Specific material
- Retrieving the Current material
- Defining materials
- Retrieving and Setting Attribute Values
- Deriving A Local Attribute Value
- Changing a Local Attribute Value
- Which Objects have Attributes
- Assigning a Base material to an Object
10 Extending Applications
- Extending Dynamics
- The Dynamics Philosophy
- Inheritance, Dynamic, and Static Values
- Dynamics Operations
- Preparing To Define Dynamics Operations
- Anatomy of a Dynamics Operation
- Defining Dynamics Operations Classes
- Dynamics Classes Utilities
- Controlling Input with Parameters
- Built-in Dynamics Parameter Field Types
- Setting Parameter Type Defaults
- Parameter Type Slider Defaults
- Defining Parameters
- Controlling Program Flow
- Extending Geometry
- Understanding Editor Methods
- GeoClasses
- Geoclass Utilities
- The Editor Menu Interface
- Editor Menu Items (edmenu-items)
- Edmenu-item Utilities
- Defining Editor Methods (edmethods)
- Understanding bdis&elements
- Using the bdis&elements List
- A Sample Edmethod
- Geometry User Interface Utilities
11 Traversing Elements
- Loop Iteration Paths vs. Short Forms
- Traversing Elements of a Polyhedron through
Element Rings
- Equivalent Short Forms
- Traversing Elements of a Face
- Equivalent Short Forms
- Traversing Neighboring Elements of a Vertex
- Equivalent Short Forms
- Traversing Elements of a Wire
- Equivalent Short Forms
- Traversing Object Hierarchy
12 Optimizing Code
- Optimizing Math with Anti-Generic Functions
- NCL Anti-Generic Functions
- Declarations
- Relational Operators
- Predicates
- Arithmetic Operators
- Trigonometric Functions
- Math Utilities
- Multiple Values Bind Utilities
- Optimization with Floating Point Vectors
- Ftriplets
- Creating Ftriplets
- Reading Ftriplets
- Modifying Ftriplets
A ASCII Object File Format
- The File Attribute Header
- Readin Information
- Object Specification
- Object Description
- Body Identifiers
- The Symbolic Body Identifier
- String Body Identifier
- List Body Identifier
- Optional Object Information
- Body Keywords
- Polyhedron Keywords
- Saving Objects
- Saving a Sample Object
B N·World 2.1 - 3.0 Renamed Functions
- Function Names Preceded by $
- Anti-Generic Functions (! Suffixes)
- Functions Which have been Deleted
- Renamed Functions
- Functions with Changed Argument Lists
- View-Related Camera Methods
Index
[N-World Contents] [Book Contents] [Prev] [Next] [Index]
Another fine product from Nichimen documentation!
Copyright © 1996, Nichimen Graphics Corporation. All rights
reserved.