This is ART_Animator.m in view mode; [Download] [Up]
#import "ART_Animator.h" #import "ART_VektorView.h" #import <objc/Object.h> #import <appkit/appkit.h> #import <appkit/TextField.h> /* Interface Outlets & Macro id InVecView; id PreVecView; id TmpVecView; id F0msg; id F1msg; id F2msg; float *InVec; float *PreVec; float *TmpVec; int row; int col; int dim; float mag,z_max; int disp_mode; */ int Animation_hide=0; @implementation ART_Animator - init { [super init]; return self; } - initdisplay { float *Z; int i; Z=NXZoneMalloc([self zone],10*sizeof(float)); for (i=0;i<10;i++) Z[i]=0.0; // initialisation [self setDispMode:1]; [self setRow:2 Col:5]; [self setDim:10 Mag:1.0 zMax:1.0]; [self setInVec:Z]; [self setPreVec:Z]; [self setTmpVec:Z]; [self showAll]; NXZoneFree([self zone],Z); return self; } - setRow:(int)r Col:(int)c { row=r;col=c; return self; } - setDim:(int)d Mag:(float)m zMax:(float)z { dim=d;mag=m;z_max=z; return self; } - setInVec:(float *)Vec { InVec=Vec; return self; } - setPreVec:(float *)Vec { PreVec=Vec; return self; } - setTmpVec:(float *)Vec { TmpVec=Vec; return self; } - setDispMode:(int)dm { disp_mode=dm; return self; } - showInVec { if (Animation_hide) return self; if (disp_mode) { [InVecView setBackgroundGray:NX_WHITE]; [InVecView setPattern:InVec row:row col:col]; } else { [InVecView setBackgroundGray:NX_LTGRAY]; [InVecView setVector:dim Vec:InVec max:mag]; } [InVecView scaleToFit]; [InVecView display]; return self; } - showPreVec { if (Animation_hide) return self; if (disp_mode) { [PreVecView setBackgroundGray:NX_WHITE]; [PreVecView setPattern:PreVec row:row col:col]; } else { [PreVecView setBackgroundGray:NX_LTGRAY]; [PreVecView setVector:dim Vec:PreVec max:1.0]; } [PreVecView scaleToFit]; [PreVecView display]; return self; } - showWinVec:(int)m Vec:(float *)Vec { if (Animation_hide) return self; [TmpVecView setBackgroundGray:NX_LTGRAY]; [TmpVecView setVector:m Vec:Vec max:z_max]; [TmpVecView scaleToFit]; [TmpVecView display]; return self; } - showTmpVec { if (Animation_hide) return self; if (disp_mode) { [TmpVecView setBackgroundGray:NX_WHITE]; [TmpVecView setPattern:TmpVec row:row col:col]; } else { [TmpVecView setBackgroundGray:NX_LTGRAY]; [TmpVecView setVector:dim Vec:TmpVec max:z_max]; } [TmpVecView scaleToFit]; [TmpVecView display]; return self; } - showAll { if (Animation_hide) return self; [self showInVec]; [self showPreVec]; [self showTmpVec]; return self; } - F0msg { return F0msg; } - F01msg { return F01msg; } - F1msg { return F1msg; } - F2msg { return F2msg; } - windowDidDeminiaturize:sender; { Animation_hide=0; return self; } - windowDidMiniaturize:sender; { Animation_hide=1; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.