home *** CD-ROM | disk | FTP | other *** search
/ Altsys Virtuoso 2.0K / virtuoso_20k.iso / DemoApps / Graphics / 2D_3D / Tester3D / Source / View3D.m < prev   
Encoding:
Text File  |  1990-07-18  |  1.2 KB  |  93 lines

  1. /* View3D.m */
  2.  
  3. #import "View3D.h"
  4. #import "Transformation3D.h"
  5. #import "Context3D.h"
  6. #import <objc/List.h>
  7.  
  8. @implementation View3D
  9.  
  10. + new 
  11. {
  12.     self = [super new];
  13.     subviews=[List new];
  14.     superview=nil;
  15.     return self;
  16. }
  17.     
  18. - moveto:(vector3D *)where 
  19. {
  20.     [transformation operateOn:where];
  21.     [superview moveto:where];
  22.     return self;
  23. }
  24.  
  25. - lineto:(vector3D *)where 
  26. {
  27.     [transformation operateOn:where];
  28.     [superview lineto:where];
  29.     return self;
  30. }
  31.  
  32. - polygon:(vector3D *)vertices howMany:(int)count 
  33. {
  34.     [transformation operateOn:vertices howMany:count];
  35.     [superview polygon:vertices howMany:count];
  36.     return self;
  37. }
  38.     
  39. - superview 
  40. {
  41.     return superview;
  42. }
  43.     
  44. - setSuperView:aView3D 
  45. {
  46.     superview=aView3D;
  47.     return self;
  48. }
  49.     
  50. - addSubView:aView3D 
  51. {
  52.     [aView3D setSuperView:self];
  53.     [subviews addObjectIfAbsent:aView3D];
  54.     return self;
  55. }
  56.  
  57. - render 
  58. {
  59.     return self;
  60. }
  61.     
  62. - display
  63. {
  64.     [self render];
  65.     [subviews makeObjectsPerform:@selector(display)];
  66.     return self;
  67. }
  68.  
  69. - transformation 
  70. {
  71.     return transformation;
  72. }
  73.     
  74. - setTransformation:anObject 
  75. {
  76.     transformation=anObject;
  77. }
  78.     
  79. - subviews
  80. {
  81.     return subviews;
  82. }
  83.  
  84. - free
  85. {
  86.     [transformation free];
  87.     [subviews freeObjects];
  88.     [subviews free];
  89.     return [super free];
  90. }
  91.  
  92. @end
  93.