Project

General

Profile

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

distorted-objectlib / src / main / java / org / distorted / objectlib / helpers / ObjectVertexEffects.java @ f4ed769a

1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2021 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6
// Magic Cube is proprietary software licensed under an EULA which you should have received      //
7
// along with the code. If not, check https://distorted.org/magic/License-Magic-Cube.html        //
8
///////////////////////////////////////////////////////////////////////////////////////////////////
9

    
10
package org.distorted.objectlib.helpers;
11

    
12
///////////////////////////////////////////////////////////////////////////////////////////////////
13

    
14
public class ObjectVertexEffects
15
  {
16
  private String[] mEffectName;
17
  private float[][] mEffectVariable;
18
  private float[][] mEffectCenter;
19
  private float[][] mEffectRegion;
20
  private boolean[] mUseIfMeshFast;
21

    
22
///////////////////////////////////////////////////////////////////////////////////////////////////
23

    
24
  public ObjectVertexEffects(String[] names, float[][] variables, float[][] centers, float[][] regions, boolean[] use)
25
    {
26
    mEffectName     = names;
27
    mEffectVariable = variables;
28
    mEffectCenter   = centers;
29
    mEffectRegion   = regions;
30
    mUseIfMeshFast  = use;
31
    }
32

    
33
///////////////////////////////////////////////////////////////////////////////////////////////////
34

    
35
  public void joinEffect(String n, float[] v, float[] c, float[] r, boolean u)
36
    {
37
    if( mEffectName != null )
38
      {
39
      String[] t1  = mEffectName;
40
      float[][] t2 = mEffectVariable;
41
      float[][] t3 = mEffectCenter;
42
      float[][] t4 = mEffectRegion;
43
      boolean[] t5 = mUseIfMeshFast;
44

    
45
      int len = t1.length;
46

    
47
      mEffectName     = new String[len+1];
48
      mEffectVariable = new float[len+1][];
49
      mEffectCenter   = new float[len+1][];
50
      mEffectRegion   = new float[len+1][];
51
      mUseIfMeshFast  = new boolean[len+1];
52

    
53
      for(int i=0; i<len; i++)
54
        {
55
        mEffectName[i]     = t1[i];
56
        mEffectVariable[i] = t2[i];
57
        mEffectCenter[i]   = t3[i];
58
        mEffectRegion[i]   = t4[i];
59
        mUseIfMeshFast[i]  = t5[i];
60
        }
61

    
62
      mEffectName[len]     = n;
63
      mEffectVariable[len] = v;
64
      mEffectCenter[len]   = c;
65
      mEffectRegion[len]   = r;
66
      mUseIfMeshFast[len]  = u;
67
      }
68
    }
69

    
70
///////////////////////////////////////////////////////////////////////////////////////////////////
71

    
72
  public void debug()
73
    {
74
    StringBuilder sb = new StringBuilder();
75

    
76
    int numEffects = mEffectName.length;
77

    
78
    for(int e=0; e<numEffects; e++)
79
      {
80
      if( mEffectName[e]==null ) continue;
81

    
82
      float[] c = mEffectCenter[e];
83
      float[] r = mEffectRegion[e];
84
      float[] v = mEffectVariable[e];
85

    
86
      sb.append("Effect ");
87
      sb.append(e);
88
      sb.append(" : ");
89
      sb.append(mEffectName[e]);
90
      sb.append(' ');
91
      sb.append(mUseIfMeshFast[e]);
92
      sb.append(' ');
93
      sb.append("cent: ");
94
      sb.append(c[0]);
95
      sb.append(' ');
96
      sb.append(c[1]);
97
      sb.append(' ');
98
      sb.append(c[2]);
99

    
100
      sb.append(" reg: ");
101

    
102
      if( r!=null )
103
        {
104
        sb.append(r[0]);
105
        sb.append(' ');
106
        sb.append(r[1]);
107
        sb.append(' ');
108
        sb.append(r[2]);
109
        sb.append(' ');
110
        sb.append(r[3]);
111
        }
112
      else
113
        {
114
        sb.append("null");
115
        }
116

    
117
      sb.append(" var: ");
118

    
119
      if( v!=null )
120
        {
121
        sb.append(v[0]);
122
        sb.append(' ');
123
        sb.append(v[1]);
124
        sb.append(' ');
125
        sb.append(v[2]);
126
        sb.append(' ');
127
        sb.append(v[3]);
128
        sb.append(' ');
129
        sb.append(v[4]);
130
        }
131
      else
132
        {
133
        sb.append("null");
134
        }
135

    
136
      sb.append("\n");
137
      }
138

    
139
    android.util.Log.e("D", "ObjectVertexEffects: \n"+sb);
140
    }
141

    
142
///////////////////////////////////////////////////////////////////////////////////////////////////
143

    
144
  public String[] getNames()
145
    {
146
    return mEffectName;
147
    }
148

    
149
///////////////////////////////////////////////////////////////////////////////////////////////////
150

    
151
  public float[][] getVariables()
152
    {
153
    return mEffectVariable;
154
    }
155

    
156
///////////////////////////////////////////////////////////////////////////////////////////////////
157

    
158
  public float[][] getCenters()
159
    {
160
    return mEffectCenter;
161
    }
162

    
163
///////////////////////////////////////////////////////////////////////////////////////////////////
164

    
165
  public float[][] getRegions()
166
    {
167
    return mEffectRegion;
168
    }
169

    
170
///////////////////////////////////////////////////////////////////////////////////////////////////
171

    
172
  public boolean[] getUses()
173
    {
174
    return mUseIfMeshFast;
175
    }
176
  }
(11-11/13)