Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Michal Balážia
GaitRecognition
Commits
acab277e
Commit
acab277e
authored
Jun 13, 2018
by
Michal Balazia
Browse files
distance map
parent
07d6abac
Changes
40
Expand all
Show whitespace changes
Inline
Side-by-side
src/
method
s/MethodKrzeszowskiT.java
→
src/
algorithm
s/MethodKrzeszowskiT.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
algorithms.MotionLoaderJointCoordinates
;
import
executor.MotionLoaderJointCoordinates
;
import
executor.Constants
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
src/
method
s/MethodKwolekB.java
→
src/
algorithm
s/MethodKwolekB.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
algorithms.MotionLoaderJointCoordinates
;
import
executor.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.List
;
import
objects.Axis
;
...
...
src/
method
s/MethodNareshKumarMS.java
→
src/
algorithm
s/MethodNareshKumarMS.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
Jama.Matrix
;
import
algorithms.Classifier
;
import
algorithms.MotionLoaderJointCoordinates
;
import
executor.MotionLoaderJointCoordinates
;
import
executor.Constants
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -26,13 +25,13 @@ public class MethodNareshKumarMS extends Method {
@Override
public
void
learnClassifier
(
List
<
Motion
>
motionsLearning
)
{
getClassifier
().
getDecision
().
getDistanceTemplates
().
set
DistanceTemplates
Matrix
(
getMeanMatrix
(
extractTemplates
(
motionsLearning
)));
((
DistanceTemplatesNareshKumarMS
)
getClassifier
().
getDecision
().
getDistanceTemplates
()
)
.
set
Mean
Matrix
(
getMeanMatrix
(
extractTemplates
(
motionsLearning
)));
}
@Override
public
List
<
Feature
>
extractFeatures
(
Motion
motion
)
{
motion
.
adjustLinear
(
length
);
double
[][]
data
=
motion
.
get
Vector
().
getArray
();
double
[][]
data
=
motion
.
get
Matrix
().
getArray
();
double
[]
vector
=
new
double
[
data
.
length
];
for
(
int
i
=
0
;
i
<
data
.
length
;
i
++)
{
vector
[
i
]
=
data
[
i
][
0
];
...
...
src/
method
s/MethodPreisJ.java
→
src/
algorithm
s/MethodPreisJ.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
algorithms.MotionLoaderJointCoordinates
;
import
executor.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.List
;
import
objects.Feature
;
...
...
src/
method
s/MethodRandom.java
→
src/
algorithm
s/MethodRandom.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
java.util.ArrayList
;
import
java.util.List
;
import
objects.Feature
;
...
...
src/
method
s/MethodRaw.java
→
src/
algorithm
s/MethodRaw.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
algorithms.MotionLoader
;
import
executor.MotionLoader
;
import
java.util.List
;
import
objects.Feature
;
import
objects.Motion
;
...
...
src/
method
s/MethodSedmidubskyJ.java
→
src/
algorithm
s/MethodSedmidubskyJ.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
algorithms.MotionLoaderJointCoordinates
;
import
executor.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.List
;
import
objects.Feature
;
...
...
src/
method
s/MethodSinhaA.java
→
src/
algorithm
s/MethodSinhaA.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.Classifier
;
import
algorithms.MotionLoaderJointCoordinates
;
import
executor.MotionLoaderJointCoordinates
;
import
java.util.ArrayList
;
import
java.util.List
;
import
objects.Axis
;
...
...
src/
method
s/MethodTransform.java
→
src/
algorithm
s/MethodTransform.java
View file @
acab277e
package
method
s
;
package
algorithm
s
;
import
algorithms.ClassifierTransform
;
import
algorithms.MotionLoader
;
import
executor.MotionLoader
;
import
java.util.ArrayList
;
import
java.util.List
;
import
objects.Feature
;
...
...
@@ -30,19 +29,19 @@ public class MethodTransform extends Method {
List
<
Sample
>
samples
=
new
ArrayList
();
for
(
Motion
motion
:
motionsLearning
)
{
motion
.
adjustLinear
(
length
);
samples
.
add
(
new
Sample
(
motion
.
getIdentifier
(),
motion
.
get
Vector
()));
samples
.
add
(
new
Sample
(
motion
.
getIdentifier
(),
motion
.
get
Matrix
()));
}
ClassifierTransform
classifier
=
(
ClassifierTransform
)
getClassifier
();
classifier
.
learnTransformationMatrix
(
samples
);
// DISTANCE TEMPLATES
classifier
.
getDecision
().
getDistanceTemplates
().
set
DistanceTempla
te
s
Matrix
(
getTotalScatterMatrix
(
extractTemplates
(
motionsLearning
)).
inverse
());
((
DistanceTemplatesMahalanobis
)
classifier
.
getDecision
().
getDistanceTemplates
()
)
.
set
TotalScat
te
r
Matrix
(
getTotalScatterMatrix
(
extractTemplates
(
motionsLearning
)).
inverse
());
}
@Override
public
List
<
Feature
>
extractFeatures
(
Motion
motion
)
{
motion
.
adjustLinear
(
length
);
double
[][]
data
=
((
ClassifierTransform
)
getClassifier
()).
getTransformationMatrix
().
transpose
().
times
(
motion
.
get
Vector
()).
getArray
();
double
[][]
data
=
((
ClassifierTransform
)
getClassifier
()).
getTransformationMatrix
().
transpose
().
times
(
motion
.
get
Matrix
()).
getArray
();
List
<
Feature
>
features
=
new
ArrayList
();
for
(
int
d
=
0
;
d
<
data
.
length
;
d
++)
{
features
.
add
(
new
Feature
(
new
Parameter
[]{
new
Parameter
(
String
.
valueOf
(
d
),
data
[
d
][
0
])}));
...
...
src/algorithms/Retriever.java
View file @
acab277e
package
algorithms
;
import
java.io.Serializable
;
import
objects.DistanceMatrix
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
objects.Template
;
public
abstract
class
Retriever
implements
Serializable
{
private
DistanceTemplates
distanceTemplates
;
private
DistanceMatrix
distanceMatrix
;
public
Retriever
()
{
}
private
Map
<
String
,
Double
>
distanceMap
=
new
HashMap
();
public
DistanceTemplates
getDistanceTemplates
()
{
return
distanceTemplates
;
...
...
@@ -20,11 +19,36 @@ public abstract class Retriever implements Serializable {
this
.
distanceTemplates
=
distanceTemplates
;
}
public
void
setDistanceMatrix
(
DistanceMatrix
distanceMatrix
)
{
this
.
distanceMatrix
=
distanceMatrix
;
public
Map
<
String
,
Double
>
getDistanceMap
()
{
return
distanceMap
;
}
public
void
setDistanceMap
(
Map
<
String
,
Double
>
distanceMap
)
{
this
.
distanceMap
=
distanceMap
;
}
private
String
createKey
(
Template
template1
,
Template
template2
)
{
return
template1
.
getIdentifier
()
+
"#"
+
template2
.
getIdentifier
();
}
public
void
calculateDistanceMap
(
List
<
Template
>
templates
)
{
distanceMap
=
new
HashMap
();
for
(
Template
template1
:
templates
)
{
for
(
Template
template2
:
templates
)
{
putDistance
(
template1
,
template2
);
}
}
}
public
double
getDistance
(
Template
template1
,
Template
template2
)
{
return
distanceMatrix
==
null
?
distanceTemplates
.
getDistance
(
template1
,
template2
)
:
distanceMatrix
.
getDistance
(
template1
,
template2
);
String
key
=
createKey
(
template1
,
template2
);
if
(!
distanceMap
.
containsKey
(
key
))
{
putDistance
(
template1
,
template2
);
}
return
distanceMap
.
get
(
key
);
}
private
void
putDistance
(
Template
template1
,
Template
template2
)
{
distanceMap
.
put
(
createKey
(
template1
,
template2
),
distanceTemplates
.
getDistance
(
template1
,
template2
));
}
}
src/
algorithms/Method
Evaluator.java
→
src/
executor/
Evaluator.java
View file @
acab277e
This diff is collapsed.
Click to expand it.
src/executor/Executor.java
View file @
acab277e
...
...
@@ -9,9 +9,6 @@ import algorithms.Classifier1NNL1L1;
import
algorithms.ClassifierRandom
;
import
algorithms.ClassifierTransform1NNMMCMahalanobis
;
import
algorithms.ClassifierTransform1NNPCALDAMahalanobis
;
import
algorithms.MethodEvaluator
;
import
algorithms.MotionLoaderBoneRotations
;
import
algorithms.MotionLoaderJointCoordinates
;
import
java.io.BufferedReader
;
import
java.io.BufferedWriter
;
import
java.io.File
;
...
...
@@ -21,30 +18,29 @@ import java.io.FileWriter;
import
java.io.IOException
;
import
java.io.ObjectInputStream
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Random
;
import
objects.PoseJointCoordinates
;
import
objects.MotionJointCoordinates
;
import
objects.Feature
;
import
objects.Motion
;
import
method
s.Method
;
import
method
s.MethodAhmedM
;
import
method
s.MethodAliS
;
import
method
s.MethodAnderssonVO
;
import
method
s.MethodBallA
;
import
method
s.MethodDikovskiB
;
import
method
s.MethodAhmedF
;
import
method
s.MethodJiangS
;
import
method
s.MethodKrzeszowskiT
;
import
method
s.MethodNareshKumarMS
;
import
method
s.MethodKwolekB
;
import
method
s.MethodPreisJ
;
import
method
s.MethodSedmidubskyJ
;
import
method
s.MethodSinhaA
;
import
method
s.MethodTransform
;
import
method
s.MethodRandom
;
import
method
s.MethodRaw
;
import
algorithm
s.Method
;
import
algorithm
s.MethodAhmedM
;
import
algorithm
s.MethodAliS
;
import
algorithm
s.MethodAnderssonVO
;
import
algorithm
s.MethodBallA
;
import
algorithm
s.MethodDikovskiB
;
import
algorithm
s.MethodAhmedF
;
import
algorithm
s.MethodJiangS
;
import
algorithm
s.MethodKrzeszowskiT
;
import
algorithm
s.MethodNareshKumarMS
;
import
algorithm
s.MethodKwolekB
;
import
algorithm
s.MethodPreisJ
;
import
algorithm
s.MethodSedmidubskyJ
;
import
algorithm
s.MethodSinhaA
;
import
algorithm
s.MethodTransform
;
import
algorithm
s.MethodRandom
;
import
algorithm
s.MethodRaw
;
import
objects.ClassifiableList
;
import
objects.Parameter
;
import
objects.Template
;
...
...
@@ -73,11 +69,11 @@ public class Executor {
private
static
final
Classifier1NNDTWL1
classifier1NNDTWL1
=
new
Classifier1NNDTWL1
();
private
static
final
Classifier1NNDTWL2
classifier1NNDTWL2
=
new
Classifier1NNDTWL2
();
private
static
final
Classifier1NNL1L1
classifier1NNL1L1
=
new
Classifier1NNL1L1
();
private
static
final
ClassifierRandom
classifierRandom
=
new
ClassifierRandom
();
private
static
final
Classifier1NNDTWKrzeszowskiT
classifier1NNDTWKrzeszowskiT
=
new
Classifier1NNDTWKrzeszowskiT
();
private
static
final
Classifier1NNNareshKumarMS
classifier1NNNareshKumarMS
=
new
Classifier1NNNareshKumarMS
();
private
static
final
ClassifierTransform1NNMMCMahalanobis
classifierTransform1NNMMCMahalanobis
=
new
ClassifierTransform1NNMMCMahalanobis
();
private
static
final
ClassifierTransform1NNPCALDAMahalanobis
classifierTransform1NNPCALDAMahalanobis
=
new
ClassifierTransform1NNPCALDAMahalanobis
();
private
static
final
ClassifierRandom
classifierRandom
=
new
ClassifierRandom
();
/*
All implemented MoCap-based gait recognition methods
...
...
@@ -278,28 +274,28 @@ public class Executor {
nFoldsPG
=
10
;
fineness
=
30
;
methods
=
new
Method
[]{
methods
[
2
],
methods
[
3
],
methods
[
13
],
methods
[
17
]};
Method
Evaluator
methodE
valuator
=
new
Method
Evaluator
(
methods
,
new
File
(
"amc"
+
distanceThreshold
),
nFoldsPG
,
fineness
);
//
methodE
valuator.setSubjectsClosedSetFixed(new String[]{"15", "35", "36", "91"});
methodE
valuator
.
setSubjectsClosedSetRandom
(
nClasses
);
methodE
valuator
.
evaluateClosedSet
(
nFoldsLE
);
//
methodE
valuator.setSubjectsOpenSetFixed(new String[]{"15", "35"}, new String[]{"36", "91"});
methodE
valuator
.
setSubjectsOpenSetRandom
(
nClassesLearning
,
nClassesEvaluation
);
methodE
valuator
.
evaluateOpenSet
();
Evaluator
e
valuator
=
new
Evaluator
(
methods
,
new
File
(
"amc"
+
distanceThreshold
),
nFoldsPG
,
fineness
);
//
e
valuator.setSubjectsClosedSetFixed(new String[]{"15", "35", "36", "91"});
e
valuator
.
setSubjectsClosedSetRandom
(
nClasses
);
e
valuator
.
evaluateClosedSet
(
nFoldsLE
);
//
e
valuator.setSubjectsOpenSetFixed(new String[]{"15", "35"}, new String[]{"36", "91"});
e
valuator
.
setSubjectsOpenSetRandom
(
nClassesLearning
,
nClassesEvaluation
);
e
valuator
.
evaluateOpenSet
();
//
// // IJCB Figure 3
// nClasses = 64;
// nFoldsPG = 10;
// fineness = 30;
// methods = new Method[]{methods[1], methods[2], methods[3], methods[4], methods[5], methods[8], methods[10], methods[12], methods[14], methods[16]};
//
Method
Evaluator
methodE
valuator = new
Method
Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
// Evaluator
e
valuator = new Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
// for (int i = 2; i <= nClasses - 2; i++) {
// System.out.println("i=" + i);
// nClassesLearning = i;
// nClassesEvaluation = nClasses - i;
// String[] fixed = new String[]{"54", "70", "06", "19", "132", "104", "91", "38", "40", "143", "142", "94", "90", "77", "78", "03", "74", "82", "127", "14", "41", "16", "01", "56", "85", "15", "136", "35", "60", "89", "55", "137", "108", "88", "114", "17", "39", "05", "120", "07", "138", "69", "86", "12", "13", "93", "49", "135", "61", "126", "107", "22", "81", "83", "106", "36", "111", "09", "63", "131", "08", "113", "18", "133"};
//
methodE
valuator.setSubjectsOpenSetFixed(Arrays.copyOfRange(fixed, 0, nClassesLearning), Arrays.copyOfRange(fixed, nClassesLearning, nClassesLearning + nClassesEvaluation));
//
e
valuator.setSubjectsOpenSetFixed(Arrays.copyOfRange(fixed, 0, nClassesLearning), Arrays.copyOfRange(fixed, nClassesLearning, nClassesLearning + nClassesEvaluation));
// //methodEvaluator.setSubjectsOpenSetRandom(nClassesLearning, nClassesEvaluation);
//
methodE
valuator.evaluateOpenSet();
//
e
valuator.evaluateOpenSet();
// }
//
// // ACM-TOMM Table 1
...
...
@@ -307,9 +303,9 @@ public class Executor {
// nFoldsLE = 3;
// nFoldsPG = 10;
// fineness = 30;
//
Method
Evaluator
methodE
valuator = new
Method
Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
//
methodE
valuator.setSubjectsClosedSetRandom(nClasses);
//
methodE
valuator.evaluateClosedSet(nFoldsLE);
// Evaluator
e
valuator = new Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
//
e
valuator.setSubjectsClosedSetRandom(nClasses);
//
e
valuator.evaluateClosedSet(nFoldsLE);
//
// // S+SSPR Figure 3 and ACM-TOMM Figure 3
// nClasses = 64;
...
...
@@ -317,16 +313,16 @@ public class Executor {
// nFoldsPG = 10;
// fineness = 30;
// methods = new Method[]{methods[14]};
//
Method
Evaluator
methodE
valuator = new
Method
Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
// Evaluator
e
valuator = new Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
// for (int i = 2; i <= nClasses / 2; i++) {
// System.out.println("i=" + i);
// nClasses = i;
// nClassesLearning = i;
// nClassesEvaluation = i;
//
methodE
valuator.setSubjectsClosedSetRandom(nClasses);
//
methodE
valuator.evaluateClosedSet(nFoldsLE);
//
methodE
valuator.setSubjectsOpenSetRandom(nClassesLearning, nClassesEvaluation);
//
methodE
valuator.evaluateOpenSet();
//
e
valuator.setSubjectsClosedSetRandom(nClasses);
//
e
valuator.evaluateClosedSet(nFoldsLE);
//
e
valuator.setSubjectsOpenSetRandom(nClassesLearning, nClassesEvaluation);
//
e
valuator.evaluateOpenSet();
// }
//
// // S+SSPR Figure 4a
...
...
@@ -334,13 +330,13 @@ public class Executor {
// nFoldsPG = 10;
// fineness = 30;
// methods = new Method[]{methods[14]};
//
Method
Evaluator
methodE
valuator = new
Method
Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
// Evaluator
e
valuator = new Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
// for (int i = 2; i <= nClasses / 2; i++) {
// System.out.println("i=" + i);
// nClassesLearning = i;
// nClassesEvaluation = nClasses / 2;
//
methodE
valuator.setSubjectsOpenSetRandom(nClassesLearning, nClassesEvaluation);
//
methodE
valuator.evaluateOpenSet();
//
e
valuator.setSubjectsOpenSetRandom(nClassesLearning, nClassesEvaluation);
//
e
valuator.evaluateOpenSet();
// }
//
// // S+SSPR Figure 4b
...
...
@@ -349,17 +345,16 @@ public class Executor {
// nFoldsPG = 10;
// fineness = 30;
// methods = new Method[]{methods[14]};
//
Method
Evaluator
methodE
valuator = new
Method
Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
// Evaluator
e
valuator = new Evaluator(methods, new File("amc" + distanceThreshold), nFoldsPG, fineness);
// for (int i = 2; i <= nClasses - 2; i++) {
// System.out.println("i=" + i);
// nClassesLearning = i;
// nClassesEvaluation = nClasses - i;
//
methodE
valuator.setSubjectsOpenSetRandom(nClassesLearning, nClassesEvaluation);
//
methodE
valuator.evaluateOpenSet();
//
e
valuator.setSubjectsOpenSetRandom(nClassesLearning, nClassesEvaluation);
//
e
valuator.evaluateOpenSet();
// }
//
System
.
out
.
print
(
"time="
+
printTime
(
System
.
currentTimeMillis
()
-
beginning
));
System
.
out
.
println
(
"time="
+
printTime
(
System
.
currentTimeMillis
()
-
beginning
));
}
private
static
String
printTime
(
double
time
)
{
...
...
src/
algorithms
/MotionLoader.java
→
src/
executor
/MotionLoader.java
View file @
acab277e
package
algorithms
;
package
executor
;
import
java.io.File
;
import
java.io.IOException
;
...
...
src/
algorithms
/MotionLoaderBoneRotations.java
→
src/
executor
/MotionLoaderBoneRotations.java
View file @
acab277e
package
algorithms
;
package
executor
;
import
executor.MotionLoader
;
import
java.io.BufferedReader
;
import
java.io.File
;
import
java.io.FileReader
;
...
...
src/
algorithms
/MotionLoaderJointCoordinates.java
→
src/
executor
/MotionLoaderJointCoordinates.java
View file @
acab277e
package
algorithms
;
package
executor
;
import
executor.MotionLoader
;
import
executor.Constants
;
import
java.io.File
;
import
java.io.IOException
;
...
...
src/objects/DistanceMatrix.java
deleted
100644 → 0
View file @
07d6abac
package
objects
;
import
algorithms.DistanceTemplates
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
class
DistanceMatrix
{
private
final
DistanceTemplates
distanceTemplates
;
private
final
Map
<
String
,
Double
>
distanceMap
=
new
HashMap
();
private
final
List
<
String
>
identifiers
=
new
ArrayList
();
public
DistanceMatrix
(
DistanceTemplates
distanceTemplates
)
{
this
.
distanceTemplates
=
distanceTemplates
;
}
private
String
getKey
(
Template
template1
,
Template
template2
)
{
return
template1
.
getIdentifier
()
+
"#"
+
template2
.
getIdentifier
();
}
public
void
putDistance
(
Template
template1
,
Template
template2
)
{
distanceMap
.
put
(
getKey
(
template1
,
template2
),
distanceTemplates
.
getDistance
(
template1
,
template2
));
String
identifier
=
template1
.
getIdentifier
();
if
(!
identifiers
.
contains
(
identifier
))
{
identifiers
.
add
(
identifier
);
}
}
public
double
getDistance
(
Template
template1
,
Template
template2
)
{
return
distanceMap
.
get
(
getKey
(
template1
,
template2
));
}
public
int
getSize
()
{
return
distanceMap
.
size
();
}
public
void
print
()
{
Collections
.
sort
(
identifiers
);
System
.
out
.
print
(
","
);
for
(
String
identifier
:
identifiers
)
{
System
.
out
.
print
(
identifier
+
","
);
}
System
.
out
.
print
(
"\r\n"
);
for
(
String
identifier1
:
identifiers
)
{
System
.
out
.
print
(
identifier1
+
","
);
for
(
String
identifier2
:
identifiers
)
{
System
.
out
.
print
(
distanceMap
.
get
(
identifier1
+
"#"
+
identifier2
)
+
","
);
}
System
.
out
.
print
(
"\r\n"
);
}
}
}
src/objects/Motion.java
View file @
acab277e
...
...
@@ -33,7 +33,7 @@ public abstract class Motion<T> extends Classifiable {
this
.
poses
=
adjustedPoses
;
}
public
abstract
Matrix
get
Vector
();
public
abstract
Matrix
get
Matrix
();
public
abstract
List
<
Feature
>
extractRawFeatures
();
}
src/objects/MotionBoneRotations.java
View file @
acab277e
...
...
@@ -11,7 +11,7 @@ public class MotionBoneRotations extends Motion {
}
@Override
public
Matrix
get
Vector
()
{
public
Matrix
get
Matrix
()
{
double
[][]
data2
=
getTensor
();
double
[]
dataVector
=
new
double
[
data2
.
length
*
data2
[
0
].
length
];
int
d
=
0
;
...
...
src/objects/MotionJointCoordinates.java
View file @
acab277e
...
...
@@ -12,7 +12,7 @@ public class MotionJointCoordinates extends Motion {
}
@Override
public
Matrix
get
Vector
()
{
public
Matrix
get
Matrix
()
{
double
[][][]
data3
=
getTensor
();
double
[]
dataVector
=
new
double
[
data3
.
length
*
data3
[
0
].
length
*
data3
[
0
][
0
].
length
];
int
d
=
0
;
...
...
src/objects/MotionNull.java
View file @
acab277e
...
...
@@ -10,7 +10,7 @@ public class MotionNull extends Motion {
}
@Override
public
Matrix
get
Vector
()
{
public
Matrix
get
Matrix
()
{
return
null
;
}
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment