Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static Ogre::Matrix3 convertToMatrix3(CvMat* m) {
- Ogre::Matrix3 ret(
- cvGetReal2D(m, 0, 0)
- , cvGetReal2D(m, 0, 1)
- , cvGetReal2D(m, 0, 2)
- , cvGetReal2D(m, 1, 0)
- , cvGetReal2D(m, 1, 1)
- , cvGetReal2D(m, 1, 2)
- , cvGetReal2D(m, 2, 0)
- , cvGetReal2D(m, 2, 1)
- , cvGetReal2D(m, 2, 2));
- return ret;
- }
- void Scene::setupARCamera() {
- CvMat* intrinsicsCv = (CvMat*) cvLoad(INTRINSIC_XML);
- const Ogre::Matrix3& intrinsics = convertToMatrix3(intrinsicsCv);
- log("3x3: " + Ogre::StringConverter::toString(intrinsics));
- /* TODO: load from xml */
- const float w = 960.0;
- const float h = 540.0;
- Camera* camera = FrameWork::instance()->camera();
- Matrix4 projection = camera->getProjectionMatrix();
- projection[0][0] = intrinsics[0][0] / w;
- projection[1][1] = intrinsics[1][1] / h;
- projection[2][2] = -0.100;
- projection[3][2] = -1.000;
- projection[3][3] = 0.000;
- log("ogre prj matrix: " + Ogre::StringConverter::toString(projection));
- camera->setCustomProjectionMatrix(true, projection);
- log("4x4: " + Ogre::StringConverter::toString(projection));
- log("Camera position: " + Ogre::StringConverter::toString(camera->getPosition()));
- log("Camera direction: " + Ogre::StringConverter::toString(camera->getOrientation()));
- log("Camera far clip distance: " + Ogre::StringConverter::toString(camera->getFarClipDistance()));
- log("Camera near clip distance: " + Ogre::StringConverter::toString(camera->getNearClipDistance()));
- log("Camera focal length: " + Ogre::StringConverter::toString(camera->getFocalLength()));
- log("Camera FOVy: " + Ogre::StringConverter::toString(camera->getFOVy()));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement