home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Headers / 3Dkit / N3DShader.h < prev    next >
Text File  |  1992-07-18  |  2KB  |  77 lines

  1.  
  2. /*
  3.     Copyright (c) 1991, 1992 by NeXT Computer, Inc as an unpublished work.
  4.     All rights reserved.
  5.  */
  6.  
  7. #import <objc/Object.h>
  8. #import <appkit/color.h>
  9. #import <ri/ri.h>
  10. #import <ri/slo.h>
  11. #import <objc/zone.h>
  12.  
  13. typedef struct {
  14.     SLO_VISSYMDEF symb; /* the slo symbol */
  15.     union {
  16.     float fval;
  17.     RtPoint pval;
  18.     NXColor cval;
  19.     char *sval;
  20.     } value; /* the value this arg has */
  21.     RtPoint _rgbv;
  22. } SLOArgs;
  23.  
  24. @interface N3DShader : Object
  25. {
  26.     NXColor    color;    /* expressed as an NXColor until the RiColor call */
  27.     float    transparency;
  28.     char    *shader;
  29.     SLO_TYPE    shaderType;
  30.     int        shaderArgCount; /* size of following array */
  31.     SLOArgs    *shaderArgs; /* dynamic a@C of shader args */
  32.     NXZone    *zone;
  33.     
  34.     /* private stuff */
  35.     RtToken    *_sTokens;
  36.     RtPointer    *_sValues;
  37.     BOOL    _doColor;
  38.     RtColor    _rgbColor;
  39.     RtColor    _rgbOpacity;
  40.     char    *_rsname;
  41.     void    *_N3Dprivate;
  42. }
  43.  
  44. - init;
  45. - initWithShader:(const char *)aShader;
  46. - free;
  47.  
  48. - setShader:(const char *)aShader;
  49. - (const char *)shader;
  50. - setColor:(NXColor)aColor;
  51. - (NXColor)color;
  52. - setUseColor:(BOOL)flag;
  53. - (BOOL)doesUseColor;
  54. - setTransparency:(float)value;
  55. - (float)transparency;
  56. - (int)shaderArgCount;
  57. - (const char *)shaderArgNameAt:(int)i;
  58. - (SLO_TYPE)shaderArgType:(const char *)aName;
  59. - (BOOL)isShaderArg:(const char *)aName;
  60. - (SLO_TYPE)shaderType;
  61. - setShaderArg:(const char *)aName floatValue:(float)fv;
  62. - setShaderArg:(const char *)aName stringValue:(const char *)sv;
  63. - setShaderArg:(const char *)aName pointValue:(RtPoint)pv;
  64. - setShaderArg:(const char *)aName colorValue:(NXColor)cv;
  65. - getShaderArg:(const char *)aName floatValue:(float *)fvp;
  66. - getShaderArg:(const char *)aName stringValue:(const char **)sv;
  67. - getShaderArg:(const char *)aName pointValue:(RtPoint *)pvp;
  68. - getShaderArg:(const char *)aName colorValue:(NXColor *)cvp;
  69. - resetShaderArg:(const char *)aName;  /* restores default value */
  70.  
  71. - set;
  72.  
  73. - read:(NXTypedStream *)stream;
  74. - write:(NXTypedStream *)stream;
  75.  
  76. @end
  77.