Esempio n. 1
0
void Camera::input()
{
	float sensitivity = 0.5f;
	float movAmt = (float)(10 * Time::getDelta());
	float rotAmt = (float)(100 * Time::getDelta());

	if (Input::getKey(KEY::KEY_ESCAPE))
	{
		Input::setCursor(true);
		mouseLocked = false;
	}

	if (mouseLocked)
	{
		Vector2f centerPosition = Vector2f((float)Window::getWidth() / 2.0f, (float)Window::getHeight() / 2.0f);
		Vector2f deltaPos = Input::getMousePosition() - centerPosition;

		bool rotY = deltaPos.x != 0;
		bool rotX = deltaPos.y != 0;

		if (rotY)
			rotateY(deltaPos.x * sensitivity);
		if (rotX)
			rotateX(deltaPos.y * sensitivity);

		if (rotY || rotX)
			Input::setMousePosition(centerPosition);
	}

	if (Input::getMouseDown(MOUSE::LEFT_MOUSE))
	{
		Vector2f centerPosition = Vector2f((float)Window::getWidth() / 2.0f, (float)Window::getHeight() / 2.0f);
		Input::setMousePosition(centerPosition);
		Input::setCursor(false);
		mouseLocked = true;
	}

	if (Input::getKey(KEY::KEY_W))
		move(getForward(), movAmt);
	if (Input::getKey(KEY::KEY_S))
		move(getForward(), -movAmt);
	if (Input::getKey(KEY::KEY_A))
		move(getLeft(), movAmt);
	if (Input::getKey(KEY::KEY_D))
		move(getRight(), movAmt);


	//if(Input::getKey(KEY::KEY_UP))
	//	rotateX(-rotAmt);
	//if(Input::getKey(KEY::KEY_DOWN))
	//	rotateX(rotAmt);
	//if(Input::getKey(KEY::KEY_LEFT))
	//	rotateY(-rotAmt);
	//if(Input::getKey(KEY::KEY_RIGHT))
	//	rotateY(rotAmt);
}
Esempio n. 2
0
 vector<double> ForwardRateSource::getForwardFworwardMultiplicative(Date fromDate, vector<Date> toDates) const
 {
     vector<double> rates = getForward(toDates);
     double fromRate = getForward(fromDate);
     for (size_t i = 0; i < toDates.size(); ++i) 
     {
         rates[i] /= fromRate;
     }
     return rates;
 }
 boost::shared_ptr<ForwardRateSource> ForwardCurveCMADeterministic::rollForward(Date toDate)
 {
     vector<Date> originalDates = curve->getObservationDates();
     vector<Date> rolledObservationDates;
     vector<double> rolledFwds;
     if (!isInRange(toDate))
     {
         rolledObservationDates.push_back(toDate);
         rolledFwds.push_back(1.0);
     }
     else 
     {
         for (size_t i = 0; i < originalDates.size(); ++i) 
         {
             if (originalDates[i] >= toDate)
             {
                 rolledObservationDates.push_back(originalDates[i]);
                 rolledFwds.push_back(getForward(originalDates[i]));
             }
         }
     }
     return boost::shared_ptr<ForwardCurveCMADeterministic>(
                                 new ForwardCurveCMADeterministic(toDate, 
                                                                rolledObservationDates, 
                                                                rolledFwds,
                                                                LINEAR,
                                                                true));        
 } 
