MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
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 
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 
216  static double getMagForIcon(lt_uint32 width,
217  lt_uint32 height,
218  lt_uint32 iconsize);
219 
220  static double getMaxMag(lt_uint32 width, lt_uint32 height);
221 
235  static LT_STATUS getDimsAtMag(lt_uint32 width, lt_uint32 height,
236  double mag,
237  lt_uint32 &scaledWidth, lt_uint32 &scaledHeight);
238 
257  static void getVersionInfo(lt_uint32& major,
258  lt_uint32& minor,
259  lt_uint32& revision,
260  lt_uint32& build,
261  const char*& branch);
262 
272  static const char* getVersionString();
273 
274 private:
275  // nope
276  LTIUtils();
277  LTIUtils(const LTIUtils&);
278 };
279 
280 
282 
283 #endif // LTI_UTILS_H
#define LT_BEGIN_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:84
static lt_int32 magToLevel(double mag)
convert mag to level
static double levelToMag(lt_int32 level)
convert level to mag
static double getMagForIcon(lt_uint32 width, lt_uint32 height, lt_uint32 iconsize)
get the magnification needed to scale an image to a given icon size
static void convertWindowLevelToMinMax(double window, double level, double &drmin, double &drmax)
convert from window/level to min/max
LTIColorSpace
colorspaces
Definition: lti_types.h:38
static bool isSigned(LTIDataType datatype)
returns true if datatype is signed
static lt_uint8 getNumLevelsForIcon(lt_uint32 width, lt_uint32 height, lt_uint32 iconsize)
get the number of levels needed to scale an image to a given icon size
static void convertMinMaxToWindowLevel(double drmin, double drmax, double &window, double &level)
convert from min/max to window/level
static const char * getVersionString()
get SDK version information as a string
unsigned int lt_uint32
unsigned 32-bit integer
Definition: lt_types.h:54
LTIDataType
datatypes
Definition: lti_types.h:105
signed int lt_int32
signed 32-bit integer
Definition: lt_types.h:52
static double getMaxMag(lt_uint32 width, lt_uint32 height)
convert mag to level
static lt_uint8 getMinNumSamplesPerPixel(LTIColorSpace colorspace)
returns number of samples per pixel
static LT_STATUS getDimsAtMag(lt_uint32 width, lt_uint32 height, double mag, lt_uint32 &scaledWidth, lt_uint32 &scaledHeight)
get dimensions at an octave
unsigned char lt_uint8
unsigned 8-bit integer
Definition: lt_types.h:46
This file contains a number of enums, typedefs, etc, that are used throughout the MrSID SDK...
static bool hasAlphaBand(LTIColorSpace colorspace)
returns true with colorspace has alpha channel flags
static bool isFloatingPoint(LTIDataType datatype)
static LTIColorSpace getColorSpaceWithoutAlpha(LTIColorSpace colorspace)
returns the colorspace without alpha channel flag
lt_uint32 LT_STATUS
An integral status code.
Definition: lt_status.h:39
static lt_uint8 getNumBytes(LTIDataType datatype)
returns number of bytes for a given a datatype
static double getMaxValue(LTIDataType datatype)
static double getMinValue(LTIDataType datatype)
abstract class for decoding from an image
static bool needsSwapping(LTIDataType datatype, LTIEndian byteOrder)
static void getVersionInfo(lt_uint32 &major, lt_uint32 &minor, lt_uint32 &revision, lt_uint32 &build, const char *&branch)
get SDK version information
#define LTI_DEFAULT_MAG_SNAP_THRESHOLD
Definition: lti_utils.h:21
static double snapToOctave(double mag, double threshold=0.41503749927884381)
snap to octave
static bool isIntegral(LTIDataType datatype)
returns true if datatype is integral
static bool isOctave(double mag)
convert mag to level
LTIEndian
constants representing endianness (byte order)
Definition: lti_types.h:164
#define LT_END_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:85
utility functions
Definition: lti_utils.h:31

LizardTech