]> SALOME platform Git repositories - modules/geom.git/blobdiff - idl/GEOM_Gen.idl
Salome HOME
Implemented [bos #35094] [EDF] (2023-T1) X,Y,Z to U,V.
[modules/geom.git] / idl / GEOM_Gen.idl
index 89a1e777950838776ea50635979880ba45957b67..8d9e2ff2b79f562240b77adefe74d25572d2c7c4 100644 (file)
@@ -4745,6 +4745,34 @@ module GEOM
                                                      in GEOM_Object thePoint,
                                                      in GEOM_Object theDirection);
 
+    /*!
+     *  \brief Convert X,Y,Z points coordinates to UV parameters on the given surface.
+        \param theSurf the given face. It can be also a shell or a compound with one face.
+        \param theXYZlist float list of size 3*N where N is the number of points
+                          for which we want their U,V coordinates.
+                          If the user enters a list of size not divisible by 3
+                          an exception will be thrown.
+        \param theIsNormalized if True, the returned parameters will be in range [0, 1].
+        \return list of float of size 2*N.
+     */
+    ListOfDouble XYZtoUV(in GEOM_Object  theSurf,
+                         in ListOfDouble theXYZlist,
+                         in boolean      theIsNormalized);
+
+    /*!
+     *  \brief Convert UV parameters on the given surface to 3D points coordinates.
+        \param theSurf the given face. It can be also a shell or a compound with one face.
+        \param theUVlist float list of size 2*N where N is the number of points
+                         for which we want their X,Y,Z coordinates.
+                         If the user enters a list of non-even size
+                         an exception will be thrown.
+        \param theIsNormalized if True, the input parameters are expected to be in range [0, 1].
+        \return list of float of size 3*N.
+     */
+    ListOfDouble UVtoXYZ(in GEOM_Object  theSurf,
+                         in ListOfDouble theUVlist,
+                         in boolean      theIsNormalized);
+
     //! Methods and structure for implement CheckConformity tool
 
     /*!
@@ -4833,6 +4861,38 @@ module GEOM
     *  \param theShape Shape for update.
     */
     double UpdateTolerance(in GEOM_Object theShape);
+
+    /*!
+     *  \brief Get the calculator for the proximity value between the given shapes.
+     *  \param theShape1,theShape2 Shapes to find proximity.
+     *  \return The calculator object.
+     */
+    GEOM_Object ShapeProximityCalculator(in GEOM_Object theShape1, in GEOM_Object theShape2);
+
+    /*!
+     *  \brief Set number sample points to compute the coarse proximity.
+     *  \param theCalculator Proximity calculator.
+     *  \param theShape      Shape to be samples.
+     *  \param theNbSamples  Number of samples points.
+     */
+    void SetShapeSampling(in GEOM_Object theCalculator,
+                          in GEOM_Object theShape,
+                          in long theNbSamples);
+
+    /*!
+     *  \brief Compute coarse value of the proximity basing on the polygonal representation of shapes.
+     *  \param theCalculator Proximity calculator.
+     *  \return Proximity value.
+     */
+    double GetCoarseProximity(in GEOM_Object theCalculator);
+
+    /*!
+     *  \brief Compute precise value of the proximity basing on the exact shapes.
+     *  \param theCalculator Proximity calculator.
+     *  \return Proximity value.
+     */
+    double GetPreciseProximity(in GEOM_Object theCalculator);
+
   };
 
  // # GEOM_IGroupOperations: