Plug rubberbox function :
[scilab.git] / scilab / modules / renderer / src / java / org / scilab / modules / renderer / JoGLView / interaction / util / PointDComputer.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009-2012 - DIGITEO - Pierre Lando
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  */
11
12 package org.scilab.modules.renderer.JoGLView.interaction.util;
13
14 import org.scilab.forge.scirenderer.tranformations.Vector3d;
15 import org.scilab.modules.graphic_objects.axes.Axes;
16
17 import java.awt.Point;
18
19 /**
20  * @author Pierre Lando
21  */
22 public class PointDComputer extends CubeFacesPointComputer implements PointComputer {
23
24     private final int firstAxisIndex;
25     private final Vector3d secondPosition;
26     private final Vector3d firstPosition;
27
28     /**
29      * Constructor
30      *
31      * @param axes current axes.
32      * @param pointCComputer previous point computer.
33      * @param point clicked point in AWT coordinate.
34      */
35     public PointDComputer(Axes axes, PointComputer pointCComputer, Point point) {
36         super(axes, point);
37         firstAxisIndex = pointCComputer.getFirstAxisIndex();
38         if (getPosition() != null) {
39             firstPosition = pointCComputer.getFirstPosition();
40             secondPosition = setCoordinate(pointCComputer.getSecondPosition(), getPosition(), firstAxisIndex);
41         } else {
42             firstPosition = null;
43             secondPosition = null;
44         }
45     }
46
47     @Override
48     public final boolean isValid() {
49         return secondPosition != null;
50     }
51
52     @Override
53     public final Vector3d getFirstPosition() {
54         return firstPosition;
55     }
56
57     @Override
58     public final Vector3d getSecondPosition() {
59         return secondPosition;
60     }
61
62     @Override
63     public final int getFirstAxisIndex() {
64         return firstAxisIndex;
65     }
66
67     @Override
68     public boolean is2D() {
69         return false;
70     }
71 }