The Higher Education and Research forge

Home My Page Projects Code Snippets Project Openings Complex Surface Machining Optimization
Summary Activity SCM

SCM Repository

authorJean-Max Redonnet <jean-max.redonnet@unniv-tlse3.fr>
Fri, 15 May 2020 15:47:40 +0000 (17:47 +0200)
committerJean-Max Redonnet <jean-max.redonnet@unniv-tlse3.fr>
Fri, 15 May 2020 15:47:40 +0000 (17:47 +0200)
src/org/ica/cosmo/zoning/Zone.java

index 5110bb6..4814e61 100644 (file)
@@ -46,6 +46,7 @@ import org.ica.cosmo.clustering.DataPoint;
 import org.ica.cosmo.machining.AveragePDE;
 import org.ica.cosmo.machining.PrefDirEvaluator;
 import org.ica.cosmo.machining.SinglePointPDE;
+import org.lgmt.dgl.surfaces.SurfacePoint;
 
 /**
  * Une classe pour représenter une zone.
@@ -158,7 +159,8 @@ public class Zone implements PropertyChangeListener {
         * Supprime une maille de la zone
         * 
         * <p>
-        * ATTENTION : Aucune vérification n'est faite sur la connexité de la zone. </p>
+        * ATTENTION : Aucune vérification n'est faite sur la connexité de la zone.
+        * </p>
         * 
         * @param meshUnit
         */
@@ -229,6 +231,25 @@ public class Zone implements PropertyChangeListener {
                return evalPrefDir();
        }
 
+       /**
+        * Calculates the center of the zone.
+        * 
+        * @return the center of the zone
+        */
+       public SurfacePoint getCenter() {
+               double umean = 0.0;
+               double vmean = 0.0;
+
+               for (UVMeshUnit m : meshMap.values()) {
+                       umean += m.getCenter().u;
+                       vmean += m.getCenter().v;
+               }
+               umean = umean / meshMap.size();
+               vmean = vmean / meshMap.size();
+
+               return new SurfacePoint(this.getSurfaceMap().surface, umean, vmean);
+       }
+
        /**
         * Vérifie la connexité entre this et la zone passée en paramètres
         *