Project

General

Profile

Download (3.61 KB) Statistics
| Branch: | Revision:

distorted-objectlib / src / main / java / org / distorted / objectlib / touchcontrol / TouchControl.java @ 3a1efb32

1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2020 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6
// Magic Cube is free software: you can redistribute it and/or modify                            //
7
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11
// Magic Cube is distributed in the hope that it will be useful,                                 //
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17
// along with Magic Cube.  If not, see <http://www.gnu.org/licenses/>.                           //
18
///////////////////////////////////////////////////////////////////////////////////////////////////
19

    
20
package org.distorted.objectlib.touchcontrol;
21

    
22
import org.distorted.library.type.Static2D;
23
import org.distorted.library.type.Static4D;
24

    
25
///////////////////////////////////////////////////////////////////////////////////////////////////
26

    
27
public abstract class TouchControl
28
  {
29
  // it doesn't matter where we touch a face - the list of enabled rotAxis will always be the same
30
  public static final int TYPE_NOT_SPLIT    = 0;
31
  // each face is split into several parts by lines coming from its center to the midpoints of each edge
32
  public static final int TYPE_SPLIT_EDGE   = 1;
33
  // each face is split into several parts by lines coming from its center to the vertices
34
  public static final int TYPE_SPLIT_CORNER = 2;
35

    
36
  public static final int TC_HEXAHEDRON   = 6;
37
  public static final int TC_TETRAHEDRON  = 4;
38
  public static final int TC_OCTAHEDRON   = 8;
39
  public static final int TC_DODECAHEDRON =12;
40
  public static final int TC_CUBOID       = 0;
41
  public static final int TC_CHANGING     = 1;
42

    
43
  float mObjectRatio;
44

    
45
///////////////////////////////////////////////////////////////////////////////////////////////////
46

    
47
  public TouchControl()
48
    {
49
    mObjectRatio = 1.0f;
50
    }
51

    
52
///////////////////////////////////////////////////////////////////////////////////////////////////
53

    
54
  public void setObjectRatio(float ratio)
55
    {
56
    mObjectRatio = ratio;
57
    }
58

    
59
///////////////////////////////////////////////////////////////////////////////////////////////////
60

    
61
  public abstract boolean objectTouched(Static4D rotatedTouchPoint, Static4D rotatedCamera);
62
  public abstract void newRotation(int[] output, Static4D rotatedTouchPoint);
63
  public abstract void getCastedRotAxis(float[] output, Static4D quat, int rotIndex);
64
  public abstract int getTouchedFace();
65
  public abstract float[] getTouchedPoint3D();
66
  public abstract float returnRotationFactor(int[] numLayers, int row);
67
  }
(1-1/8)