1 // Created on: 2000-08-22 2 // Created by: Andrey BETENEV 3 // Copyright (c) 2000-2014 OPEN CASCADE SAS 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 _ShapeProcess_UOperator_HeaderFile 17 #define _ShapeProcess_UOperator_HeaderFile 18 19 #include <Standard.hxx> 20 #include <Standard_Type.hxx> 21 22 #include <ShapeProcess_OperFunc.hxx> 23 #include <ShapeProcess_Operator.hxx> 24 #include <Standard_Boolean.hxx> 25 class ShapeProcess_Context; 26 27 28 class ShapeProcess_UOperator; 29 DEFINE_STANDARD_HANDLE(ShapeProcess_UOperator, ShapeProcess_Operator) 30 31 //! Defines operator as container for static function 32 //! OperFunc. This allows user to create new operators 33 //! without creation of new classes 34 class ShapeProcess_UOperator : public ShapeProcess_Operator 35 { 36 37 public: 38 39 40 //! Creates operator with implementation defined as 41 //! OperFunc (static function) 42 Standard_EXPORT ShapeProcess_UOperator(const ShapeProcess_OperFunc func); 43 44 //! Performs operation and records changes in the context 45 Standard_EXPORT virtual Standard_Boolean Perform (const Handle(ShapeProcess_Context)& context) Standard_OVERRIDE; 46 47 48 49 50 DEFINE_STANDARD_RTTIEXT(ShapeProcess_UOperator,ShapeProcess_Operator) 51 52 protected: 53 54 55 56 57 private: 58 59 60 ShapeProcess_OperFunc myFunc; 61 62 63 }; 64 65 66 67 68 69 70 71 #endif // _ShapeProcess_UOperator_HeaderFile 72