SEUnitScalar.h
1 /**************************************************************************************
2 Copyright 2015 Applied Research Associates, Inc.
3 Licensed under the Apache License, Version 2.0 (the "License"); you may not use
4 this file except in compliance with the License. You may obtain a copy of the License
5 at:
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software distributed under
8 the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9 CONDITIONS OF ANY KIND, either express or implied. See the License for the
10 specific language governing permissions and limitations under the License.
11 **************************************************************************************/
12 
13 #pragma once
14 
15 #include <biogears/cdm/properties/SEScalar.h>
16 
17 namespace biogears {
18 class BIOGEARS_API SEUnitScalar : public SEScalar {
19 public:
20  SEUnitScalar();
21  SEUnitScalar(const SEUnitScalar&);
22 
23  ~SEUnitScalar() override;
24 
25  void ToString(std::ostream& str) const override = 0;
26 
27  virtual const CCompoundUnit* GetUnit() const = 0;
28  virtual const CCompoundUnit* GetCompoundUnit(const char* unit) const = 0;
29  virtual const CCompoundUnit* GetCompoundUnit(const std::string& unit) const = 0;
30  virtual double GetValue() const override ;
31  virtual double GetValue(const char* unit) const = 0;
32  virtual double GetValue(const std::string& unit) const = 0;
33 
34  virtual SEUnitScalar& IncrementValue(double d, const char* unit) = 0;
35  virtual SEUnitScalar& IncrementValue(double d, const std::string& unit) = 0;
36  virtual SEUnitScalar& DecrementValue(double d, const char* unit) = 0;
37  virtual SEUnitScalar& DecrementValue(double d, const std::string& unit) = 0;
38 
39 };
40 }
Definition: SEScalar.h:33
Definition: CompoundUnit.h:59
Definition: SEUnitScalar.h:18
Definition: SEElectricalCircuit.h:18