Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:04:17

0001 // Created on: 1999-11-22
0002 // Created by: data exchange team
0003 // Copyright (c) 1999-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016 
0017 // Taken from Interface_Macros to avoid cyclic dependency from Shape Healing
0018 
0019 #ifndef MoniTool_Macros_HeaderFile
0020 #define MoniTool_Macros_HeaderFile
0021 
0022 // Interface General purpose Macros
0023 // Their use is not required, but it gets some program parts easier :
0024 // DownCasting, with or without Declaration
0025 
0026 //  DownCasting to a "Handle" already declared
0027 #define GetCasted(atype,start)  Handle(atype)::DownCast(start)
0028 
0029 //  DownCasting with Declaration :
0030 //  - Declares the variable result
0031 //  - then performs DownCasting
0032 //  - after it, result can be used as a new variable
0033 #define DeclareAndCast(atype,result,start) \
0034 Handle(atype) result = Handle(atype)::DownCast(start)
0035 
0036 #define FastCast(atype,result,start) \
0037  Handle(atype) result;  result = (*(Handle(atype)*))& start
0038 
0039 
0040 #endif