ftp.nice.ch/pub/next/graphics/3d/Tester3D.NIHS.bs.tar.gz#/Tester3D/Source/View3D.h

This is View3D.h in view mode; [Download] [Up]

/* View3D.h */

#import <objc/Object.h>
#import "3D.h"

@interface View3D:Object
{
	id transformation;
	id subviews;
	id superview;
}

	/*
		tranformation 
			is a Transformation3D object, used on all drawing that is done by 	
			this view3D or any of it's subviews.
		subviews
			is a List object which contains all the View3D's subviews 
		superview 
			should be a View3D or a Context3D. All View3D's must have a superview
			to function properly 
	*/
	

+ new;

	/*	
		sets up a new View3D object with the instance variables initialized
		to the following:
			transformation is nil
			subviews is an empty list
			superview is nil
	*/
			
	
- moveto:(vector3D *)where;

	/* 
		moveto: sends [transformation operateOn:where] and then 
		[superview moveto:where] 
	*/

- lineto:(vector3D *)where;

	/* 
		lineto: sends [transformation operateOn:where] and then 
		[superview lineto:where] 
	*/

- polygon:(vector3D *)vertices howMany:(int)count;

	/*	
		polygon:howMany: sends [transformation OperateOn:vertices 	
		howMany:count]
		and then [superview polygon:vertices:count] 
	*/
	
- superview;

	/* Returns the View3D's superview */
	
- setSuperView:aView3D;
	
	/* 
		Should only be sent by another View3D or a Context3D to let the receiver
		know
		that its superview has been changed. Any calls to addSubView should
		automatically send this message to the subView being added. aView3D
		should be either a View3D or a Context3D.
		(see addSubView: below)
	*/
	
- addSubView:aView3D;
	
	/* 
		This is the way to add View3Ds into a View3D heirarchy. It Will
		send the setSuperView: message to aView3D with self as an argument,
		and will add aView3D into subviews automatically.
		(see setSuperView: above)
	*/

- render;

	/*
		This replaces the DrawSelf method of the View class. It should send
		itself moveto:, lineto: and polygon:howMany: messages. The vector3Ds
		sent along as arguments must be disposable, or assigned their original
		values each time the render message is sent, since they will be modified
		as they are passed up the View3D heirarchy to be displayed by the
		Context3D at the top.
		It will usually be called by it's superview when the
		Context3D at the top of the heirarchy is sent a drawSelf:: message.
		It shouldn't be called directly, only through calls to display.
	*/
	
- display;

	/* This sends itself render then sends display to each subview */
	
- transformation;
	
	/* returns the View3D's transformation instance variable */
	
- setTransformation:anObject;

	/* 
		sets transformation = anObject. The object must respond to operateOn
		and operateOn:howMany messages or else an error will be generated when
		the View3D is sent any moveto: lineto: or polygon:howMany: messages
	*/
		
- subviews;

	/* returns the subviews list */
	
@end

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