ftp.nice.ch/pub/next/developer/objc/3dkit/Pyramid.s.tar.gz#/Pyramid

English.lproj/
 
Kitchen.h
[View Kitchen.h] 
Kitchen.m
[View Kitchen.m] 
Makefile
 
Makefile.preamble
 
ModelController.h
[View ModelController.h] 
ModelController.m
[View ModelController.m] 
PB.gdbinit
 
PB.project
 
Pyramid.h
 
Pyramid.iconheader
 
Pyramid.m
 
Pyramid.tiff
 
Pyramid_main.m
[View Pyramid_main.m] 
README
 
SpatialView.h
[View SpatialView.h] 
SpatialView.m
[View SpatialView.m] 
Tesselmeer.h
[View Tesselmeer.h] 
Tesselmeer.m
[View Tesselmeer.m] 
TransformController.h
[View TransformController.h] 
TransformController.m
[View TransformController.m] 
matrix.h
[View matrix.h] 
matrix.subproj/
 
perspect.h
[View perspect.h] 
standard.h
[View standard.h] 

README

Pyramid.app

Pyramid grew out of a need to build some simple 3D graphics
primitives for a project I was working on. The functions in
matrix.subproj provide a basic mechanism for defining a 3D
perspective transformation and mapping points from space onto
a viewing plane. 

I wrote the pyramid model and viewer as a testbench to get
visual feed back from the matrix routines. Any problems
in  the math were *very* obvious as things spun around.
Having completed pyramid, I added the kitchen model for
my wife. Some time ago I had been helping her understand
the basics  of perspective, and made various diagrams
based on our kitchen. The crude diagrams didn't help
much, and I decided to do a computer model, which would be
accurate and dynamic. That never happened, of course,
until I realized after writing  Pyramid that adding a
kitchen model would be trivial. Watching the lines
converge on the vanishing points along the horizon as the
scene moves really makes the concept come alive. 

Though not complicated, it took a while to understand the
math and get it right, and I hadn't seen anything similar
on the net. I'm posting Pyramid and the matrix routines so
that others may have some fun as well. 

Acknowledgements:
	Thanks to Vince DeMarco for putting his
	CircularSlider palette on the net!

Problems:
	The hidden line algorithms are primitive. The moon will
	occasionally peek through to the foreground. 
	
	The kitchen will fold inside out if you look at it from
	funny angles. It's really only useful when viewed from 
	one octant of the coordinate space. 

_______________________________________________________
NeXTMail:Peter_Kron@corona.com
Corona Design, Inc.
P.O. Box 51022
Seattle, WA 98115-1022

LEGAL NOTICE:
This software is provided "as-is". In no event shall
Corona Design, Inc. ("CORONA") be liable for any damages
whatsoever (including, without limitation, damages
for loss of business profits, business interruption,
loss of business information, or any other pecuniary
loss) arising out of the use of or inability to use this
software, even if the CORONA has been advised of the
possibility of such damages.  Because some states do not
allow the exclusion or limitation of liability for
consequential or incidental damages, the above
limitation may not apply to you. 

THE ABOVE WARRANTY IS EXCLUSIVE AND IN LIEU OF ALL OTHER 
WARRANTIES WHETHER EXPRESSED OR IMPLIED.

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.