void LinkEvaluatorCameraId::eval(Property* src, Property* dst) throw (VoreenException) { CameraProperty* dstCast = static_cast<CameraProperty*>(dst); CameraProperty* srcCast = static_cast<CameraProperty*>(src); tgt::Camera cam = dstCast->get(); tgt::Camera srcCam = srcCast->get(); cam.setPosition(srcCam.getPosition()); cam.setFocus(srcCam.getFocus()); cam.setUpVector(srcCam.getUpVector()); cam.setFrustum(srcCam.getFrustum()); cam.setProjectionMode(srcCam.getProjectionMode()); cam.setStereoEyeMode(srcCam.getStereoEyeMode(), false); cam.setStereoEyeSeparation(srcCam.getStereoEyeSeparation(), false); cam.setStereoAxisMode(srcCam.getStereoAxisMode(), false); cam.enableOffset(srcCam.isOffsetEnabled()); cam.setOffset(srcCam.getOffset()); dstCast->setMinValue(srcCast->getMinValue()); dstCast->setMaxValue(srcCast->getMaxValue()); dstCast->setAdaptOnChange(srcCast->getAdaptOnChange()); dstCast->setTrackballCenterBehaviour(srcCast->getTrackballCenterBehaviour()); dstCast->getTrackball().setCenter(srcCast->getTrackball().getCenter()); dstCast->setSceneBounds(srcCast->getSceneBounds()); // order is important: only now set cam and cause further link execution dstCast->set(cam); }
void LinkEvaluatorCameraId::eval(Property* src, Property* dst) throw (VoreenException) { CameraProperty* dstCast = static_cast<CameraProperty*>(dst); CameraProperty* srcCast = static_cast<CameraProperty*>(src); tgt::Camera cam = dstCast->get(); tgt::Camera srcCam = srcCast->get(); cam.setPosition(srcCam.getPosition()); cam.setFocus(srcCam.getFocus()); cam.setUpVector(srcCam.getUpVector()); cam.setFrustum(srcCam.getFrustum()); cam.setProjectionMode(srcCam.getProjectionMode()); cam.setStereoEyeMode(srcCam.getStereoEyeMode(), false); cam.setStereoEyeSeparation(srcCam.getStereoEyeSeparation(), false); cam.setStereoAxisMode(srcCam.getStereoAxisMode()); dstCast->set(cam); dstCast->getTrackball()->setMoveCenter(srcCast->getTrackball()->getMoveCenter()); dstCast->getTrackball()->setCenter(srcCast->getTrackball()->getCenter()); dstCast->setMaxValue(srcCast->getMaxValue()); }