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

  1.  
  2. // copyright 1993 Michael B. Johnson; some portions copyright 1994, MIT
  3. // see COPYRIGHT for reuse legalities
  4. //
  5.  
  6.  
  7. #import "RIBTextureCoordinates.h"
  8.  
  9. @implementation RIBTextureCoordinates
  10.  
  11. + initialize { return [RIBTextureCoordinates setVersion:1], self; }
  12.  
  13. - init
  14. {
  15.   [super init];
  16.   s1 = 0;
  17.   t1 = 0;
  18.   s2 = 1;
  19.   t2 = 0;
  20.   s3 = 0;
  21.   t3 = 1;
  22.   s4 = 1;
  23.   t4 = 1;
  24.  
  25.   return self;
  26. }
  27.  
  28. - setS1:(RtFloat)newS1 t1:(RtFloat)newT1 s2:(RtFloat)newS2 t2:(RtFloat)newT2 s3:(RtFloat)newS3 t3:(RtFloat)newT3 s4:(RtFloat)newS4 t4:(RtFloat)newT4
  29. {
  30.   s1 = newS1;
  31.   t1 = newT1;
  32.   s2 = newS2;
  33.   t2 = newT2;
  34.   s3 = newS3;
  35.   t3 = newT3;
  36.   s4 = newS4;
  37.   t4 = newT4;
  38.   return self;
  39. }
  40.  
  41. - setS1:(RtFloat)newS1  {  s1 = newS1;  return self; }
  42. - (RtFloat)s1 { return s1; }
  43. - setT1:(RtFloat)newT1  {  t1 = newT1;  return self; }
  44. - (RtFloat)t1 { return t1; }
  45.  
  46. - setS2:(RtFloat)newS2  {  s2 = newS2;  return self; }
  47. - (RtFloat)s2 { return s2; }
  48. - setT2:(RtFloat)newT2  {  t2 = newT2;  return self; }
  49. - (RtFloat)t2 { return t2; }
  50.  
  51. - setS3:(RtFloat)newS3  {  s3 = newS3;  return self; }
  52. - (RtFloat)s3 { return s3; }
  53. - setT3:(RtFloat)newT3  {  t3 = newT3;  return self; }
  54. - (RtFloat)t3 { return t3; }
  55.  
  56. - setS4:(RtFloat)newS4  {  s4 = newS4;  return self; }
  57. - (RtFloat)s4 { return s4; }
  58. - setT4:(RtFloat)newT4  {  t4 = newT4;  return self; }
  59. - (RtFloat)t4 { return t4; }
  60.  
  61. - (BOOL)theSameAs:otherRIBCommand
  62. {
  63.   if (s1 != [(RIBTextureCoordinates *)otherRIBCommand s1])
  64.   {  return NO;
  65.   }
  66.   if (t1 != [(RIBTextureCoordinates *)otherRIBCommand t1])
  67.   {  return NO;
  68.   }
  69.   if (s2 != [(RIBTextureCoordinates *)otherRIBCommand s2])
  70.   {  return NO;
  71.   }
  72.   if (t2 != [(RIBTextureCoordinates *)otherRIBCommand t2])
  73.   {  return NO;
  74.   }
  75.   if (s3 != [(RIBTextureCoordinates *)otherRIBCommand s3])
  76.   {  return NO;
  77.   }
  78.   if (t3 != [(RIBTextureCoordinates *)otherRIBCommand t3])
  79.   {  return NO;
  80.   }
  81.   if (s4 != [(RIBTextureCoordinates *)otherRIBCommand s4])
  82.   {  return NO;
  83.   }
  84.   if (t4 != [(RIBTextureCoordinates *)otherRIBCommand t4])
  85.   {  return NO;
  86.   }
  87.  
  88.   return [super theSameAs:otherRIBCommand];
  89. }
  90.  
  91.  
  92.  
  93. - renderSelf:(WW3DCamera *)camera  startingAt:(RtFloat)shutterOpenTime endingAt:(RtFloat)shutterCloseTime
  94. {
  95.   RiTextureCoordinates(s1, t1, s2, t2, s3, t3, s4, t4);
  96.  
  97.   return self;
  98. }
  99.  
  100. - (unsigned long int)maxSampleBandwidth {  return ([super maxSampleBandwidth] + (unsigned long int)(8 * sizeof(RtFloat))); }
  101.  
  102.  
  103. - writeEve:(NXStream *)stream atTabLevel:(int)tab
  104. {
  105.    int  i;
  106.  
  107.  
  108.    for (i = 0; i < tab; i++)
  109.    {  NXPrintf(stream, "\t");
  110.    }
  111.    NXPrintf(stream, "TextureCoordinates %f %f %f %f %f %f %f %f;", s1, t1, s2, t2, s3, t3, s4, t4);
  112.    return self;
  113. }
  114.  
  115. - read:(NXTypedStream*)stream 
  116. {
  117.     int version;
  118.     [super read:stream];
  119.  
  120. NX_DURING
  121.     version = NXTypedStreamClassVersion(stream,"RIBTextureCoordinates");
  122.     if (version == 0) NXReadTypes(stream,"i",&version), version=1;
  123.     if (version == 1)
  124.     {  NXReadTypes(stream, "ffffff", &s1, &t1, &s2, &t2, &s3, &t3, &s4, &t4);
  125.     } 
  126. NX_HANDLER
  127.    NXLogError("in read: %s, exception [%d] raised.\n", 
  128.                  [[self class] name], NXLocalHandler.code);
  129.    return nil;
  130. NX_ENDHANDLER
  131.     return self;
  132. }
  133.  
  134. - write:(NXTypedStream*)stream 
  135. {
  136.     [super write:stream];
  137.  
  138.     NXWriteTypes(stream, "ffffff", &s1, &t1, &s2, &t2, &s3, &t3, &s4, &t4);
  139.  
  140.     return self;
  141. }
  142.  
  143.  
  144. @end
  145.