home *** CD-ROM | disk | FTP | other *** search
/ Stone Design / Stone Design.iso / Stone_Friends / Wave / WavesWorld / Source / IBPalettes / WW3DKit / WWBezierSurfaceOfRevolution.m < prev    next >
Encoding:
Text File  |  1995-03-22  |  1.6 KB  |  76 lines

  1. // copyright 1993 Michael B. Johnson; some portions copyright 1994, MIT
  2. // see COPYRIGHT for reuse legalities
  3. //
  4.  
  5.  
  6. #import "WWBezierSurfaceOfRevolution.h"
  7.  
  8. @implementation WWBezierSurfaceOfRevolution
  9.  
  10. - (BOOL)hasBoundingBox { return YES; }
  11.  
  12. - deriveHowManyPoints:(char *)archiveStr ofLength:(int)divisor
  13. {
  14.   char howManyStr[32];
  15.  
  16.  
  17.   // the string looks like "[1234f]"
  18.   strcpy(howManyStr, (archiveStr + 1));
  19.   howManyStr[strlen(howManyStr) - 2] = '\0';
  20.   howManyPoints = atoi(howManyStr) / divisor;
  21.  
  22.   return self;
  23. }
  24.  
  25.  
  26. - calculateBoundingBoxStartingAt:(RtFloat)shutterOpenTime endingAt:(RtFloat)shutterCloseTime 
  27. {
  28.   dirtyBoundingBox = FALSE; 
  29.   return self;
  30. }
  31.  
  32.  
  33. - setBoundingBox:(RtBound *)newBoundingBox
  34. {
  35.   N3D_CopyBound(*newBoundingBox, boundingBox);
  36.  
  37.   return self;
  38. }
  39.  
  40. - (RtBound *)boundingBox 
  41.    if (dirtyBoundingBox) 
  42.    {  [self calculateBoundingBoxStartingAt:[[myShape sceneClock] timestamp] endingAt:[[myShape sceneClock] timestamp]];
  43.    }
  44.    return &boundingBox; 
  45. }
  46.  
  47. - setMyShape:shape { myShape = shape;  return self; }
  48.  
  49. - shape { return myShape; }
  50.  
  51. - recordSelf:(WW3DCamera *)camera;
  52. {
  53.   RiArchiveRecord("comment", "WWBezierSurfaceOfRevolution called to recordSelf:"); 
  54.   return self;
  55. }
  56.  
  57. - renderSelf:(WW3DCamera *)camera 
  58. {
  59.   RiBasis(RiBezierBasis, RI_BEZIERSTEP, RiBezierBasis, RI_BEZIERSTEP);
  60.   RiPatchMesh(RI_BICUBIC, bezierWidth, RI_PERIODIC, nPoints, RI_NONPERIODIC, RI_P, (RtPointer)patchMesh, RI_NULL);
  61.   return self;
  62. }
  63.  
  64. - preRenderSelf:(WW3DCamera *)camera 
  65. {
  66.   return self;
  67. }
  68.  
  69. - transformCTM:(RtMatrix)aMatrix { return self; }
  70.  
  71. - (BOOL)isMotionBlurrable { return NO; }
  72.  
  73.  
  74. @end
  75.