Code Search for Developers
 
 
  

DopeCamara.cpp from Project OGRE Lia Game (POGLI Game) at Krugle


Show DopeCamara.cpp syntax highlighted

#include "DopeCamara.h"
#include "DopeEscena.h"
#include "OgreLogManager.h"


namespace Dope {

    //-----------------------------------------------------------------------
    Camara::Camara(const String& name): Entidad(name) 
    {
        setUp(name);
        
    }
    //-----------------------------------------------------------------------
    void Camara::setUp(const String& name)
    {
        // Create visual presence
        SceneManager* sm = Escena::getSingleton().getSceneManager();
        mSceneNode = sm->getRootSceneNode()->createChildSceneNode(name);

        mCamera = sm->createCamera(name);

        mSceneNode->attachObject(mCamera);
        // Add reverse reference (to self!)
        mCamera->setUserObject(this);

        // No mass body (considered static)

        // Create collision proxy, at near dist
        // SpaceID is irrelevant, we're doing our own spacial partitioning
        dSphere* odeSphere = new dSphere(0, mCamera->getNearClipDistance());
        mCollisionProxies.push_back(odeSphere);
        updateCollisionProxies();


    }
    //-----------------------------------------------------------------------
    void Camara::_notifyCollided(SceneQuery::WorldFragment* wf, const CollisionInfo& info) 
    {
        this->translateWorldSpace(info.normal * info.penetrationDepth);

    }
    //-----------------------------------------------------------------------
    void Camara::setOrientation(const Quaternion& orientation)
    {
        // Set on camera
        mCamera->setOrientation(orientation);
    }
    //-----------------------------------------------------------------------
    const Quaternion& Camara::getOrientation(void)
    {
        return mCamera->getOrientation();
    }
    //-----------------------------------------------------------------------
    void Camara::roll(const Radian& angle) 
    {
        mCamera->roll(angle);
    }
    //-----------------------------------------------------------------------
    void Camara::pitch(const Radian& angle) 
    {
        mCamera->pitch(angle);
    }
    //-----------------------------------------------------------------------
    void Camara::yaw(const Radian& angle) 
    {
        mCamera->yaw(angle);
    }
    //-----------------------------------------------------------------------
    void Camara::rotate(const Vector3& axis, const Radian& angle) 
    {
        mCamera->rotate(axis, angle);
    }
    //-----------------------------------------------------------------------
    void Camara::rotate(const Quaternion& q)
    {
        mCamera->rotate(q);
    }
    //-----------------------------------------------------------------------
    void Camara::translate(const Vector3& d)
    {
        // Adjust position by rotation
        Vector3 newTrans = mCamera->getOrientation() * d;
        translateWorldSpace(newTrans);

    }
    //-----------------------------------------------------------------------
    void Camara::setProjectionType(ProjectionType pt) 
    {
        mCamera->setProjectionType(pt);
    }
    //-----------------------------------------------------------------------
    ProjectionType Camara::getProjectionType(void) const 
    {
        return mCamera->getProjectionType();
    }
    //-----------------------------------------------------------------------
    void Camara::setPolygonMode(PolygonMode sd) 
    {
        mCamera->setPolygonMode(sd);
    }
    //-----------------------------------------------------------------------
    PolygonMode Camara::getPolygonMode(void) const 
    {
        return mCamera->getPolygonMode();
    }
    //-----------------------------------------------------------------------
    void Camara::setDirection(Real x, Real y, Real z) 
    {
        mCamera->setDirection(x, y, z);

    }
    //-----------------------------------------------------------------------
    void Camara::setDirection(const Vector3& vec) 
    {
        mCamera->setDirection(vec);
    }
    //-----------------------------------------------------------------------
    Vector3 Camara::getDirection(void) const 
    {
        return mCamera->getDirection();
    }
    //-----------------------------------------------------------------------
    void Camara::lookAt( const Vector3& targetPoint ) 
    {
        mCamera->lookAt(targetPoint);
    }
    //-----------------------------------------------------------------------
    void Camara::lookAt(Real x, Real y, Real z) 
    {
        mCamera->lookAt(x, y, z);
    }
    //-----------------------------------------------------------------------
    void Camara::setFixedYawAxis( bool useFixed, const Vector3& fixedAxis) 
    {
        mCamera->setFixedYawAxis(useFixed, fixedAxis);
    }
    //-----------------------------------------------------------------------
    void Camara::setFOVy(const Radian& fovy)
    {
        mCamera->setFOVy(fovy);
        nearDistChanged();
    }
    //-----------------------------------------------------------------------
    const Radian& Camara::getFOVy(void) const
    {
        return mCamera->getFOVy();
    }
    //-----------------------------------------------------------------------
    void Camara::setNearClipDistance(Real nearDist) 
    {
        mCamera->setNearClipDistance(nearDist);
        nearDistChanged();
    }
    //-----------------------------------------------------------------------
    Real Camara::getNearClipDistance(void) const 
    {
        return mCamera->getNearClipDistance();
    }
    //-----------------------------------------------------------------------
    void Camara::setFarClipDistance(Real farDist) 
    {
        mCamera->setFarClipDistance(farDist);
    }
    //-----------------------------------------------------------------------
    Real Camara::getFarClipDistance(void) const 
    {
        return mCamera->getFarClipDistance();
    }
    //-----------------------------------------------------------------------
    void Camara::setAspectRatio(Real ratio) 
    {
        mCamera->setAspectRatio(ratio);
    }
    //-----------------------------------------------------------------------
    Real Camara::getAspectRatio(void) const 
    {
        return mCamera->getAspectRatio();
    }
    //-----------------------------------------------------------------------
    const Plane& Camara::getFrustumPlane( FrustumPlane plane ) 
    {
        return mCamera->getFrustumPlane(plane);
    }
    //-----------------------------------------------------------------------
    bool Camara::isVisible(const AxisAlignedBox& bound, FrustumPlane* culledBy) 
    {
        return mCamera->isVisible(bound, culledBy);
    }
    //-----------------------------------------------------------------------
    bool Camara::isVisible(const Sphere& bound, FrustumPlane* culledBy) 
    {
        return mCamera->isVisible(bound, culledBy);
    }
    //-----------------------------------------------------------------------
    bool Camara::isVisible(const Vector3& vert, FrustumPlane* culledBy) 
    {
        return mCamera->isVisible(vert, culledBy);
    }
    //-----------------------------------------------------------------------
    void Camara::nearDistChanged(void)
    {
        // Alter the size of the collision proxy to compensate
        CollisionProxyList::iterator i = mCollisionProxies.begin();
        dSphere* sph = static_cast<dSphere*>(*i);
        sph->setRadius(getNearClipDistance());
    }

}





See more files for this project here

Project OGRE Lia Game (POGLI Game)

Video juego desarrollado en OGRE, multiplataforma (a nivel de codigo fuente). Proyecto desarrollado como tesis para la facultad de ingenieria, UNAM, Mexico

Project homepage: http://sourceforge.net/projects/tesis-h4l9k-jp
Programming language(s): C++
License: other

  DOPE.vcproj
  DopeCamara.cpp
  DopeDemo.cpp
  DopeEntidad.cpp
  DopeEscena.cpp
  DopeJP.cpp
  DopeJoint.cpp
  DopeJointSubtypes.cpp
  DopePlano.cpp
  Dope_demo.cbp
  Makefile