-// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-// SMESH SMESH : GUI for SMESH component
-// File : libSMESH_Swig.h
-// Author : Nicolas REJNERI, Open CASCADE S.A.S.
-//
#ifndef LIBSMESH_SWIG_H
#define LIBSMESH_SWIG_H
#ifdef WIN32
#if defined SMESH_SWIG_EXPORTS || defined _libSMESH_Swig_EXPORTS
- #define SMESH_SWIG_EXPORT __declspec( dllexport )
+ #define SMESH_SWIG_EXPORT __declspec(dllexport)
#else
- #define SMESH_SWIG_EXPORT __declspec( dllimport )
+ #define SMESH_SWIG_EXPORT __declspec(dllimport)
#endif
#else
#define SMESH_SWIG_EXPORT
#endif
-// IDL includes
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SALOMEDS)
-
-//std includes
-#include <vector>
-
-#include <SVTK_Selection.h>
-
#include <SVTK_Selection.h>
+#include <vector>
+// See SMESH_Actor.h
typedef enum
- {
- Undefined = -1,
- Node = NodeSelection,
- Cell = CellSelection,
- EdgeOfCell = EdgeOfCellSelection,
- Edge = EdgeSelection,
- Face = FaceSelection,
- Volume = VolumeSelection,
- Actor = ActorSelection,
- Elem0D = Elem0DSelection,
- Ball = BallSelection
- } SelectionMode;
-
-typedef struct
{
- double r, g, b;
- int delta;
-} surfaceColorStruct;
-
-typedef struct
+ EntityNone = 0x00,
+ Entity0d = 0x01, // SMESH_Actor::e0DElements
+ EntityEdges = 0x02, // SMESH_Actor::eEdges
+ EntityFaces = 0x04, // SMESH_Actor::eFaces
+ EntityVolumes = 0x08, // SMESH_Actor::eVolumes
+ EntityBalls = 0x10, // SMESH_Actor::eBallElem
+ EntityAll = 0xff // SMESH_Actor::eAllEntity
+} EntityMode;
+
+// See SVTK_Selection.h
+typedef enum
{
- double r, g, b;
- int delta;
-} volumeColorStruct;
+ Undefined = -1,
+ Node = NodeSelection,
+ Cell = CellSelection,
+ EdgeOfCell = EdgeOfCellSelection,
+ Edge = EdgeSelection,
+ Face = FaceSelection,
+ Volume = VolumeSelection,
+ Actor = ActorSelection,
+ Elem0D = Elem0DSelection,
+ Ball = BallSelection
+} SelectionMode;
+
+// See SMESH_Actor.h
+typedef enum
+{
+ UndefinedMode = -1,
+ PointMode = 0, // SMESH_Actor::ePoint
+ EdgeMode, // SMESH_Actor::eEdge
+ SurfaceMode // SMESH_Actor::eSurface
+} DisplayMode;
-typedef struct
+struct ColorData
{
double r, g, b;
-} edgeColorStruct;
+public:
+ ColorData();
+};
-typedef struct
+struct BicolorData
{
double r, g, b;
-} nodeColorStruct;
+ int delta;
+public:
+ BicolorData();
+};
-struct actorAspect
+struct Properties
{
- surfaceColorStruct surfaceColor;
- volumeColorStruct volumeColor;
- edgeColorStruct edgeColor;
- nodeColorStruct nodeColor;
+ ColorData nodeColor;
+ int markerType;
+ int markerScale;
+
+ ColorData edgeColor;
+ int edgeWidth;
+
+ BicolorData surfaceColor;
+ BicolorData volumeColor;
+
+ ColorData elem0dColor;
+ int elem0dSize;
+
+ ColorData ballColor;
+ double ballScale;
+
+ ColorData outlineColor;
+ int outlineWidth;
+
+ ColorData orientationColor;
+ double orientationScale;
+ bool orientation3d;
+
+ double shrinkFactor;
double opacity;
+
+public:
+ Properties();
};
+typedef ColorData nodeColorStruct; // deprecated
+typedef ColorData edgeColorStruct; // deprecated
+typedef BicolorData surfaceColorStruct; // deprecated
+typedef BicolorData volumeColorStruct; // deprecated
+typedef Properties actorAspect; // deprecated
+
class SMESH_SWIG_EXPORT SMESH_Swig
{
public:
SMESH_Swig();
~SMESH_Swig();
-
- void Init( int );
- const char* AddNewMesh( const char* );
- const char* AddNewHypothesis( const char* );
- const char* AddNewAlgorithms( const char* );
+ // Initialization =============================================
+
+ void Init(); // deprecated
+
+ // Publishing =================================================
+
+ const char* publish(const char*, const char* = 0);
+ void rename(const char*, const char*);
- void SetShape( const char*, const char* );
+ const char* AddNewMesh(const char*, const char* = 0); // deprecated
+ const char* AddNewHypothesis(const char*, const char* = 0); // deprecated
+ const char* AddNewAlgorithm(const char*, const char* = 0); // deprecated
+ const char* AddNewAlgorithms(const char*, const char* = 0); // deprecated
- void SetHypothesis( const char*, const char* );
- void SetAlgorithms( const char*, const char* );
+ void SetShape(const char*, const char*); // deprecated
- void UnSetHypothesis( const char* );
+ void SetHypothesis(const char*, const char*); // deprecated
+ void SetAlgorithms(const char*, const char*); // deprecated
- const char* AddSubMesh( const char*, const char*, int );
- const char* AddSubMeshOnShape( const char*, const char*, const char*, int );
+ void UnSetHypothesis(const char*); // deprecated
- void CreateAndDisplayActor( const char* );
+ const char* AddSubMesh(const char*, const char*, int, const char* = 0); // deprecated
+ const char* AddSubMeshOnShape(const char*, const char*, const char*, int, const char* = 0); // deprecated
- void SetName( const char*, const char* );
+ void SetName(const char*, const char*); // deprecated
- void EraseActor( const char*, const bool allViewers = false );
+ void SetMeshIcon(const char*, const bool, const bool); // deprecated
- /*!
- * \brief Set mesh icon according to compute status
- * \param Mesh_Entry - entry of a mesh
- * \param isComputed - is mesh computed or not
- */
- void SetMeshIcon( const char*, const bool, const bool );
+ // Visualization =============================================
- actorAspect GetActorAspect(const char* Mesh_Entry, int viewId = 0 );
- void SetActorAspect( const actorAspect& actorPres, const char* Mesh_Entry, int viewId = 0 );
+ void display(const char*, int = 0, bool = true);
+ void erase(const char*, int = 0, bool = true);
+ void update(const char*);
- void setSelectionMode( SelectionMode selectionMode );
- std::vector<int> getSelected( const char* Mesh_Entry );
+ Properties properties(const char*, int = 0);
+ void setProperties(const char*, const Properties&, int = 0);
- // --------------------- for the test purposes -----------------------
- SelectionMode getSelectionMode();
- void select( const char *id, std::vector<int> ids, bool append = false );
- void select( const char *id, int id1, bool append = false );
+ bool nodesNumbering(const char*, int = 0);
+ void setNodesNumbering(const char*, bool, int = 0);
+ bool elementsNumbering(const char*, int = 0);
+ void setElementsNumbering(const char*, bool, int = 0);
+
+ DisplayMode displayMode(const char*, int = 0);
+ void setDisplayMode(const char*, DisplayMode, int = 0);
+
+ bool shrinkMode(const char*, int = 0);
+ void setShrinkMode(const char*, bool, int = 0);
+
+ double opacity(const char*, int = 0);
+ void setOpacity(const char*, double, int = 0);
+
+ bool isOrientationShown(const char*, int = 0);
+ void setOrientationShown(const char*, bool, int = 0);
+
+ int entitiesShown(const char*, int = 0);
+ void setEntitiesShown(const char*, int, int = 0);
+ bool isEntityShown(const char*, EntityMode, int = 0);
+ void setEntityShown(const char*, EntityMode, bool, int = 0);
+
+ void CreateAndDisplayActor(const char*); // deprecated
+ void EraseActor(const char*, const bool = false); // deprecated
+ void UpdateActor(const char* Mesh_Entry); // deprecated
+
+ actorAspect GetActorAspect(const char*, int = 0); // deprecated
+ void SetActorAspect(const actorAspect&, const char*, int = 0); // deprecated
+
+ // Selection =================================================
+
+ SelectionMode getSelectionMode(int = 0);
+ void setSelectionMode(SelectionMode, int = 0);
+ std::vector<int> getSelected(const char*);
+ std::vector<std::pair<int, int> > getSelectedEdgeOfCell(const char*);
+
+ void select(const char*, std::vector<int>, bool = false);
+ void select(const char*, int, bool = false);
+ void select(const char*, std::vector<std::pair<int,int> >, bool = false);
private:
- SALOMEDS::Study_var myStudy;
- SALOMEDS::StudyBuilder_var myStudyBuilder;
- SALOMEDS::SComponent_var mySComponentMesh;
+ void init();
+
};
#endif // LIBSMESH_SWIG_H