-// 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
virtual void SetMesh( const SMDS_Mesh* theMesh );
virtual double GetValue( long theElementId );
virtual double GetValue(const TSequenceOfXYZ& /*thePoints*/) { return -1.0;};
- void GetHistogram(int nbIntervals,
- std::vector<int>& nbEvents,
- std::vector<double>& funValues,
- const std::vector<smIdType>& elements,
- const double* minmax=0,
- const bool isLogarithmic = false);
+ void GetHistogram(int nbIntervals,
+ std::vector<int>& nbEvents,
+ std::vector<double>& funValues,
+ const std::vector<::smIdType>& elements,
+ const double* minmax=0,
+ const bool isLogarithmic = false);
bool IsApplicable( long theElementId ) const;
virtual bool IsApplicable( const SMDS_MeshElement* element ) const;
virtual SMDSAbs_ElementType GetType() const = 0;
void SetPrecision( const long thePrecision );
double Round( const double & value );
- bool GetPoints(const smIdType theId, TSequenceOfXYZ& theRes) const;
+ bool GetPoints(const ::smIdType theId, TSequenceOfXYZ& theRes) const;
static bool GetPoints(const SMDS_MeshElement* theElem, TSequenceOfXYZ& theRes);
protected:
const SMDS_Mesh* myMesh;
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;
+ };
/*
virtual void SetMesh( const SMDS_Mesh* theMesh );
virtual bool IsSatisfy( long theElementId );
virtual SMDSAbs_ElementType GetType() const;
- static bool IsFreeEdge( const SMDS_MeshNode** theNodes, const smIdType theFaceId );
+ static bool IsFreeEdge( const SMDS_MeshNode** theNodes, const ::smIdType theFaceId );
typedef long TElemId;
struct Border{
TElemId myElemId;
protected:
const SMDS_Mesh* myMesh;
- std::vector< smIdType > myMin;
- std::vector< smIdType > myMax;
+ std::vector< ::smIdType > myMin;
+ std::vector< ::smIdType > myMax;
TIDsMap myIds;
SMDSAbs_ElementType myType;
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:
SMDSAbs_ElementType myType;
TopoDS_Shape myShape;
double myToler;
+ double myU, myV; // result of node projection on EDGE or FACE
bool myAllNodesFlag;
TMeshModifTracer myMeshModifTracer;
public:
ConnectedElements();
//virtual Predicate* clone() const { return new ConnectedElements( *this ); }
- void SetNode( smIdType nodeID );
+ void SetNode( ::smIdType nodeID );
void SetPoint( double x, double y, double z );
- smIdType GetNode() const;
+ ::smIdType GetNode() const;
std::vector<double> GetPoint() const;
void SetType( SMDSAbs_ElementType theType );
//const std::set<long>& GetDomainIDs() const { return myOkIDs; }
private:
- smIdType myNodeID;
- std::vector<double> myXYZ;
- SMDSAbs_ElementType myType;
- TMeshModifTracer myMeshModifTracer;
+ ::smIdType myNodeID;
+ std::vector<double> myXYZ;
+ SMDSAbs_ElementType myType;
+ TMeshModifTracer myMeshModifTracer;
- void clearOkIDs();
- bool myOkIDsReady;
- std::set<smIdType> myOkIDs; // empty means that there is one domain
+ void clearOkIDs();
+ bool myOkIDsReady;
+ std::set<::smIdType> myOkIDs; // empty means that there is one domain
};
typedef boost::shared_ptr<ConnectedElements> ConnectedElementsPtr;