This is CubeCell.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 CubeCell INHERITS FROM ActionCell:Cell:Object DECLARED IN "CubeCell.h" CLASS DESCRIPTION CubeCells do the necessary drawing and mouse-tracking to implement Cube Controls. INSTANCE VARIABLES Inherited from Object Class isa; Inherited from Cell char *contents; id support; struct _cFlags1 cFlags1; struct _cFlags2 cFlags2; Inherited from ActionCell int tag; id target; SEL action; Declared in CubeCell float mat[3][3]; mat The current transformation matrix for the cube (this is a matrix with determinant +1) METHOD TYPES Initializing a new CubeCell - init Setting CubeCell Value - reset - setmatrix: - getmatrix: - rotate:: Displaying ± calcCellSize:inRect: ± drawcube - drawInside:inView: Tracking the Mouse - continueTracking:at:inView: - startTrackingAt:inView: Archiving - read: - write: CLASS METHODS (none) INSTANCE METHODS calcCellSize:inRect: - calcCellSize:(NXSize *)theSize inRect:(const NXRect *)aRect Returns aRect->size by reference. continueTracking:at:inView: - (BOOL)continueTracking:(const NXPoint *)lastPoint at:(const NXPoint *)currentPoint inView:controlView Continues tracking by moving the cube to currentPoint. drawcube - drawcube Actual drawing method. drawInside:inView: - drawInside:(const NXRect *)cellframe inView:controlView This method overrides the inherited drawInside method. It simply invokes drawcube. init - init Initalize and reset. getmatrix: - getmatrix:(float *)get Copy the transformation matrix of the cube into the get matrix. read: - read:(NXTypedStream *)stream Reads the CubeCell from the typed stream stream. Returns self. reset - reset Set the transformation matrix to the identity matrix. rotate - rotate:(float)ph : (float)th Multiply the transformation matrix to the left with the matrix {cos(th)*cos(ph),-sin(th)*cos(ph),-sin(ph)} {sin(th) , cos(th) , 0} {cos(th)*sin(ph) ,-sin(th)*sin(ph) ,cos(ph)} ,ie. rotate by these amounts. ph and th should be in ]-p,+p[ and [0,2p[ respectively. setmatrix: - setmatrix:(float *)set Copy the set matrix into the transformation matrix of the cube. startTrackingAt:inView: - (BOOL)startTrackingAt:(const NXPoint *)startPoint inView:controlView Begins a tracking session. Always returns YES. write: - write:(NXTypedStream *)stream Writes the receiving CubeCell to the typed stream stream and returns self.
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.