Main Page   Class Overview   Pixels   Images   Geometry   Quick Index  

HxRgbStretch.h

00001 /*
00002  *  Copyright (c) 2000, University of Amsterdam, The Netherlands.
00003  *  All rights reserved.
00004  *
00005  *  Author(s):
00006  *  Dennis Koelma (koelma@wins.uva.nl)
00007  *
00008  */
00009 
00010 #ifndef HxRgbStretch_h
00011 #define HxRgbStretch_h
00012 
00013 #include "HxTagList.h"
00014 #include "HxClassName.h"
00015 #include "HxColConvert.h"
00016 
00017 
00021 template<class ValT, class ValDoubleT>
00022 class HxRgbStretch
00023 {
00024 public:
00025                         HxRgbStretch(HxTagList& tags)
00026                             {
00027                                 _lowVal = HxGetTag(tags, "lowVal", double(0));
00028                                 _highVal = HxGetTag(tags, "highVal", double(255));
00029                                 _interval = _highVal - _lowVal;
00030                             }
00031 
00032     int                 doIt(const ValT& pixV)
00033                             {
00034                                 HxVec3Double v = (HxVec3Double) pixV;
00035                                 int x = (int) (((v.x() - _lowVal) / _interval) * 255);
00036                                 int y = (int) (((v.y() - _lowVal) / _interval) * 255);
00037                                 int z = (int) (((v.z() - _lowVal) / _interval) * 255);
00038                                 return (255 << 24) | (x << 16) | (y << 8) | z;
00039                             }
00040 
00041     int                 doItDouble(const ValDoubleT& pixV)
00042                             {
00043                                 HxVec3Double v = (HxVec3Double) pixV;
00044                                 int x = (int) (((v.x() - _lowVal) / _interval) * 255);
00045                                 int y = (int) (((v.y() - _lowVal) / _interval) * 255);
00046                                 int z = (int) (((v.z() - _lowVal) / _interval) * 255);
00047                                 return (255 << 24) | (x << 16) | (y << 8) | z;
00048                             }
00049 
00050     static HxString     className()
00051                             { return HxString("Stretch"); }
00052 
00053 private:
00054     double              _lowVal;
00055     double              _highVal;
00056     double              _interval;
00057 };
00058 
00059 
00060 #endif

Generated on Tue Jan 8 13:59:16 2002 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001