// Path: core/src/com/github/fauu/helix/component/DimensionsComponent.java
// public class DimensionsComponent extends Component {
//   
//   private IntVector2 dimensions;
//   
//   public DimensionsComponent() {
//     this.dimensions = new IntVector2();
//   }
//   
//   public DimensionsComponent(IntVector2 dimensions) {
//     this.dimensions = new IntVector2(dimensions);
//   }
//   
//   public IntVector2 get() {
//     return dimensions;
//   }
//   
//   public void set(IntVector2 dimensions) {
//     this.dimensions.set(dimensions);
//   }
// 
// }
// 
// Path: core/src/com/github/fauu/helix/graphics/HelixCamera.java
// public class HelixCamera extends PerspectiveCamera {
// 
//   private static final Vector3 INITIAL_POSITION;
// 
//   private static final float POSITION_Y_TO_Z_RATIO;
// 
//   private static final Vector3 DEFAULT_TARGET_DISPLACEMENT;
// 
//   private Vector3 targetPosition;
// 
//   private Vector3 targetPositionDelta;
// 
//   static {
//     INITIAL_POSITION = new Vector3(0, -13, 17);
//     POSITION_Y_TO_Z_RATIO = INITIAL_POSITION.y / INITIAL_POSITION.z;
//     DEFAULT_TARGET_DISPLACEMENT = new Vector3(.5f, .6f, 0);
//   }
// 
//   public HelixCamera(float fieldOfView,
//                      Vector3 targetPosition,
//                      float near,
//                      float far) {
//     super(fieldOfView, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
// 
//     this.targetPosition = new Vector3();
//     this.near = near;
//     this.far = far;
//     this.translate(0, -13, 17);
//     this.lookAt(0, 0, 0);
// 
//     targetPositionDelta = new Vector3();
// 
//     translateTargetPosition(targetPosition.add(DEFAULT_TARGET_DISPLACEMENT));
//   }
// 
//   public void translateTargetPosition(Vector3 translation) {
//     translateTargetPosition(translation.x, translation.y, translation.z);
//   }
// 
//   public void translateTargetPosition(float x, float y, float z) {
//     super.translate(x, y, z);
// 
//     targetPosition.add(x, y, z);
//     targetPositionDelta.set(x, y, z);
//   }
// 
//   public void updateTargetPosition(IntVector3 logicalPosition) {
//     Vector3 translation
//         = logicalPosition.cpy().toVector3()
//                          .add(DEFAULT_TARGET_DISPLACEMENT)
//                          .sub(targetPosition);
// 
//     translateTargetPosition(translation);
//   }
// 
//   public Vector3 getTargetPositionDelta() {
//     return targetPositionDelta;
//   }
// 
//   public void resetPositionDelta() {
//     targetPositionDelta.setZero();
//   }
// 
// }
// 
// Path: core/src/com/github/fauu/helix/util/IntVector2.java
// public class IntVector2 {
// 
//   public int x;
// 
//   public int y;
// 
//   public IntVector2() { }
// 
//   public IntVector2(int x, int y) {
//     set(x, y);
//   }
// 
//   public IntVector2(IntVector2 source) {
//     set(source);
//   }
// 
//   public void set(int x, int y) {
//     this.x = x;
//     this.y = y;
//   }
// 
//   public void set(IntVector2 source) {
//     set(source.x, source.y);
//   }
// 
//   public IntVector2 add(IntVector2 other) {
//     set(x + other.x, y + other.y);
// 
//     return this;
//   }
// 
//   public IntVector2 sub(IntVector2 other) {
//     set(x - other.x, y - other.y);
// 
//     return this;
//   }
// 
//   public IntVector2 cpy() {
//     return new IntVector2(x, y);
//   }
// 
//   public IntVector2 scl(int value) {
//     x *= value;
//     y  *= value;
// 
//     return this;
//   }
// 
//   public Vector2 toVector2() {
//     return new Vector2(x, y);
//   }
// 
//   public Vector3 toVector3() {
//     return new Vector3(x, y, 0);
//   }
// 
//   @Override
//   public String toString() {
//     return "[" + x + "," + y + "]";
//   }
// 
// }


import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.Manager;
import com.artemis.annotations.Wire;
import com.artemis.managers.TagManager;
import com.badlogic.gdx.math.Vector3;
import com.github.fauu.helix.component.DimensionsComponent;
import com.github.fauu.helix.graphics.HelixCamera;
import com.github.fauu.helix.util.IntVector2;
/*
 * Copyright (C) 2014-2016 Helix Engine Developers
 * (http://github.com/fauu/HelixEngine)
 *
 * This software is licensed under the GNU General Public License
 * (version 3 or later). See the COPYING file in this distribution.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this software. If not, see <http://www.gnu.org/licenses/>.
 *
 * Authored by: Piotr Grabowski <fau999@gmail.com>
 */

package com.github.fauu.helix.editor.manager;


public class CameraIntermediary extends Manager {

