]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
Add conversions
authorEl Hadi Moussi <moussi@phimeca.com>
Wed, 7 Aug 2024 08:03:37 +0000 (10:03 +0200)
committerEl Hadi Moussi <moussi@phimeca.com>
Wed, 7 Aug 2024 08:03:37 +0000 (10:03 +0200)
src/ShapeRecogn/Areas.cxx

index f3d274fdf86c434b58b14da3131a5fc3ce0e35ca..4c90411680e2ec60d46f5b0425193f451c64d6c7 100644 (file)
@@ -48,9 +48,9 @@ void Areas::addNode(mcIdType areaId, mcIdType nodeId)
     Area &area = areas[areaId];
     area.nodeIds.push_back(nodeId);
     size_t nbNodes = area.nodeIds.size();
-    area.k1 = ((nbNodes - 1) * area.k1 + nodes->getK1(nodeId)) / nbNodes;
-    area.k2 = ((nbNodes - 1) * area.k2 + nodes->getK2(nodeId)) / nbNodes;
-    area.kdiff0 = ((nbNodes - 1) * area.kdiff0 + nodes->getKdiff0(nodeId)) / nbNodes;
+    area.k1 = ((double)(nbNodes - 1) * area.k1 + nodes->getK1(nodeId)) / (double)nbNodes;
+    area.k2 = ((double)(nbNodes - 1) * area.k2 + nodes->getK2(nodeId)) / (double)nbNodes;
+    area.kdiff0 = ((double)(nbNodes - 1) * area.kdiff0 + nodes->getKdiff0(nodeId)) / (double)nbNodes;
 }
 
 void Areas::cleanInvalidNodeAreas()
@@ -254,7 +254,7 @@ void Areas::computePlaneProperties(mcIdType areaId)
             area.normal[i] += normals[3 * nodeId + i];
     }
     for (size_t i = 0; i < 3; ++i)
-        area.normal[i] /= nbNodes;
+        area.normal[i] /= (double)nbNodes;
 }
 
 void Areas::computeSphereProperties(mcIdType areaId)
@@ -273,7 +273,7 @@ void Areas::computeSphereProperties(mcIdType areaId)
                 center[i] += nodeCoords[i] - area.radius * normals[3 * nodeId + i];
         }
         for (size_t i = 0; i < 3; ++i)
-            center[i] /= nbNodes;
+            center[i] /= (double)nbNodes;
     }
     area.center = center;
     area.radius = fabs(area.radius);
@@ -302,9 +302,9 @@ void Areas::computeCylinderProperties(mcIdType areaId)
     }
     // Axis point is the mean of the projected nodes
     for (size_t i = 0; i < 3; ++i)
-        area.axisPoint[i] /= nbNodes;
+        area.axisPoint[i] /= (double)nbNodes;
     // Radius of the cylinder is the mean of the approximate radius of each node
-    area.radius = fabs(area.radius / nbNodes);
+    area.radius = fabs(area.radius / (double)nbNodes);
     // Compute the axis of the cylinder
     area.axis = MathOps::computePCAFirstAxis(projectedNodes);
 }
@@ -331,7 +331,7 @@ void Areas::computeConeProperties(mcIdType areaId)
     }
     // Axis point is the mean of the projected nodes
     for (size_t i = 0; i < 3; ++i)
-        area.axisPoint[i] /= nbNodes;
+        area.axisPoint[i] /= (double)nbNodes;
     // Compute the axis of the cone
     area.axis = MathOps::computePCAFirstAxis(projectedNodes);
     double normAxis = MathOps::computeNorm(area.axis);
@@ -397,7 +397,7 @@ void Areas::computeConeProperties(mcIdType areaId)
         }
     }
     for (size_t j = 0; j < 3; ++j)
-        area.apex[j] /= q1_indices.size();
+        area.apex[j] /= (double)q1_indices.size();
 }
 
 void Areas::computeTorusProperties(mcIdType areaId)