smesh/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.h

152 lines
4.4 KiB
C
Raw Normal View History

2016-03-18 22:10:20 +05:00
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2009-02-17 10:27:49 +05:00
//
2012-08-09 16:03:55 +06:00
// 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
2014-02-20 18:25:37 +06:00
// version 2.1 of the License, or (at your option) any later version.
2009-02-17 10:27:49 +05:00
//
2012-08-09 16:03:55 +06:00
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
2009-02-17 10:27:49 +05:00
//
2012-08-09 16:03:55 +06:00
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2009-02-17 10:27:49 +05:00
//
2012-08-09 16:03:55 +06:00
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
2009-02-17 10:27:49 +05:00
//
2012-08-09 16:03:55 +06:00
2009-02-17 10:27:49 +05:00
// 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
2012-08-09 16:03:55 +06:00
#if defined SMESH_SWIG_EXPORTS || defined _libSMESH_Swig_EXPORTS
2009-02-17 10:27:49 +05:00
#define SMESH_SWIG_EXPORT __declspec( dllexport )
#else
#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>
2017-12-19 20:56:16 +05:00
#include <utility>
#include <SVTK_Selection.h>
#include <SVTK_Selection.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
{
double r, g, b;
int delta;
} volumeColorStruct;
typedef struct
{
double r, g, b;
} edgeColorStruct;
typedef struct
{
double r, g, b;
} nodeColorStruct;
struct actorAspect
{
surfaceColorStruct surfaceColor;
volumeColorStruct volumeColor;
edgeColorStruct edgeColor;
nodeColorStruct nodeColor;
double opacity;
};
2009-02-17 10:27:49 +05:00
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* );
void SetShape( const char*, const char* );
void SetHypothesis( const char*, const char* );
void SetAlgorithms( const char*, const char* );
void UnSetHypothesis( const char* );
const char* AddSubMesh( const char*, const char*, int );
const char* AddSubMeshOnShape( const char*, const char*, const char*, int );
void CreateAndDisplayActor( const char* );
void SetName( const char*, const char* );
2012-10-08 17:56:59 +06:00
void EraseActor( const char*, const bool allViewers = false );
2017-12-19 20:56:16 +05:00
void UpdateActor( const char* Mesh_Entry );
2009-02-17 10:27:49 +05:00
/*!
* \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 );
actorAspect GetActorAspect(const char* Mesh_Entry, int viewId = 0 );
void SetActorAspect( const actorAspect& actorPres, const char* Mesh_Entry, int viewId = 0 );
void setSelectionMode( SelectionMode selectionMode );
std::vector<int> getSelected( const char* Mesh_Entry );
2017-12-19 20:56:16 +05:00
std::vector<std::pair<int, int> > getSelectedEdgeOfCell( const char* Mesh_Entry );
// --------------------- 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 );
2017-12-19 20:56:16 +05:00
void select( const char *id, std::vector<std::pair<int,int> >, bool apend = false );
2009-02-17 10:27:49 +05:00
private:
SALOMEDS::Study_var myStudy;
SALOMEDS::StudyBuilder_var myStudyBuilder;
SALOMEDS::SComponent_var mySComponentMesh;
};
#endif // LIBSMESH_SWIG_H