/* * 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 processing.core.PApplet; import processing.data.XML; /** * * @author Jeremy Laviole <jeremy.laviole@inria.fr> */ public class ScreenConfiguration extends Calibration{ static final String SCREEN_XML_NAME = "Screen"; static final String SCREEN_WIDTH_XML_NAME = "Width"; static final String SCREEN_HEIGHT_XML_NAME = "Height"; static final String SCREEN_OFFSET_X_XML_NAME = "OffsetX"; static final String SCREEN_OFFSET_Y_XML_NAME = "OffsetY"; private int projectionScreenWidth = 0; private int projectionScreenHeight = 0; private int projectionScreenOffsetX = 0; private int projectionScreenOffsetY = 0; @Override public boolean isValid() { // todo check ID, name & type ? return true; } @Override public void addTo(XML xml) { xml.addChild(createScreenNode()); } @Override public void replaceIn(XML xml) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @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 screenNode = root.getChild(SCREEN_XML_NAME); loadScreenFrom(screenNode); } private void loadScreenFrom(XML screenNode) { this.projectionScreenWidth = screenNode.getInt(SCREEN_WIDTH_XML_NAME); this.projectionScreenHeight = screenNode.getInt(SCREEN_HEIGHT_XML_NAME); this.projectionScreenOffsetX = screenNode.getInt(SCREEN_OFFSET_X_XML_NAME); this.projectionScreenOffsetY = screenNode.getInt(SCREEN_OFFSET_Y_XML_NAME); } private XML createScreenNode() { XML screenNode = new XML(SCREEN_XML_NAME); screenNode.setInt(SCREEN_WIDTH_XML_NAME, projectionScreenWidth); screenNode.setInt(SCREEN_HEIGHT_XML_NAME, projectionScreenHeight); screenNode.setInt(SCREEN_OFFSET_X_XML_NAME, projectionScreenOffsetX); screenNode.setInt(SCREEN_OFFSET_Y_XML_NAME, projectionScreenOffsetY); return screenNode; } public int getProjectionScreenOffsetX() { return projectionScreenOffsetX; } public void setProjectionScreenOffsetX(int projectionScreenOffsetX) { this.projectionScreenOffsetX = projectionScreenOffsetX; } public int getProjectionScreenOffsetY() { return projectionScreenOffsetY; } public void setProjectionScreenOffsetY(int projectionScreenOffsetY) { this.projectionScreenOffsetY = projectionScreenOffsetY; } public int getProjectionScreenWidth() { return projectionScreenWidth; } public void setProjectionScreenWidth(int projectionScreenWidth) { this.projectionScreenWidth = projectionScreenWidth; } public int getProjectionScreenHeight() { return projectionScreenHeight; } public void setProjectionScreenHeight(int projectionScreenHeight) { this.projectionScreenHeight = projectionScreenHeight; } }