0031668: Visualization - WebGL sample doesn't work on Emscripten 1.39
[occt.git] / src / IMeshTools / IMeshTools_ModelAlgo.hxx
CommitLineData
7bd071ed 1// Created on: 2016-04-19
2// Copyright (c) 2016 OPEN CASCADE SAS
3// Created by: Oleg AGASHIN
4//
5// This file is part of Open CASCADE Technology software library.
6//
7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
12//
13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
15
16#ifndef _IMeshTools_ModelAlgo_HeaderFile
17#define _IMeshTools_ModelAlgo_HeaderFile
18
c2a25d52 19#include <Standard_ErrorHandler.hxx>
20#include <Standard_Failure.hxx>
7bd071ed 21#include <Standard_Transient.hxx>
22#include <Standard_Type.hxx>
23
24class IMeshData_Model;
25struct IMeshTools_Parameters;
26
27//! Interface class providing API for algorithms intended to update or modify discrete model.
28class IMeshTools_ModelAlgo : public Standard_Transient
29{
30public:
31
32 //! Destructor.
33 Standard_EXPORT virtual ~IMeshTools_ModelAlgo()
34 {
35 }
36
c2a25d52 37 //! Exceptions protected processing of the given model.
38 Standard_Boolean Perform (
7bd071ed 39 const Handle (IMeshData_Model)& theModel,
c2a25d52 40 const IMeshTools_Parameters& theParameters)
41 {
42 try
43 {
44 OCC_CATCH_SIGNALS
45
46 return performInternal (theModel, theParameters);
47 }
48 catch (Standard_Failure const&)
49 {
50 return Standard_False;
51 }
52 }
7bd071ed 53
54 DEFINE_STANDARD_RTTI_INLINE(IMeshTools_ModelAlgo, Standard_Transient)
55
56protected:
57
58 //! Constructor.
59 Standard_EXPORT IMeshTools_ModelAlgo()
60 {
61 }
c2a25d52 62
63 //! Performs processing of the given model.
64 Standard_EXPORT virtual Standard_Boolean performInternal (
65 const Handle (IMeshData_Model)& theModel,
66 const IMeshTools_Parameters& theParameters) = 0;
7bd071ed 67};
68
69#endif