Esempio n. 4
0
void CameraUtility::moveForward(float distance) {
	Vector3f position = getPosition();
	Vector3f forward = getForward();
	Vector3f change = forward * distance;
	position += change;
	setPosition(position);
}
Esempio n. 5
0
Vehicle* Balaenidae::spawn(dWorldID  world,dSpaceID space,int type, int number)
{
    Vehicle *v;

    if (type == MANTA)
    {
        SimplifiedDynamicManta *_manta1 = new SimplifiedDynamicManta(getFaction());
        _manta1->init();
        _manta1->setNumber(number);
        _manta1->embody(world, space);
        _manta1->setPos(pos[0],pos[1]+28, pos[2]);
        _manta1->setStatus(Manta::ON_DECK);
        _manta1->inert = true;
        alignToMe(_manta1->getBodyID());
        v = (Vehicle*)_manta1;
    } else if (type == WALRUS)
    {
        Walrus *_walrus = new Walrus(getFaction());
        _walrus->init();
        _walrus->setNumber(number);
        _walrus->embody(world,space);
        Vec3f p;
        p = p.normalize();
        p = getForward()*450;
        _walrus->setPos(pos[0]-p[0],pos[1]-p[1],pos[2]-p[2]);
        _walrus->setStatus(Walrus::SAILING);
        _walrus->stop();

        alignToMe(_walrus->getBodyID());
        v = (Vehicle*)_walrus;
    }

    return v;
}
Esempio n. 6
0
void kore::Camera::moveForward(float fSpeed) {
  if (!_sceneNode) {
    return;
  }

  _sceneNode->translate(-getForward() * fSpeed, SPACE_WORLD);
}
Esempio n. 7
0
    boost::shared_ptr<ForwardRateSource> ForwardCurveStochasticFX::rollForward(Date toDate, double normalRV)
    {

        double rolledSpot = getForward(toDate);
        double sd = vrs->getStandardDeviation(toDate);
        rolledSpot *= exp(-sd * sd / 2 + sd * normalRV);

        vector<Date> rolledDRSDates = getRolledDatesAheadOf(toDate);;

        vector<double> domesticDF = vector<double>(rolledDRSDates.size());
        vector<double> foreignDF = vector<double>(rolledDRSDates.size());
        double domesticScalingFactor = domesticDRS->getDiscountFactor(toDate);
        double foreignScalingFactor = foreignDRS->getDiscountFactor(toDate);

        for (size_t i = 0; i < rolledDRSDates.size(); ++i)
        {
            domesticDF[i] = domesticDRS->getDiscountFactor(rolledDRSDates[i]) / domesticScalingFactor;
            foreignDF[i] = foreignDRS->getDiscountFactor(rolledDRSDates[i]) / foreignScalingFactor;
        }
        boost::shared_ptr<DiscountRateSource> rolledDomesticDRS = boost::shared_ptr<DiscountRateSource>(
            new DiscountCurve(toDate, rolledDRSDates, domesticDF, LINEAR, allowExtrapolation));
            
        boost::shared_ptr<DiscountRateSource> rolledForeighDRS = boost::shared_ptr<DiscountRateSource>(
            new DiscountCurve(toDate, rolledDRSDates, foreignDF, LINEAR, allowExtrapolation));
            
        return boost::shared_ptr<ForwardRateSource>(new ForwardCurveFX(toDate, 
                                                                       rolledSpot, 
                                                                       rolledDomesticDRS,
                                                                       rolledForeighDRS));   
    }
