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

  1. // copyright 1993 Michael B. Johnson; some portions copyright 1994, MIT
  2. // see COPYRIGHT for reuse legalities
  3. //
  4.  
  5.  
  6. #import "RIBShadingRate.h"
  7.  
  8. @implementation RIBShadingRate
  9.  
  10. + initialize { return [RIBShadingRate setVersion:1], self; }
  11.  
  12. - init
  13. {
  14.   [super init];
  15.   shadingRate = 100.;
  16.  
  17.   return self;
  18. }
  19.  
  20. - awake
  21. {
  22.   [super awake];
  23.  
  24.   return self;
  25. }
  26.  
  27. - setShadingRate:(RtFloat)newShadingRate
  28. {
  29.    shadingRate = newShadingRate; 
  30.    return self;
  31. }
  32.  
  33. - (RtFloat)shadingRate { return shadingRate; }
  34.  
  35.  
  36. - renderSelf:(WW3DCamera *)camera  startingAt:(RtFloat)shutterOpenTime endingAt:(RtFloat)shutterCloseTime
  37. {
  38.   RiShadingRate(shadingRate);
  39.   return self;
  40. }
  41.  
  42. - writeEve:(NXStream *)stream atTabLevel:(int)tab
  43. {
  44.    int  i;
  45.  
  46.  
  47.    for (i = 0; i < tab; i++)
  48.    {  NXPrintf(stream, "\t");
  49.    }
  50.    NXPrintf(stream, "ShadingRate %f;", shadingRate); 
  51.    return self;
  52. }
  53.  
  54. #define typeVector "f"
  55. #define typeValues &shadingRate
  56.  
  57. - read:(NXTypedStream *)stream 
  58. {
  59.     int version;
  60.     [super read:stream];
  61.  
  62. NX_DURING
  63.     version = NXTypedStreamClassVersion(stream,"RIBShadingRate");
  64.     if (version == 0) NXReadTypes(stream,"i",&version), version=1;
  65.     if (version == 1)
  66.     {  NXReadTypes(stream, typeVector, typeValues);
  67.     } 
  68. NX_HANDLER
  69.    NXLogError("in read: %s, exception [%d] raised.\n", 
  70.                  [[self class] name], NXLocalHandler.code);
  71.    return nil;
  72. NX_ENDHANDLER
  73.     return self;
  74. }
  75.  
  76. - write:(NXTypedStream *)stream 
  77. {
  78.     [super write:stream];
  79.  
  80.     NXWriteTypes(stream, typeVector, typeValues);
  81.  
  82.     return self;
  83. }
  84.  
  85. @end
  86.