示例#1
0
文件: IBAction.cpp 项目: beanhome/dev
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);
	}
}
示例#2
0
//------------------------------------------------------------------------------
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();
}