Esempio n. 8
0
void Ship :: update (WorldInterface& r_world)
{
    if (isUnitAiSet())
    {
        if (!desired_velocity.isZero())
        {
            double theta = max_rotation_rate * TimeSystem::getFrameDuration();
            if(theta > 0.0)
            {
                rotateTowards(desired_velocity.getNormalized(), theta);
            }
            
            double delta = max_acceleration * TimeSystem::getFrameDuration();
            if(delta > 0.0)
            {
                double currentSpeed = getSpeed();
                double desiredSpeed = desired_velocity.getNorm();
                
                if (currentSpeed < desiredSpeed)
                {
                    currentSpeed += delta;
                    if (currentSpeed > desiredSpeed) currentSpeed = desiredSpeed;
                    setSpeed(currentSpeed);
                }
                else if (currentSpeed > desiredSpeed)
                {
                    currentSpeed -= delta;
                    if (currentSpeed < desiredSpeed) currentSpeed = desiredSpeed;
                    setSpeed(currentSpeed);
                }
            }
        }
        
        if (wantsToFire && isReloaded())
        {
            r_world.addBullet(getPosition(), getForward(), getId());
            wantsToFire = false;
            markReloading();
        }
    }
    
	if(isAlive() && isDying())
	{
		r_world.addExplosion(getPositionPrevious(), getRadius() * EXPLOSION_SIZE_FACTOR, 0);
		m_is_dead = true;

		// no further updates
		assert(invariant());
		return;
	}

	if(isAlive())
	{
		updateBasic();  // moves the Ship

		m_reload_timer += TimeSystem::getFrameDuration();
	}

	assert(invariant());
}
void 
OpenSteer::SimpleVehicle::measurePathCurvature (const float elapsedTime)
{
    if (elapsedTime > 0)
    {
        const Vector3 dP = _lastPosition - getPosition();
        const Vector3 dF = (_lastForward - getForward()) / dP.length();
        const Vector3 lateral = Vec3Utils::perpendicularComponent(dF, getForward());
        const float sign = (lateral.dotProduct(getSide()) < 0) ? 1.0f : -1.0f;
        _curvature = lateral.length() * sign;
        blendIntoAccumulator (elapsedTime * 4.0f,
                              _curvature,
                              _smoothedCurvature);
        _lastForward = getForward();
        _lastPosition = getPosition();
    }
}
Esempio n. 10
0
    vector<boost::shared_ptr<ForwardRateSource> > ForwardRateSourceStochastic::rollForward(vector<Date> rateSetDates,
                                                                                           vector<double> &rateSetsFromAnchorToFinalRollDate)
    {
        vector<boost::shared_ptr<ForwardRateSource> > frss = rollForward();
        rateSetsFromAnchorToFinalRollDate = vector<double>(rateSetDates.size(), 0);
        Date startDate = anchorDate;
        Date endDate = forwardSimulationDates[0];
        vector<Date>::iterator startIt, endIt;

        endIt = upper_bound(rateSetDates.begin(), rateSetDates.end(), endDate);
        vector<Date> rateSetSubset = vector<Date>(rateSetDates.begin(), endIt);
        double expectedFwd = getForward(endDate);
        double simulatedFwd = frss[0]->getForward(endDate);
        double ratio = (simulatedFwd - expectedFwd) / expectedFwd;
        double denominator = (double) (endDate - startDate);
        size_t index = 0;
        for (size_t j = 0; j < rateSetSubset.size(); ++j)
        {
            double adjustedFwd = getForward(rateSetSubset[j]) * (1 + ratio * ((double) (rateSetSubset[j] - startDate)) / denominator);
            rateSetsFromAnchorToFinalRollDate[index] = (adjustedFwd);
            ++index;
        }

        for (size_t i = 1; i < forwardSimulationDates.size(); ++i)
        {
            startDate = endDate;
            endDate = forwardSimulationDates[i];
            startIt = endIt;
            endIt = upper_bound(rateSetDates.begin(), rateSetDates.end(), endDate);
            rateSetSubset = vector<Date>(startIt, endIt);
            
            expectedFwd = frss[i-1]->getForward(endDate);
            simulatedFwd = frss[i]->getForward(endDate);
            ratio = (simulatedFwd - expectedFwd) / expectedFwd;
            denominator = (double) (endDate - startDate);
            for (size_t j = 0; j < rateSetSubset.size(); ++j)
            {
                double adjustedFwd = frss[i-1]->getForward(rateSetSubset[j]);
                adjustedFwd *= (1 + ratio * ((double) (rateSetSubset[j] - startDate)) / denominator);
                rateSetsFromAnchorToFinalRollDate[index] = (adjustedFwd);
                ++index;
            }
        }        
        return frss;
    }
