コード例 #1
0
void MultiActorAgent::controller(const LCreal dt)
{
   if ( (getState() != nullptr) && (nAgents>0) ) {
      // update global state once for all agents
      getState()->updateGlobalState();

      // for each behavior/actor pair, update state and generate action
      for (unsigned int i=0; i<nAgents; i++) {
         if (agentList[i].actor != nullptr) {

            setActor(agentList[i].actor);
            Basic::Ubf::Behavior* behavior = agentList[i].behavior;

            // update ubf state
            getState()->updateState(agentList[i].actor);

            // generate an action
            Basic::Ubf::Action* action = behavior->genAction(getState(), dt);
            if (action) { // allow possibility of no action returned
               action->execute(getActor());
               action->unref();
            }
         }
      }
      setActor(nullptr);
   }
}
コード例 #2
0
Particle::Particle(NxActor* pToSet, NxVec3& vThermoDynamicAcceleration)
{
	setActor(pToSet);

	// F = M*a
	_vThermoDynamicForce = pToSet->getMass()*vThermoDynamicAcceleration;
}
コード例 #3
0
CParticle::CParticle( void )
	: Alpha( 254 )
	, m_Scale( 1.0f )
{
	setActor(NULL);
	_vThermoDynamicForce.zero();

	CRandomize Rand;
	m_Scale = (float)Rand.GetRandomize( 1.0f , 1.5 );
}
コード例 #4
0
CParticle::CParticle( NxActor* pToSet , NxVec3& vThermoDynamicAcceleration , LASER_COLOR _Color )
	: Alpha( 254 )
	, m_Scale( 1.0f )
{
	setActor(pToSet);

	// F = M*a
	_vThermoDynamicForce = pToSet->getMass()*vThermoDynamicAcceleration;

	CRandomize Rand;
	m_Scale = (float)Rand.GetRandomize( 1.0f , 1.5 );

	m_Color = _Color;
}
コード例 #5
0
	void CSPhysXObject_StaticTree::addActor(PxRigidStatic* actor)
	{
		for (int x = 0; x<MAX_ACTORS; x++)
		{
			if (!m_Actors[x])
			{
				m_Actors[x] = actor;
				if (x == 0)
				{
					setActor(m_Actors[0]);
				}
				return;
			}
		}
	}
コード例 #6
0
UnitySensorFactory::UnitySensorFactory(std::string vehicle_name, const NedTransform* ned_transform)
{
	setActor(vehicle_name, ned_transform);
}
コード例 #7
0
Particle::Particle()
{
	setActor(NULL);
	_vThermoDynamicForce.zero();
}