X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_VTKUtils.h;h=7a6f4e6c529c02257315a85cce0f96eaa60ded56;hp=0250fb30acb39ef7dcf74c206ffcdd94fd31c9ab;hb=ea8a0289f14641c23d515de68aa4fdc24a6208ba;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce diff --git a/src/SMESHGUI/SMESHGUI_VTKUtils.h b/src/SMESHGUI/SMESHGUI_VTKUtils.h index 0250fb30a..7a6f4e6c5 100644 --- a/src/SMESHGUI/SMESHGUI_VTKUtils.h +++ b/src/SMESHGUI/SMESHGUI_VTKUtils.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -29,8 +29,11 @@ // SMESH includes #include "SMESH_SMESHGUI.hxx" +#include "SMESH_TypeDefs.hxx" +#include "SMDS_MeshNode.hxx" #include "SMESHGUI_Utils.h" + #include // SALOME KERNEL includes @@ -58,7 +61,15 @@ class SMESH_Actor; class SALOME_Actor; class vtkActor; - +class SMDS_Mesh; +class SMDS_MeshNode; +class gp_Pln; +class gp_Lin; +class gp_Dir; +class gp_Pnt2d; +class gp_Vec2d; +class Handle(Geom_Line); +class Handle(Geom_Plane); namespace SMESH { //---------------------------------------------------------------------------- @@ -161,6 +172,12 @@ SMESHGUI_EXPORT //---------------------------------------------------------------------------- SMESHGUI_EXPORT + int GetNameOfSelectedSortedNodes( SMDSAbs_EntityType, + SVTK_Selector*, + SMESH_Actor*, + int, + QString& ); +SMESHGUI_EXPORT int GetNameOfSelectedNodes( SVTK_Selector*, const Handle(SALOME_InteractiveObject)&, QString& ); @@ -206,6 +223,52 @@ SMESHGUI_EXPORT double theDist, double theBounds[6], double theOrigin[3] ); + + bool ComputeBounds( std::list theActorList, + double theBounds[6]); + + void PositionToDistance( double theBounds[6], + double theDirection[3], + double thePos[3], + double& theDist ); + typedef std::pair TNodeOfDist; + typedef std::pair > TNodeOfAngleAndDist, TNodeOfDistToPlaneAndDist; + typedef std::pair > TIdOfDistToPlaneAndDist; + bool CreatePlaneOnThreePoints( const gp_Pnt& thePoint1, + const gp_Pnt& thePoint2, + const gp_Pnt& thePoint3, + gp_Pln& thePlane ); + + void FindNbLowestPoint( std::list theList, gp_Pnt2d& theNode ); + bool IsNotPlaneIntersection( std::vector& theVector, + const gp_Pln& thePlane ); + bool GetCorrectSequenceOfId( std::vector& theVector ); + void GetCorrectSequenceTwoPlaneOfId( std::vector& thePlane1, + std::vector& thePlane2, + std::list& theResultListId ); + void GetSortedNodesOnPolygon( std::vector& theVectorOfNode, + std::list& theResultListId ); + void GetSortedNodesOnPyramid( std::vector& theVectorOfNode, + std::list& theResultListId ); + void GetSortedNodesOnPrism( std::vector& theVectorOfNode, + std::list& theResultListId ); + bool Get2BasePlane( std::vector& theVector, + std::vector& thePlane1, + std::vector& thePlane2); + bool GetNextCombination ( std::vector & theVector1, + std::vector & theVector2, + int theNbPoint ); + static bool CompareNodeOfAngleAndDist ( const TNodeOfAngleAndDist& first, + const TNodeOfAngleAndDist& second ); + static bool CompareNodeOfDist ( const TNodeOfAngleAndDist& first, + const TNodeOfAngleAndDist& second ); + static bool CompareDistOfPlane ( const TNodeOfDistToPlaneAndDist& first, + const TNodeOfDistToPlaneAndDist& second ); + static bool CompareDistOfPlaneById ( const TIdOfDistToPlaneAndDist& first, + const TIdOfDistToPlaneAndDist& second ); + static bool CompareDistForCorrectPlane ( const TNodeOfDist& first, + const TNodeOfDist& second ); + SMESHGUI_EXPORT void RemoveVisualObjectWithActors( const char* theEntry, bool fromAllViews = false ); };