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


C++ Constant::calcValue方法代码示例

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


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

示例1: init

/**
 * Initialize the spline with X and Y values.
 *
 * @param aN the number of X and Y values
 * @param aXValues the X values
 * @param aYValues the Y values
 */
void SimmSpline::init(Function* aFunction)
{
    if (aFunction == NULL)
        return;

    SimmSpline* ncs = dynamic_cast<SimmSpline*>(aFunction);
    if (ncs != NULL) {
        setEqual(*ncs);
    } else {
        XYFunctionInterface xyFunc(aFunction);
        if (xyFunc.getNumberOfPoints() == 0) {
            // A SimmSpline must have at least 2 data points.
            // If aFunction is a Constant, use its Y value for both data points.
            // If it is not, make up two data points.
            double x[2] = {0.0, 1.0}, y[2];
            Constant* cons = dynamic_cast<Constant*>(aFunction);
            if (cons != NULL) {
                y[0] = y[1] = cons->calcValue(SimTK::Vector(0));
            } else {
                y[0] = y[1] = 1.0;
            }
            *this = SimmSpline(2, x, y);
        } else if (xyFunc.getNumberOfPoints() == 1) {
            double x[2], y[2];
            x[0] = xyFunc.getXValues()[0];
            x[1] = x[0] + 1.0;
            y[0] = y[1] = xyFunc.getYValues()[0];
            *this = SimmSpline(2, x, y);
        } else {
            *this = SimmSpline(xyFunc.getNumberOfPoints(),
                xyFunc.getXValues(), xyFunc.getYValues());
        }
    }
}
开发者ID:cpizzolato,项目名称:opensim-core,代码行数:41,代码来源:SimmSpline.cpp

示例2: init

/**
 * Initialize the function with X and Y values.
 *
 * @param aN the number of X and Y values
 * @param aXValues the X values
 * @param aYValues the Y values
 */
void PiecewiseConstantFunction::init(Function* aFunction)
{
       if (aFunction == NULL)
             return;

       PiecewiseConstantFunction* sf = dynamic_cast<PiecewiseConstantFunction*>(aFunction);
       if (sf != NULL) {
             setEqual(*sf);
       } else {
             XYFunctionInterface xyFunc(aFunction);
             if (xyFunc.getNumberOfPoints() == 0) {
                  // A PiecewiseConstantFunction must have at least 2 data points.
                  // If aFunction is a Constant, use its Y value for both data points.
                  // If it is not, make up two data points.
                  double x[2] = {0.0, 1.0}, y[2];
                  Constant* cons = dynamic_cast<Constant*>(aFunction);
                  if (cons != NULL) {
                      y[0] = y[1] = cons->calcValue(SimTK::Vector(1, 0.));
                  } else {
                      y[0] = y[1] = 1.0;
                  }
                  *this = PiecewiseConstantFunction(2, x, y);
             } else if (xyFunc.getNumberOfPoints() == 1) {
                  double x[2], y[2];
                  x[0] = xyFunc.getXValues()[0];
                  x[1] = x[0] + 1.0;
                  y[0] = y[1] = xyFunc.getYValues()[0];
                  *this = PiecewiseConstantFunction(2, x, y);
             } else {
                  *this = PiecewiseConstantFunction(xyFunc.getNumberOfPoints(),
                      xyFunc.getXValues(), xyFunc.getYValues());
             }
       }
}
开发者ID:ANKELA,项目名称:opensim-core,代码行数:41,代码来源:PiecewiseConstantFunction.cpp


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