  @Wire
  private ComponentMapper<DimensionsComponent> dimensionsMapper;

// Path: core/src/com/github/fauu/helix/component/DimensionsComponent.java
// public class DimensionsComponent extends Component {
//   
//   private IntVector2 dimensions;
//   
//   public DimensionsComponent() {
//     this.dimensions = new IntVector2();
//   }
//   
//   public DimensionsComponent(IntVector2 dimensions) {
//     this.dimensions = new IntVector2(dimensions);
//   }
//   
//   public IntVector2 get() {
//     return dimensions;
//   }
//   
//   public void set(IntVector2 dimensions) {
//     this.dimensions.set(dimensions);
//   }
// 
// }
// 
// Path: core/src/com/github/fauu/helix/graphics/HelixCamera.java
// public class HelixCamera extends PerspectiveCamera {
// 
//   private static final Vector3 INITIAL_POSITION;
// 
//   private static final float POSITION_Y_TO_Z_RATIO;
// 
//   private static final Vector3 DEFAULT_TARGET_DISPLACEMENT;
// 
//   private Vector3 targetPosition;
// 
//   private Vector3 targetPositionDelta;
// 
//   static {
//     INITIAL_POSITION = new Vector3(0, -13, 17);
//     POSITION_Y_TO_Z_RATIO = INITIAL_POSITION.y / INITIAL_POSITION.z;
//     DEFAULT_TARGET_DISPLACEMENT = new Vector3(.5f, .6f, 0);
//   }
// 
//   public HelixCamera(float fieldOfView,
//                      Vector3 targetPosition,
//                      float near,
//                      float far) {
//     super(fieldOfView, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
// 
//     this.targetPosition = new Vector3();
//     this.near = near;
//     this.far = far;
//     this.translate(0, -13, 17);
//     this.lookAt(0, 0, 0);
// 
//     targetPositionDelta = new Vector3();
// 
//     translateTargetPosition(targetPosition.add(DEFAULT_TARGET_DISPLACEMENT));
//   }
// 
//   public void translateTargetPosition(Vector3 translation) {
//     translateTargetPosition(translation.x, translation.y, translation.z);
//   }
// 
//   public void translateTargetPosition(float x, float y, float z) {
//     super.translate(x, y, z);
// 
//     targetPosition.add(x, y, z);
//     targetPositionDelta.set(x, y, z);
//   }
// 
//   public void updateTargetPosition(IntVector3 logicalPosition) {
//     Vector3 translation
//         = logicalPosition.cpy().toVector3()
//                          .add(DEFAULT_TARGET_DISPLACEMENT)
//                          .sub(targetPosition);
// 
//     translateTargetPosition(translation);
//   }
// 
//   public Vector3 getTargetPositionDelta() {
//     return targetPositionDelta;
//   }
// 
//   public void resetPositionDelta() {
//     targetPositionDelta.setZero();
//   }
// 
// }
// 
// Path: core/src/com/github/fauu/helix/util/IntVector2.java
// public class IntVector2 {
// 
//   public int x;
// 
//   public int y;
// 
//   public IntVector2() { }
// 
//   public IntVector2(int x, int y) {
//     set(x, y);
//   }
// 
//   public IntVector2(IntVector2 source) {
//     set(source);
//   }
// 
//   public void set(int x, int y) {
//     this.x = x;
//     this.y = y;
//   }
// 
//   public void set(IntVector2 source) {
//     set(source.x, source.y);
//   }
// 
//   public IntVector2 add(IntVector2 other) {
//     set(x + other.x, y + other.y);
// 
//     return this;
//   }
// 
//   public IntVector2 sub(IntVector2 other) {
//     set(x - other.x, y - other.y);
// 
//     return this;
//   }
// 
//   public IntVector2 cpy() {
//     return new IntVector2(x, y);
//   }
// 
//   public IntVector2 scl(int value) {
//     x *= value;
//     y  *= value;
// 
//     return this;
//   }
// 
//   public Vector2 toVector2() {
//     return new Vector2(x, y);
//   }
// 
//   public Vector3 toVector3() {
//     return new Vector3(x, y, 0);
//   }
// 
//   @Override
//   public String toString() {
//     return "[" + x + "," + y + "]";
//   }
// 
// }


// Path: editor/src/com/github/fauu/helix/editor/manager/CameraIntermediary.java
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.Manager;
import com.artemis.annotations.Wire;
import com.artemis.managers.TagManager;
import com.badlogic.gdx.math.Vector3;
import com.github.fauu.helix.component.DimensionsComponent;
import com.github.fauu.helix.graphics.HelixCamera;
import com.github.fauu.helix.util.IntVector2;

/*
 * Copyright (C) 2014-2016 Helix Engine Developers
 * (http://github.com/fauu/HelixEngine)
 *
 * This software is licensed under the GNU General Public License
 * (version 3 or later). See the COPYING file in this distribution.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this software. If not, see <http://www.gnu.org/licenses/>.
 *
 * Authored by: Piotr Grabowski <fau999@gmail.com>
 */

package com.github.fauu.helix.editor.manager;


public class CameraIntermediary extends Manager {

  @Wire
  private ComponentMapper<DimensionsComponent> dimensionsMapper;

  @Wire