Esempio n. 11
0
//!Set the Forward score for the given cell
//!\param seqPos Sequence position
//!\param currState State index
//!\param value Forward score
void simpleTrellis::setForward(size_t seqPos, size_t currState,double& value) {
    if (getForward()==-INFINITY) {
        trell[seqPos][currState].forw=value;
    }
    else {
        trell[seqPos][currState].forw=addLog(trell[seqPos][currState].forw, value);
    }
    return;
}
Esempio n. 12
0
 vector<double> ForwardRateSource::getForward(vector<Date> toDates) const
 {
     vector<double> rates;
     for (size_t i = 0; i < toDates.size(); ++i) 
     {
         rates.push_back(getForward(toDates[i]));
     }
     return rates;
 }
Esempio n. 13
0
void CameraUtility::rotateWorldYInPlace(Single angleDegrees) {
	Matrix3x3f rotation;
	rotation.setToRotationY(angleDegrees);
	Vector3f up = rotation * getUp();
	Vector3f forward = rotation * getForward();

	ms_gameControllerInstance->m_vmdApp->display->set_eye_dir(&forward[0]);
	ms_gameControllerInstance->m_vmdApp->display->set_eye_up(&up[0]);
}
Esempio n. 14
0
    boost::shared_ptr<ForwardRateSource> ForwardRateSourceStochastic::rollForward(Date toDate, 
                                                                                  double normalRV,
                                                                                  vector<Date> rateSetDates,
                                                                                  vector<double> &rateSetsFromAnchorToDate)
    {
        boost::shared_ptr<ForwardRateSource> rolledRate = rollForward(toDate, normalRV);

        double expectedFwd = getForward(toDate);
        double simulatedFwd = rolledRate->getForward(toDate);
        double ratio = (simulatedFwd - expectedFwd) / expectedFwd;
        rateSetsFromAnchorToDate.clear();
        double denominator = (double) (toDate - anchorDate);
        for (size_t i = 0; i < rateSetDates.size(); ++i)
        {
            double adjustedFwd = getForward(rateSetDates[i]) * (1 + ratio * ((double) (rateSetDates[i] - anchorDate)) / denominator);
            rateSetsFromAnchorToDate.push_back(adjustedFwd);
        }
        return rolledRate;
    }
Esempio n. 15
0
void CameraUtility::yaw(float angleDegrees) {
	Vector3f up = getUp();
	Vector3f forward = getForward();

	Matrix4 currentTransform;
	currentTransform.rotate_axis(&up[0], angleDegrees);
	currentTransform.multpoint3d(&forward[0], &forward[0]);

	ms_displayDevice->set_eye_dir(&forward[0]);
}
Esempio n. 16
0
//!Set the Forward score for the given cell
//!\param val Forward score
void simpleTrellis::setForward(double& value) {

    if (getForward()==-INFINITY) {
        trell[sequencePosition][currentState].forw=value;
    }
    else {
        trell[sequencePosition][currentState].forw=addLog(trell[sequencePosition][currentState].forw, value);
    }

    return;
}
Esempio n. 17
0
CoordinateSystem Ship :: getCameraCoordinateSystem () const
{
	const Vector3& forward = getForward();
	const Vector3& up      = getUp();

	Vector3 camera_at = getPosition() +
	                    forward * CAMERA_FORWARD_DISTANCE +
	                    up      * CAMERA_UP_DISTANCE;

	return CoordinateSystem(camera_at, forward, up);
}
Esempio n. 18
0
void CameraUtility::rotateWorld(Single angleDegrees, const Vector3f& axis) {
	Matrix3x3f rotation;
	rotation.setFromAngleAxis(angleDegrees, axis);
	Vector3f up = rotation * getUp();
	Vector3f forward = rotation * getForward();
	Vector3f position = rotation * getPosition();

	ms_gameControllerInstance->m_vmdApp->display->set_eye_dir(&forward[0]);
	ms_gameControllerInstance->m_vmdApp->display->set_eye_up(&up[0]);
	ms_gameControllerInstance->m_vmdApp->display->set_eye_pos(&position[0]);
}
Esempio n. 19
0
 vector<boost::shared_ptr<ForwardRateSource> > ForwardCurveStochasticFX::rollForward()
 {
     vector<boost::shared_ptr<ForwardRateSource> > returnFrss = vector<boost::shared_ptr<ForwardRateSource> >(frss.size());
     for (size_t i = 0; i < forwardSimulationDates.size(); ++i) 
     {
         double bumpedSpot = getForward(forwardSimulationDates[i]);
         bumpedSpot *= exp(-standardDeviations[i] * standardDeviations[i] / 2 + standardDeviations[i] * normalRVs[i]);
         frss[i]->setSpotAtT0(bumpedSpot);
         returnFrss[i] = frss[i];
     }
     return returnFrss;
 }
