[chronojump] jumpsDjOptimalFall.cs uses only jump of max height of each equal fall value



commit 3d9003a7636192352121416cedb7e5969e2604a2
Author: Xavier de Blas <xaviblas gmail com>
Date:   Fri Dec 20 16:34:10 2019 +0100

    jumpsDjOptimalFall.cs uses only jump of max height of each equal fall value

 src/jumpsDjOptimalFall.cs |  2 +-
 src/sqlite/jump.cs        | 20 +++++++++++++++++++-
 2 files changed, 20 insertions(+), 2 deletions(-)
---
diff --git a/src/jumpsDjOptimalFall.cs b/src/jumpsDjOptimalFall.cs
index cc32f40e..6f825b59 100644
--- a/src/jumpsDjOptimalFall.cs
+++ b/src/jumpsDjOptimalFall.cs
@@ -34,7 +34,7 @@ public class JumpsDjOptimalFall
        public void Calculate (int personID, int sessionID)
        {
                //1 get data
-                List<Jump> jump_l = SqliteJump.SelectDJa (personID, sessionID);
+                List<Jump> jump_l = SqliteJump.SelectDJa (personID, sessionID, true);
 
                //2 convert to list of Point
                //List<Point> point_l = new List<Point>();
diff --git a/src/sqlite/jump.cs b/src/sqlite/jump.cs
index efbdee0d..5dc177fe 100644
--- a/src/sqlite/jump.cs
+++ b/src/sqlite/jump.cs
@@ -333,7 +333,8 @@ class SqliteJump : Sqlite
          return jmp_l;
        }
 
-       public static List<Jump> SelectDJa (int pID, int sID)
+       //last boolean: on JumpsDja analyze graph, only show the higher of values of the same fall
+       public static List<Jump> SelectDJa (int pID, int sID, bool onlyHigherOfSameFall)
        {
          string personID = pID.ToString();
          string sessionID = sID.ToString();
@@ -344,6 +345,9 @@ class SqliteJump : Sqlite
          dbcmd.CommandText = "SELECT * FROM jump WHERE personID = " + personID +
          " AND sessionID = " + sessionID  +  " AND jump.type = \"DJa\" ";
 
+         if(onlyHigherOfSameFall)
+                 dbcmd.CommandText += " ORDER BY fall DESC, tv DESC";
+
          LogB.SQL(dbcmd.CommandText.ToString());
          dbcmd.ExecuteNonQuery();
 
@@ -355,6 +359,20 @@ class SqliteJump : Sqlite
          reader.Close();
          Sqlite.Close();
 
+         if(onlyHigherOfSameFall)
+         {
+                 List<Jump> jmp_l_purged = new List<Jump>();
+                 double lastFall = 0;
+                 foreach(Jump j in jmp_l)
+                 {
+                         if(j.Fall != lastFall)
+                                 jmp_l_purged.Add(j);
+
+                         lastFall = j.Fall;
+                 }
+                 return jmp_l_purged;
+         }
+
          return jmp_l;
        }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]