当前位置: 首页>>代码示例>>C++>>正文


C++ VectorXs::setZero方法代码示例

本文整理汇总了C++中VectorXs::setZero方法的典型用法代码示例。如果您正苦于以下问题:C++ VectorXs::setZero方法的具体用法?C++ VectorXs::setZero怎么用?C++ VectorXs::setZero使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在VectorXs的用法示例。


在下文中一共展示了VectorXs::setZero方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: initializeImpulses

static void initializeImpulses( const ImpulsesToCache cache_mode, const unsigned ambient_dims, const std::vector<std::unique_ptr<Constraint>>& active_set, ConstrainedSystem& csys, VectorXs& alpha, VectorXs& beta )
{
  switch( cache_mode )
  {
    case ImpulsesToCache::NONE:
      alpha.setZero();
      beta.setZero();
      assert( csys.constraintCacheEmpty() );
      break;
    case ImpulsesToCache::NORMAL:
    {
      unsigned col_num{ 0 };
      for( const std::unique_ptr<Constraint>& constraint : active_set )
      {
        VectorXs cached_impulse{ 1 };
        csys.getCachedConstraintImpulse( *constraint, cached_impulse );
        alpha( col_num++ ) = cached_impulse( 0 );
      }
      assert( col_num == active_set.size() );
      beta.setZero();
      csys.clearConstraintCache();
      break;
    }
    case ImpulsesToCache::NORMAL_AND_FRICTION:
    {
      if( ambient_dims == 2 )
      {
        unsigned col_num{ 0 };
        for( const std::unique_ptr<Constraint>& constraint : active_set )
        {
          VectorXs cached_impulse{ 2 };
          csys.getCachedConstraintImpulse( *constraint, cached_impulse );
          alpha( col_num ) = cached_impulse( 0 );
          beta( col_num++ ) = cached_impulse( 1 );
        }
        assert( col_num == active_set.size() );
      }
      else
      {
        std::cerr << "Decaching in " << ambient_dims << " space not yet supported." << std::endl;
        std::exit( EXIT_FAILURE );
      }
      csys.clearConstraintCache();
      break;
    }
  }
}
开发者ID:caomw,项目名称:scisim,代码行数:47,代码来源:GeometricImpactFrictionMap.cpp

示例2: assert

void RigidBody2DSim::computeForce( const VectorXs& q, const VectorXs& v, const scalar& t, VectorXs& F )
{
  assert( q.size() % 3 == 0 ); assert( v.size() == q.size() ); assert( v.size() == F.size() );
  F.setZero();
  const std::vector<std::unique_ptr<RigidBody2DForce>>& forces{ m_state.forces() };
  for( const std::unique_ptr<RigidBody2DForce>& force : forces )
  {
    force->computeForce( q, v, m_state.M(), F );
  }
}
开发者ID:alecjacobson,项目名称:scisim,代码行数:10,代码来源:RigidBody2DSim.cpp


注:本文中的VectorXs::setZero方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。