This is Cube.rtf in view mode; [Download] [Up]
Release 1.0 No Copyright 1992 by David Stes, No Rights Reserved
You Can Contact Me At : david stes, hoge meerheuvel 5, 2960 brecht BELGIUM (stes@cage.rug.ac.be)
Please Do Not Make Serious Use Of This Object
Cube
INHERITS FROM Control:View:Slider:Object
DECLARED IN "Cube.h"
CLASS DESCRIPTION
Cubes are Controls that represent a certain three dimensional transformation matrix. Clicking a point inside the cube, will cause it to 'stick' to the mouse pointer; by rotating the cube, you alter the value of the matrix. In response to an action message sent by the Cube, you can retrieve the matrix by sending the Cube a getmatrix: message.
Cube (and an accompanying CubeCell) can be dragged into your application from the CubePalette in Interface Builder.
IMPORTANT : to compile, you should link the Cube class into your application
(i) add Cube.h and CubeCell.h to ".h(other)"
(ii) add Cube.o and CubeCell.o to "Other files"
(iii) create a Makefile.preamble containing the following lines :
OTHER_OFILES = Cube.o CubeCell.o
INSTANCE VARIABLES
Inherited from Object Class isa;
Inherited from Responder id nextResponder;
Inherited from View NXRect frame;
NXRect bounds;
id superview;
id subviews;
id window;
struct __vFlags vFlags;
Inherited from Control int tag;
id cell;
struct _conFlags conFlags;
Declared in Cube (none)
METHOD TYPES
Initializing a new Cube instance ± initFrame:
Setting Cube Values - reset:
- setmatrix:
- getmatrix:
Resizing the Cube - sizeToFit
Handling Events - acceptsFirstMouse
- mouseDown:
CLASS METHODS
(none)
INSTANCE METHODS
acceptsFirstMouse
Returns YES since Cubes always accept first mouse.
initFrame:
± initFrame:(const NXRect *)frameRect
Initializes and returns the receiver, a new instance of Cube. The Cube will be centered in the frameRect such that there's enough space to rotate it. By default, the Cube isn't continuous. After initializing the Cube, invoke the sizeToFit method to resize the Cube. This method is the designated initializer for the Cube class.
getmatrix:
- getmatrix:(float *)get
Copy the transformation matrix of the cube into the get matrix. Send display: to visualize the change.
Example :
- example
{
float matrix[3][3];
...
[cube getmatrix:(float*)matrix];
...
}
mouseDown:
- mouseDown:(NXEvent *)theEvent
Sends a trackMouse:inRect:ofView: message to the Cube's cell. Returns self.
reset:
- reset:sender
Set the transformation matrix to the identity matrix. Send display: to visualize the change.
setmatrix:
- setmatrix:(float *)set
Copy the set matrix into the transformation matrix of the cube. The determinant of the matrix should be +1. Send display: to visualize the change.
Example :
- example
{
float matrix[3][3];
...
[cube setmatrix:(float*)matrix];
...
}
sizeToFit
- sizeToFit
The Cube is sized to fit its cell. Returns self.
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.