void SteeringVehicle::resetLocalSpace()
{
	setForward(mForwardVector);
	setSide(localRotateForwardToSide(getForward()));
    setUp(Vector3::UNIT_Y);
	Vector3 pos = mCreature->getPosition();
	setPosition(pos);
	Vector3 src = mCreature->getOrientation()*Vector3::NEGATIVE_UNIT_Z;

    // regenerate local space(by default: align vehicle's forward axis with
    // new velocity, but this behavior may be overridden by derived classes.)
	regenerateOrthonormalBasisUF(src);
}
void FirstPersonCamera::update(double elapsedTime)
{
	glm::vec2 movementAmount = glm::vec2(0.0f);
	bool changedPosition = false;
    
	if (mInput.isKeyDown(GLFW_KEY_W)) {
        movementAmount.y = 1.0f;
		changedPosition = true;
    }

    if (mInput.isKeyDown(GLFW_KEY_S)) {
        movementAmount.y = -1.0f;
		changedPosition = true;
    }

    if (mInput.isKeyDown(GLFW_KEY_A)) {
        movementAmount.x = 1.0f;
		changedPosition = true;
    }

	if (mInput.isKeyDown(GLFW_KEY_D)) {
        movementAmount.x = -1.0f;
		changedPosition = true;
    }

	const float fElapsedTime = static_cast<float>(elapsedTime);
	bool changedOrientation = false;
	glm::vec2 mouseDelta(0.0f);

	//if (mInput.isMouseButtonDown(GLFW_MOUSE_BUTTON_LEFT)) {
		const glm::vec2 mousePos = mInput.getMousePosition();
		mouseDelta = mousePos - mPrevMousePos;
		mPrevMousePos = mousePos;
		changedOrientation = (mouseDelta != glm::vec2(0.0f));
	//}

	if (changedOrientation) {
		const float pitch = mouseDelta.y * mMouseSensitivity * mRotationRate * fElapsedTime;
		const float yaw = -mouseDelta.x * mMouseSensitivity * mRotationRate * fElapsedTime;
		offsetOrientation(pitch, yaw);
	}

	if (changedPosition) {
		glm::vec2 movement = movementAmount * mMovementRate * fElapsedTime;
		glm::vec3 strafe = getRight() * movement.x;
		glm::vec3 forward = getForward() * movement.y;
		setPosition(getPosition() + strafe + forward);
	}

	Camera::update(elapsedTime);
}
Esempio n. 22
0
void Camera::update(float delta)
{
	//acceleration = glm::vec3(0.f, 0.f, 0.f);

	if (inputManager->forwardKeyPressed && !inputManager->backKeyPressed)
		position += getForward() * MOVEMENT_SPEED * delta * (inputManager->crouchKeyPressed ? CROUCH_SPEED_FACTOR : 1.f);
	else if (inputManager->backKeyPressed && !inputManager->forwardKeyPressed)
		position -= getForward() * MOVEMENT_SPEED * delta * (inputManager->crouchKeyPressed ? CROUCH_SPEED_FACTOR : 1.f);

	if (inputManager->leftKeyPressed && !inputManager->rightKeyPressed)
		position += getRight() * MOVEMENT_SPEED * delta * (inputManager->crouchKeyPressed ? CROUCH_SPEED_FACTOR : 1.f);
	else if (inputManager->rightKeyPressed && !inputManager->leftKeyPressed)
		position -= getRight() * MOVEMENT_SPEED * delta * (inputManager->crouchKeyPressed ? CROUCH_SPEED_FACTOR : 1.f);

	if (inputManager->upKeyPressed && !inputManager->downKeyPressed)
		position += getUp() * MOVEMENT_SPEED * delta * (inputManager->crouchKeyPressed ? CROUCH_SPEED_FACTOR : 1.f);
	else if (inputManager->downKeyPressed && !inputManager->upKeyPressed)
		position -= getUp() * MOVEMENT_SPEED * delta * (inputManager->crouchKeyPressed ? CROUCH_SPEED_FACTOR : 1.f);

	updateTransform(delta);

	viewMatrix = glm::lookAt(position, position + getForward(), getUp());
}
Esempio n. 23
0
void MainCamera::lookToTarget() {
  Vec3f z = getForward() / getForward().length();

  Vec3f b = up_.cross(z);
  Vec3f x = b / b.length();

  Vec3f y = z.cross(x);

  Eigen::Matrix4f R;
  R << x.x,   x.y,  x.z, 0.0f,
       y.x,   y.y,  y.z, 0.0f,
       z.x,   z.y,  z.z, 0.0f,
       0.0f, 0.0f, 0.0f, 1.0f;

  Eigen::Matrix4f T;
  T << 1.0f, 0.0f, 0.0f, -pos_.x,
       0.0f, 1.0f, 0.0f, -pos_.y,
       0.0f, 0.0f, 1.0f, -pos_.z,
       0.0f, 0.0f, 0.0f,    1.0f;

  Eigen::Matrix4f m = R * T;
  glMultMatrixf(m.data());
}
Esempio n. 24
0
void Camera::setLookAt() {
   if (cameraType == _PATH_CAMERA) {
      m_eye = m_pathPos;
      m_ref = m_pathRef;
      m_up = m_pathUp;
      m_player->setVisible(true);
   }

   if (cameraType == _MOTION_CAMERA) {
      //DOESNT'T WORK PERFECTLY NOW BECAUSE OF CHANGES TO CAMERA/PLAYER
      m_eye = (m_player->getPosition() - 
	       (getForward() * CAMERA_DIST_FROM_PLAYER) + m_pathPos) / 2;
      //Pulls camera back for acceleration purposes
      //May want to make it be exponentially pulled back with time
      m_eye = m_eye - (getForward() * (.025 * m_boostTime));
      m_ref = m_pathRef;
      m_up = m_pathUp;
      m_player->setVisible(true);
   }
   
   if (cameraType == _SHIP_CAMERA) {
      m_eye = (m_player->getPosition()
- (m_player->getAimForward() * CAMERA_DIST_FROM_PLAYER)
+ (m_player->getAimUp() * SHIP_CAMERA_ABOVE_SCALAR));
      m_ref = m_player->getAimForward() + m_player->getPosition();
      m_up = m_player->getAimUp();
      m_player->setVisible(true);
   }

   if (cameraType == _FPS_CAMERA) {
      m_eye = m_player->getPosition();
      m_ref = m_player->getAimForward() + m_player->getPosition();
      m_up = m_player->getAimUp();
      m_player->setVisible(false);
   }
}
Esempio n. 25
0
void kore::Camera::rotateViewQuat(const float angle, const glm::vec3 v3Axis) {
    glm::vec3 v3View = getForward();
    glm::vec3 v3Up(0.0f, 1.0f, 0.0f);
    glm::quat quatView(0, v3View);
    glm::quat quatViewResult = glm::rotate(quatView, angle, v3Axis);
    v3View.x = quatViewResult.x;
    v3View.y = quatViewResult.y;
    v3View.z = quatViewResult.z;
    v3View    = glm::normalize(v3View);
    glm::vec3 v3Side = glm::cross(v3Up, v3View);
    v3Side = glm::normalize(v3Side);
    v3Up = glm::cross(v3View, v3Side);
    v3Up = glm::normalize(v3Up);
    setOrientation(v3Side, v3Up, v3View);
}
Esempio n. 26
0
void Balaenidae::getViewPort(Vec3f &Up, Vec3f &position, Vec3f &forward)
{
    position = getPos();
    forward = getForward();
    Up = toVectorInFixedSystem(0.0f, 1.0f, 0.0f,0,0);

    Vec3f orig;


    forward = forward.normalize();
    orig = position;
    Up[0]=Up[2]=0;Up[1]=100;// poner en 4 si queres que este un toque arriba desde atras.
    position = position - 400*forward + Up;
    forward = orig-position;
}
Esempio n. 27
0
 boost::shared_ptr<ForwardRateSource> ForwardCurveCMADeterministic::parallelBump(double spread)
 {
     vector<Date> originalDates = getObservationDates();
     vector<double> rolledFwds;
     for (size_t i = 0; i < originalDates.size(); ++i) 
     {
         rolledFwds.push_back(getForward(originalDates[i]) + spread);
     }
     return boost::shared_ptr<ForwardCurveCMADeterministic>(
                                 new ForwardCurveCMADeterministic(anchorDate, 
                                                                originalDates, 
                                                                rolledFwds,
                                                                LINEAR,
                                                                true));        
 }
Esempio n. 28
0
bool GLWorld::stepForward()
{
    //Play bump animation if stepForward() fails
    if(!World::stepForward())
    {
        SignedCoords wall = getForward();
        bump_dir_x = wall.first;
        bump_dir_z = wall.second;
        setAnimation(ANIM_BUMP);
        return false;
    }

    setAnimation(ANIM_STEP);
    updateAnimationTarget();

    emit changed();

    return true;
}
Esempio n. 29
0
 vector<double> ForwardRateSourceStochastic::getImpliedRandomNumbers(vector<double> spot)
 {
     vector<double> expectedForwards = vector<double>(forwardSimulationDates.size());
     vector<double> sds = vector<double>(forwardSimulationDates.size());
     vector<double> rns = vector<double>(forwardSimulationDates.size());
     size_t startIndex = 0;
     if (forwardSimulationDates.front() == anchorDate)
     {
         rns[0] = 0;
         ++startIndex;
     }
     for (size_t i = startIndex; i < forwardSimulationDates.size(); ++i)
     {
         expectedForwards[i] = getForward(forwardSimulationDates[i]);
         sds[i] = vrs->getStandardDeviation(forwardSimulationDates[i]);
         rns[i] = log(spot[i] / expectedForwards[i]) / sds[i] + sds[i] / 2.0;
     }
     return rns;
 }
Esempio n. 30
0
void kore::Camera::setPosition(const glm::vec3& v3Pos) {
    // Directly set the position to the inverse view-matirx
    m_matViewInverse[ 3 ] = glm::vec4(v3Pos, 1.0f);

    // Now calculate the inverse translation for the
    // view-matrix as a linear combination of the rotational basis-vectors
    glm::vec3 v3Side = getSide();
    glm::vec3 v3Up = getUp();
    glm::vec3 v3Forward = getForward();

    glm::vec3 v3ViewSide = glm::vec3(v3Side.x, v3Up.x, v3Forward.x);
    glm::vec3 v3ViewUp = glm::vec3(v3Side.y, v3Up.y, v3Forward.y);
    glm::vec3 v3ViewForward = glm::vec3(v3Side.z, v3Up.z, v3Forward.z);

    m_matView[ 3 ] = glm::vec4(v3ViewSide * -v3Pos.x +
                                v3ViewUp * -v3Pos.y +
                                v3ViewForward * -v3Pos.z, 1.0f);

    paramsChanged();
}