Salome HOME
Merge commit '6600bcec782fc8b6c72871fe6e08bd19a34a4e2b'
[modules/smesh.git] / src / Controls / SMESH_ControlsDef.hxx
index c1fe797bc34753f048b7728e8f44389ebdc52069..d6330024eff3049858e15b7204714fba124bfd33 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -404,6 +404,17 @@ namespace SMESH{
       virtual double GetBadRate( double Value, int nbNodes ) const;
       virtual SMDSAbs_ElementType GetType() const;
     };
+    
+    /*
+      Class       : ScaledJacobian
+      Description : Functor returning the ScaledJacobian as implemeted in VTK for volumetric elements
+    */
+    class SMESHCONTROLS_EXPORT ScaledJacobian: public virtual NumericalFunctor{
+    public:
+      virtual double GetValue( long theNodeId );
+      virtual double GetBadRate( double Value, int nbNodes ) const;
+      virtual SMDSAbs_ElementType GetType() const;
+    };
 
 
     /*
@@ -947,6 +958,7 @@ namespace SMESH{
                         const SMDSAbs_ElementType theType);
       bool    IsSatisfy (const SMDS_MeshElement* elem);
       bool    IsSatisfy (const SMDS_MeshNode* node, TopoDS_Shape* okShape=0);
+      void    GetParams( double & u, double & v ) const { u = myU; v = myV; }
 
     private:
 
@@ -963,6 +975,7 @@ namespace SMESH{
       SMDSAbs_ElementType        myType;
       TopoDS_Shape               myShape;
       double                     myToler;
+      double                     myU, myV; // result of node projection on EDGE or FACE
       bool                       myAllNodesFlag;
 
       TMeshModifTracer           myMeshModifTracer;