void IBAction::Create() { // create action variable for (uint i = 0; i < m_pDef->GetVarNames().size(); ++i) m_aVariables.insert(VarPair(m_pDef->GetVarNames()[i], IBObject())); ResolveVariableFromPostCond(m_aPostCond.back()); m_pDef->CreateOwnedVariables(this); m_eState = (IsResolved() ? IBA_State::IBA_Resolved : IBA_State::IBA_Unresolved); if (m_eState == IBA_State::IBA_Resolved) { m_eState = IBA_State::IBA_Ready; FinalizeCreation(); } else if (m_eState == IBA_State::IBA_Unresolved) { for (VarMap::iterator it = m_aVariables.begin(); it != m_aVariables.end(); ++it) { const IBObject& Obj = it->second; if (Obj.GetUserData() == nullptr) m_aPotentialVariables.insert(PotentialVarPair(it->first, vector<IBObject>())); } m_pDef->CompleteVariables(this); } }
//------------------------------------------------------------------------------ NadirPointing::NadirPointing(const std::string &itsName) : Kinematic("NadirPointing",itsName)// , // refBodyName ("Earth"), // refBody (NULL) { parameterCount = NadirPointingParamCount; objectTypeNames.push_back("NadirPointing"); attitudeModelName = "NadirPointing"; setInitialAttitudeAllowed = false; modifyCoordSysAllowed = false; // Reserve spaces to handle attribute comments for owned object // LOJ: 2013.03.01 for GMT-3353 FIX // ModeOfConstraint = "OrbitNormal"; // ReferenceVector.Set(-1,0,0); // ConstraintVector.Set(0,1,0); // BodyAlignmentVector.Set(0,0,1); // BodyConstraintVector.Set(1,0,0); FinalizeCreation(); }