/* * Copyright Inria and Bordeaux University. * Author Jeremy Laviole. jeremy.laviole@inria.fr * PapAR project is the open-source version of the * PapARt project. License is LGPLv3, distributed with the sources. * This project can also distributed with standard commercial * licence for closed-sources projects. */ package fr.inria.papart.calibration; import fr.inria.papart.procam.camera.Camera; import fr.inria.papart.procam.camera.CameraFactory; import processing.core.PApplet; import processing.data.XML; /** * * @author Jeremy Laviole <jeremy.laviole@inria.fr> */ public class CameraConfiguration extends Calibration { static final String CAMERA_XML_NAME = "Camera"; static final String CAMERA_ID_XML_NAME = "CameraID"; static final String CAMERA_NAME_XML_NAME = "CameraName"; static final String CAMERA_TYPE_XML_NAME = "CameraType"; private String cameraName = ""; private Camera.Type cameraType = Camera.Type.OPENCV; @Override public boolean isValid() { // todo check ID, name & type ? return true; } @Override public void addTo(XML xml) { xml.addChild(createCameraNode()); } @Override public void replaceIn(XML xml) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } public Camera createCamera(){ return CameraFactory.createCamera(cameraType, cameraName); } @Override public void loadFrom(PApplet parent, String fileName) { // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. XML root = parent.loadXML(fileName); XML cameraNode = root.getChild(CAMERA_XML_NAME); loadCameraFrom(cameraNode); } private void loadCameraFrom(XML cameraNode) { this.cameraName = cameraNode.getString(CAMERA_NAME_XML_NAME); this.cameraType = Camera.Type.valueOf(cameraNode.getString(CAMERA_TYPE_XML_NAME)); } private XML createCameraNode() { XML cameraNode = new XML(CAMERA_XML_NAME); cameraNode.setString(CAMERA_NAME_XML_NAME, cameraName); String type = this.cameraType.name(); cameraNode.setString(CAMERA_TYPE_XML_NAME, type); return cameraNode; } public String getCameraName() { return cameraName; } public void setCameraName(String cameraName) { this.cameraName = cameraName; } public Camera.Type getCameraType() { return cameraType; } public void setCameraType(Camera.Type cameraType) { this.cameraType = cameraType; } }