home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / graphic / csg_rt / rgbvec.c < prev    next >
C/C++ Source or Header  |  1992-02-12  |  1KB  |  60 lines

  1. /*
  2.  
  3. RGBVEC.C  RGB Colour vector datatype
  4.  
  5. */
  6.  
  7. /*...sincludes:0:*/
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <stddef.h>
  11. #include <malloc.h>
  12. #include <memory.h>
  13. #include <math.h>
  14. #include "standard.h"
  15. #define    _RGBVEC_
  16. #include "rgbvec.h"
  17.  
  18. /*...vrgbvec\46\h:0:*/
  19. /*...e*/
  20.  
  21. /*...sscale_rgbvec:0:*/
  22. RGBVEC scale_rgbvec(RGBVEC rgbvec, double scalar)
  23.     {
  24.     rgbvec.r *= scalar;
  25.     rgbvec.g *= scalar;
  26.     rgbvec.b *= scalar;
  27.  
  28.     return ( rgbvec );
  29.     }
  30. /*...e*/
  31.  
  32. /*...srgb_interp_1d:0:*/
  33. RGBVEC    rgbvec_interp_1d(RGBVEC rgbvec_1d [2], double w1)
  34.     {
  35.     double    w0 = 1.0 - w1;
  36.     RGBVEC    rgbvec;
  37.  
  38.     rgbvec.r = w0 * rgbvec_1d [0].r + w1 * rgbvec_1d [1].r;
  39.     rgbvec.g = w0 * rgbvec_1d [0].g + w1 * rgbvec_1d [1].g;
  40.     rgbvec.b = w0 * rgbvec_1d [0].b + w1 * rgbvec_1d [1].b;
  41.  
  42.     return ( rgbvec );
  43.     }
  44. /*...e*/
  45. /*...srgb_interp_2d:0:*/
  46. RGBVEC    rgbvec_interp_2d(
  47.     RGBVEC rgbvec_2d [2][2],
  48.     double w1major,
  49.     double w1minor
  50.     )
  51.     {
  52.     RGBVEC    rgbvec_1d [2];
  53.  
  54.     rgbvec_1d [0] = rgbvec_interp_1d(rgbvec_2d [0], w1minor);
  55.     rgbvec_1d [1] = rgbvec_interp_1d(rgbvec_2d [1], w1minor);
  56.  
  57.     return ( rgbvec_interp_1d(rgbvec_1d, w1major) );
  58.     }
  59. /*...e*/
  60.