]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/FGColumnVector4.cpp
Updated to match changes in radiostack.[ch]xx
[flightgear.git] / src / FDM / JSBSim / FGColumnVector4.cpp
index 5a0e73868a98a3ca77c068659ecd9c560cde2103..8a0cd99f2bd82440663b44f9400d4e3146243c17 100644 (file)
@@ -29,31 +29,27 @@ CLASS IMPLEMENTATION
 
 FGColumnVector4::FGColumnVector4(void)
 {
-  data = new double[5];
   rowCtr = 1;
-  //cout << "Allocated: " <<  data << endl;
-  if (debug_lvl & 2) cout << "Instantiated: FGColumnVector4" << endl;
+  data[1]=0;data[2]=0;data[3]=0;data[4]=0;
+
+  Debug(0);
 }
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-FGColumnVector4::FGColumnVector4(int m)
+FGColumnVector4::FGColumnVector4(double A, double B, double C, double D)
 {
-  data = new double[5];
   rowCtr = 1;
   data[1]=0;data[2]=0;data[3]=0;data[4]=0;
-  //cout << "Allocated: " <<  data << endl;
-  if (debug_lvl & 2) cout << "Instantiated: FGColumnVector4" << endl;
+
+  Debug(0);
 }
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 FGColumnVector4::~FGColumnVector4(void)
 {
-  //cout << "Freed: " << data << endl;
-  delete[] data;
-  data = NULL;
-  if (debug_lvl & 2) cout << "Destroyed:    FGColumnVector4" << endl;
+  Debug(1);
 }
 
 
@@ -61,7 +57,6 @@ FGColumnVector4::~FGColumnVector4(void)
 
 FGColumnVector4::FGColumnVector4(const FGColumnVector4& b) 
 {
-  data = new double[5];
   data[1] = b.data[1];
   data[2] = b.data[2];
   data[3] = b.data[3];
@@ -69,22 +64,18 @@ FGColumnVector4::FGColumnVector4(const FGColumnVector4& b)
 
   rowCtr = 1;
 
-  if (debug_lvl & 2) cout << "Instantiated: FGColumnVector4" << endl;
+  Debug(0);
 }
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 FGColumnVector4 FGColumnVector4::operator=(const FGColumnVector4& b) 
 {
-  data = new double[5];
   data[1] = b.data[1];
   data[2] = b.data[2];
   data[3] = b.data[3];
   data[4] = b.data[4];
   rowCtr = 1;
-
-  if (debug_lvl & 2) cout << "Instantiated: FGColumnVector4" << endl;
-  
   return *this;
 }
 
@@ -210,7 +201,7 @@ FGColumnVector4 operator*(const double scalar, const FGColumnVector4& C)
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-float FGColumnVector4::Magnitude(void)
+double FGColumnVector4::Magnitude(void)
 {
   double num;
 
@@ -246,34 +237,6 @@ FGColumnVector4 FGColumnVector4::Normalize(void)
   return *this;
 }
 
-/* //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-FGColumnVector4 FGColumnVector4::operator*(const FGColumnVector4& V)
-{
-  FGColumnVector4 Product;
-  
-  Product(1) = data[2] * V(3) - data[3] * V(2);
-  Product(2) = data[3] * V(1) - data[1] * V(3);
-  Product(3) = data[1] * V(2) - data[2] * V(1);
-
-  return Product;
-} */
-
-
-/* //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-void FGColumnVector4::operator*=(const FGColumnVector4& V)
-{
-  double a,b,c;
-  a = data[1]; b=data[2]; c=data[3];
-  
-  data[1] = b * V(3) - c * V(2);
-  data[2] = c * V(1) - a * V(3);
-  data[3] = a * V(2) - b * V(1);
-
-}
- */
-
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 FGColumnVector4 FGColumnVector4::multElementWise(const FGColumnVector4& V)
@@ -290,13 +253,6 @@ FGColumnVector4 FGColumnVector4::multElementWise(const FGColumnVector4& V)
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-void FGColumnVector4::Debug(void)
-{
-    //TODO: Add your source code here
-}
-
-//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
 ostream& operator<<(ostream& os, FGColumnVector4& col)
 {
   os << col(1) << " , " << col(2) << " , " << col(3) << " , " << col(4);
@@ -305,11 +261,53 @@ ostream& operator<<(ostream& os, FGColumnVector4& col)
 
 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
-FGColumnVector4& FGColumnVector4::operator<<(const float ff)
+FGColumnVector4& FGColumnVector4::operator<<(const double ff)
 {
   data[rowCtr] = ff;
-  if (++rowCtr > 4 )
-      rowCtr = 1;
+  if (++rowCtr > 4) rowCtr = 1;
   return *this;
 }
+/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
+//    The bitmasked value choices are as follows:
+//    unset: In this case (the default) JSBSim would only print
+//       out the normally expected messages, essentially echoing
+//       the config files as they are read. If the environment
+//       variable is not set, debug_lvl is set to 1 internally
+//    0: This requests JSBSim not to output any messages
+//       whatsoever.
+//    1: This value explicity requests the normal JSBSim
+//       startup messages
+//    2: This value asks for a message to be printed out when
+//       a class is instantiated
+//    4: When this value is set, a message is displayed when a
+//       FGModel object executes its Run() method
+//    8: When this value is set, various runtime state variables
+//       are printed out periodically
+//    16: When set various parameters are sanity checked and
+//       a message is printed out when they go out of bounds
+
+void FGColumnVector4::Debug(int from)
+{
+  if (debug_lvl <= 0) return;
+
+  if (debug_lvl & 1) { // Standard console startup message output
+  }
+  if (debug_lvl & 2 ) { // Instantiation/Destruction notification
+    if (from == 0) cout << "Instantiated: FGColumnVector4" << endl;
+    if (from == 1) cout << "Destroyed:    FGColumnVector4" << endl;
+  }
+  if (debug_lvl & 4 ) { // Run() method entry print for FGModel-derived objects
+  }
+  if (debug_lvl & 8 ) { // Runtime state variables
+  }
+  if (debug_lvl & 16) { // Sanity checking
+  }
+  if (debug_lvl & 64) { // Sanity checking
+    if (from == 0) { // Constructor
+      cout << IdSrc << endl;
+      cout << IdHdr << endl;
+    }
+  }
+}
+