34 #ifndef FGFCSCHANNEL_H
35 #define FGFCSCHANNEL_H
70 typedef std::vector <FGFCSComponent*> FCSCompVec;
77 : fcs(FCS), OnOffNode(node), Name(name)
79 ExecRate = execRate < 1 ? 1 : execRate;
81 ExecFrameCountSinceLastRun = ExecRate;
86 for (
unsigned int i=0; i<FCSComponents.size(); i++)
delete FCSComponents[i];
87 FCSComponents.clear();
94 FCSComponents.push_back(comp);
101 std::cerr <<
"Tried to get nonexistent component" << std::endl;
104 return FCSComponents[i];
109 for (
unsigned int i=0; i<FCSComponents.size(); i++)
110 FCSComponents[i]->ResetPastStates();
114 ExecFrameCountSinceLastRun = ExecRate;
121 if (OnOffNode && !OnOffNode->getBoolValue())
return;
123 if (fcs->GetDt() != 0.0) {
124 if (ExecFrameCountSinceLastRun >= ExecRate) {
125 ExecFrameCountSinceLastRun = 0;
128 ++ExecFrameCountSinceLastRun;
133 if (fcs->GetTrimStatus() || ExecFrameCountSinceLastRun >= ExecRate) {
134 for (
unsigned int i=0; i<FCSComponents.size(); i++)
135 FCSComponents[i]->Run();
143 FCSCompVec FCSComponents;
144 FGConstPropertyNode_ptr OnOffNode;
148 int ExecFrameCountSinceLastRun;