37 #include "FGParameter.h"
38 #include "input_output/FGPropertyManager.h"
47 class FGPropertyValue;
757 : cached(false), cachedValue(-HUGE_VAL), PropertyManager(nullptr),
758 pNode(nullptr), pCopyTo(nullptr) {}
762 { PropertyManager = pm; }
781 FGFunction(FGFDMExec* fdmex, Element* element,
const std::string& prefix=
"",
782 FGPropertyValue* var=0L);
791 double GetValue(
void)
const override;
798 std::string
GetName(
void)
const override {
return Name;}
814 enum class OddEven {Either, Odd, Even};
819 std::vector <FGParameter_ptr> Parameters;
820 FGPropertyManager* PropertyManager;
821 FGPropertyNode_ptr pNode;
823 void Load(Element* element, FGPropertyValue* var, FGFDMExec* fdmex,
824 const std::string& prefix=
"");
825 virtual void bind(Element*,
const std::string&);
826 void CheckMinArguments(Element* el,
unsigned int _min);
827 void CheckMaxArguments(Element* el,
unsigned int _max);
828 void CheckOddOrEvenArguments(Element* el, OddEven odd_even);
829 std::string CreateOutputNode(Element* el,
const std::string& Prefix);
833 FGPropertyNode_ptr pCopyTo;
835 void Debug(
int from);