ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/s10k/XmlTools/multidimvar.cpp
Revision: 1073
Committed: Thu Oct 5 17:48:32 2017 UTC (8 years ago) by s10k
Content type: text/x-c++src
File size: 2130 byte(s)
Log Message:
added XML Tools latest version (2.0d) and s10k's common libs

File Contents

# Content
1 #include "multidimvar.h"
2
3 // Receives a string with a value with multiple dimensions separated by space
4 // Example of input "5 4 6". Variable with dim1=5, dim2=4, dim3=6.
5 MultiDimVar::MultiDimVar(QString multiDimValue)
6 {
7 this->multiDimValue=UtilXmlTools::qListDoubleFromSpacedString(multiDimValue);
8 }
9
10 // Inicializes a new MultiDimVar with the dimensions specified with all zero values
11 MultiDimVar::MultiDimVar(int dim){
12
13 for(int i=0; i<dim; i++){
14 this->multiDimValue.append(0);
15 }
16
17 }
18
19 // Sums 2 MultiDimVar values
20 MultiDimVar MultiDimVar::sum(const MultiDimVar &val1, const MultiDimVar &val2){
21 MultiDimVar result(val1.multiDimValue.size());
22
23 if(val1.multiDimValue.size()!=val2.multiDimValue.size()){
24 UtilXmlTools::displayErrorMessage("MultiDimVar sum","Error summing MultiDimVar, variables don't have the same dimensions.");
25 }
26
27 for(int i=0; i<result.multiDimValue.size(); i++){
28 result.multiDimValue[i]=val1.multiDimValue[i]+val2.multiDimValue[i];
29 }
30
31 return result;
32 }
33
34 // Subtract 2 MultiDimVar values
35 MultiDimVar MultiDimVar::sub(const MultiDimVar &val1, const MultiDimVar &val2){
36 MultiDimVar result(val1.multiDimValue.size());
37
38 if(val1.multiDimValue.size()!=val2.multiDimValue.size()){
39 UtilXmlTools::displayErrorMessage("MultiDimVar subtraction","Error subtracting MultiDimVar, variables don't have the same dimensions.");
40 }
41
42 for(int i=0; i<result.multiDimValue.size(); i++){
43 result.multiDimValue[i]=val1.multiDimValue[i]-val2.multiDimValue[i];
44 }
45
46 return result;
47 }
48
49 // Returns a string representation of this multidimensional value as string.
50 // Each dimension is separated by a space.
51 QString MultiDimVar::toString(){
52
53 QString result;
54
55 for(int i=0; i<this->multiDimValue.size()-1; i++){
56 result += QString::number(this->multiDimValue[i],'G',9) + " "; // G is the option used by onisplit
57 }
58
59 result += QString::number(this->multiDimValue[this->multiDimValue.size()-1],'G',9); // last one does not have a space at the end
60
61 return result;
62
63 }