Mercurial > hg > Members > e075743
view src/PlayerEyePoint.cpp @ 10:5727d511a13a
add src in Martial Project Xcode.
author | tokumoritaichirou@nw0743.st.ie.u-ryukyu.ac.jp |
---|---|
date | Wed, 03 Feb 2010 03:39:04 +0900 |
parents | |
children |
line wrap: on
line source
/* * PlayerEyePoint.cpp * Martial * * Created by ryoma on 10/01/28. * Copyright 2010 琉球大学. All rights reserved. * */ #include "PlayerEyePoint.h" PlayerEyePoint::PlayerEyePoint(MovableObject *owner): EyePoint(owner->getName()), owner(owner){ position = osg::Vec3(-10,0,2); direction = osg::Vec3(0, 0, 0); target = NULL; relativeRotate = true; } void PlayerEyePoint::setRelativeRotate(bool rr) { relativeRotate = rr; } void PlayerEyePoint::setTarget(MovableObject* _target) { target = _target; } void PlayerEyePoint::setOwner(MovableObject* _owner) { owner = _owner; } void PlayerEyePoint::frame() { osg::Matrixd myCameraMatrix; osg::Matrixd rotation; osg::Matrixd cameraTrans; osg::Matrixd ownerTrans; cameraTrans.makeTranslate(position); ownerTrans.makeTranslate(owner->getPos()); /* if relativeRotate is false, relativeRoate * target->getDir().z() always equals 0 */ rotation.makeRotate(relativeRotate*owner->getDir().z()+direction.z(), osg::Vec3(0,0,1)); myCameraMatrix = cameraTrans * rotation * ownerTrans; myCameraMatrix.makeLookAt(myCameraMatrix.getTrans(), owner->getPos(), osg::Vec3(0,0,1) * rotation); Tman->setByInverseMatrix(myCameraMatrix); }