MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
lti_utils.h
Go to the documentation of this file.
1 /* $Id$ */
2 /* //////////////////////////////////////////////////////////////////////////
3 // //
4 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, //
5 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
6 // prohibited. Access to and use of this code is permitted only under //
7 // license from LizardTech, Inc. Portions of the code are protected by //
8 // US and foreign patents and other filings. All Rights Reserved. //
9 // //
11 /* PUBLIC */
12 
13 #ifndef LTI_UTILS_H
14 #define LTI_UTILS_H
15 
16 
17 // lt_lib_mrsid_core
18 #include "lti_types.h"
19 
20 LT_BEGIN_NAMESPACE(LizardTech)
21 #define LTI_DEFAULT_MAG_SNAP_THRESHOLD 0.41503749927884381
22 
31 class LTIUtils
32 {
33 public:
45 
46 #if 1 //JAH deprecate
47 
54 
61  static bool hasAlphaBand(LTIColorSpace colorspace);
62 #endif
63 
72  static lt_uint8 getNumBytes(LTIDataType datatype);
73 
83  static bool isSigned(LTIDataType datatype);
84 
94  static bool isIntegral(LTIDataType datatype);
95  static bool isFloatingPoint(LTIDataType datatype);
96 
97  static double getMinValue(LTIDataType datatype);
98  static double getMaxValue(LTIDataType datatype);
99 
100  static bool needsSwapping(LTIDataType datatype, LTIEndian byteOrder);
101 
106 
118  static void convertWindowLevelToMinMax(double window, double level,
119  double& drmin, double& drmax);
120 
135  static void convertMinMaxToWindowLevel(double drmin, double drmax,
136  double& window, double& level);
143 
157  static lt_int32 magToLevel(double mag);
158 
169  static double levelToMag(lt_int32 level);
170 
179  static double snapToOctave(double mag, double threshold = LTI_DEFAULT_MAG_SNAP_THRESHOLD);
180 
191  static double snapToOctave(double mag, const LTIImageStage &imageStage, double threshold = LTI_DEFAULT_MAG_SNAP_THRESHOLD);
192 
193  static bool isOctave(double mag);
194 
195 
205  lt_uint32 height,
206  lt_uint32 iconsize);
207 
208 #if 0
209 
217  static double getMagForIcon(lt_uint32 width,
218  lt_uint32 height,
219  lt_uint32 iconsize);
220 
221  static double getMaxMag(lt_uint32 width, lt_uint32 height);
222 #endif
223 
237  static LT_STATUS getDimsAtMag(lt_uint32 width, lt_uint32 height,
238  double mag,
239  lt_uint32 &scaledWidth, lt_uint32 &scaledHeight);
240 
259  static void getVersionInfo(lt_uint32& major,
260  lt_uint32& minor,
261  lt_uint32& revision,
262  lt_uint32& build,
263  const char*& branch);
264 
274  static const char* getVersionString();
275 
276 private:
277  // nope
278  LTIUtils();
279  LTIUtils(const LTIUtils&);
280 };
281 
282 
283 LT_END_NAMESPACE(LizardTech)
284 
285 #endif // LTI_UTILS_H

LizardTech