WSF
SOSM_SpectralObject.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef SOSM_SPECTRALOBJECT_HPP
13#define SOSM_SPECTRALOBJECT_HPP
14
15#include "sosm_export.h"
16
17#include <string>
18
36class SOSM_EXPORT SOSM_SpectralObject
37{
38public:
46
47 static std::string StatusString(Status aStatus);
48
50 : mOrigin(0.0F)
51 , mIncrement(0.0F)
52 , mCount(0)
53 , mLowerWavelength(0.0F)
54 , mUpperWavelength(0.0F)
55 {
56 }
57
58 SOSM_SpectralObject(float aOrigin, float aIncrement, int aCount)
59 : mOrigin(aOrigin)
60 , mIncrement(aIncrement)
61 , mCount(aCount)
62 , mLowerWavelength(0.0F)
63 , mUpperWavelength(0.0F)
64 {
65 UpdateWavelengthLimits();
66 }
67
69
70 // Using default copy constructor
71 // Using default assignment operator
72
74 float Origin() const { return mOrigin; }
75
78 float Increment() const { return mIncrement; }
79
82 int Count() const { return mCount; }
83
88 void DefineSpectralLimits(float aOrigin, float aIncrement, int aCount)
89 {
90 mOrigin = aOrigin;
91 mIncrement = aIncrement;
92 mCount = aCount;
93 UpdateWavelengthLimits();
94 }
95
102 {
103 mOrigin = aSource.mOrigin;
104 mIncrement = aSource.mIncrement;
105 mCount = aSource.mCount;
106 mLowerWavelength = aSource.mLowerWavelength;
107 mUpperWavelength = aSource.mUpperWavelength;
108 }
109
111 bool Equals(const SOSM_SpectralObject& aRhs) const
112 {
113 return ((mOrigin == aRhs.mOrigin) && (mIncrement == aRhs.mIncrement) && (mCount == aRhs.mCount));
114 }
115
116 Status Union(const SOSM_SpectralObject& aObject);
117
118 Status Union(const SOSM_SpectralObject& aObject1, const SOSM_SpectralObject& aObject2);
119
129
130
131 // Return the actual lower wavelength (um).
132 float LowerWavelength() const { return mLowerWavelength; }
133 // Return the actual upper wavelength (um).
134 float UpperWavelength() const { return mUpperWavelength; }
135
136 // Set the actual lower and upper wavelengths (um).
137 void SetWavelengthLimits(float aLowerWavelength, float aUpperWavelength)
138 {
139 mLowerWavelength = aLowerWavelength;
140 mUpperWavelength = aUpperWavelength;
141 }
142
144private:
145 void UpdateWavelengthLimits();
146
147 float mOrigin;
148 float mIncrement;
149 int mCount;
150 float mLowerWavelength;
151 float mUpperWavelength;
152};
153
154#endif
Definition SOSM_SpectralObject.hpp:37
int Count() const
Definition SOSM_SpectralObject.hpp:82
virtual ~SOSM_SpectralObject()
Definition SOSM_SpectralObject.hpp:68
void DefineSpectralLimits(float aOrigin, float aIncrement, int aCount)
Definition SOSM_SpectralObject.hpp:88
float Origin() const
Return the origin (wavenumber, cm-1) of the first sample point.
Definition SOSM_SpectralObject.hpp:74
SOSM_SpectralObject()
Definition SOSM_SpectralObject.hpp:49
Status
Return value from 'UnionOf'.
Definition SOSM_SpectralObject.hpp:41
@ cINCOMPATIBLE_INCREMENTS
Definition SOSM_SpectralObject.hpp:43
@ cOK
Definition SOSM_SpectralObject.hpp:42
@ cINCOMPATIBLE_ORIGINS
Definition SOSM_SpectralObject.hpp:44
void SetWavelengthLimits(float aLowerWavelength, float aUpperWavelength)
Definition SOSM_SpectralObject.hpp:137
SOSM_SpectralObject(float aOrigin, float aIncrement, int aCount)
Definition SOSM_SpectralObject.hpp:58
bool Equals(const SOSM_SpectralObject &aRhs) const
Do this object and another object have the same spectral limits?
Definition SOSM_SpectralObject.hpp:111
float UpperWavelength() const
Definition SOSM_SpectralObject.hpp:134
float Increment() const
Definition SOSM_SpectralObject.hpp:78
void DefineSpectralLimits(const SOSM_SpectralObject &aSource)
Definition SOSM_SpectralObject.hpp:101
float LowerWavelength() const
Definition SOSM_SpectralObject.hpp:132
Copyrights Multiple, All Rights Reserved