FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
ParameterChecks.h
1#pragma once
6
7#include <fhsim/simobject/ISimObjectCreator.h>
8
9#include <cmath>
10#include <string>
11
12namespace RbCable
13{
19inline void RequireElements(ISimObjectCreator* const creator, const int numElements)
20{
21 if (numElements < 1) {
22 creator->ReportParameterError("numElements", "must be at least 1, was " + std::to_string(numElements) + ".");
23 }
24}
25
32inline void RequirePositive(ISimObjectCreator* const creator, const std::string& name, const double value)
33{
34 if (!(std::isfinite(value) && value > 0.0)) {
35 creator->ReportParameterError(name, "must be a finite number above zero, was " + std::to_string(value) + ".");
36 }
37}
38
45inline void RequireNotNegative(ISimObjectCreator* const creator, const std::string& name, const double value)
46{
47 if (!(std::isfinite(value) && value >= 0.0)) {
48 creator->ReportParameterError(name, "must be a finite number, zero or above, was " + std::to_string(value) + ".");
49 }
50}
51} // namespace RbCable