# 3. Installing the c-functions used to manipulate ecl_kw instances. # These functions are used when implementing the EclKW class, not # used outside this scope. cfunc = CWrapperNameSpace("ecl_kw") cfunc.load_grdecl = cwrapper.prototype( "c_void_p ecl_kw_fscanf_alloc_grdecl_dynamic__( FILE , char* , bool , int )" ) cfunc.fseek_grdecl = cwrapper.prototype( "bool ecl_kw_grdecl_fseek_kw(char* , bool , FILE )") cfunc.fprintf_grdecl = cwrapper.prototype( "void ecl_kw_fprintf_grdecl( ecl_kw , FILE )") cfunc.fprintf_data = cwrapper.prototype( "void ecl_kw_fprintf_data( ecl_kw , char* , FILE )") cfunc.alloc_new = cwrapper.prototype( "c_void_p ecl_kw_alloc( char* , int , ecl_type_enum )") cfunc.copyc = cwrapper.prototype("c_void_p ecl_kw_alloc_copy( ecl_kw )") cfunc.sub_copy = cwrapper.prototype( "c_void_p ecl_kw_alloc_sub_copy( ecl_kw , char*, int , int)") cfunc.slice_copyc = cwrapper.prototype( "c_void_p ecl_kw_alloc_slice_copy( ecl_kw , int , int , int )") cfunc.fread_alloc = cwrapper.prototype("c_void_p ecl_kw_fread_alloc( fortio )") cfunc.get_size = cwrapper.prototype("int ecl_kw_get_size( ecl_kw )") cfunc.get_fortio_size = cwrapper.prototype( "size_t ecl_kw_fortio_size( ecl_kw )") cfunc.get_type = cwrapper.prototype("ecl_type_enum ecl_kw_get_type( ecl_kw )") cfunc.iget_char_ptr = cwrapper.prototype( "char* ecl_kw_iget_char_ptr( ecl_kw , int )") cfunc.iset_char_ptr = cwrapper.prototype( "void ecl_kw_iset_char_ptr( ecl_kw , int , char*)") cfunc.iget_bool = cwrapper.prototype(
# 2. Creating a wrapper object around the libecl library, # registering the type map : ecl_kw <-> EclKW cwrapper = CWrapper(ECL_LIB) cwrapper.registerType( "ecl_kw" , EclKW ) # 3. Installing the c-functions used to manipulate ecl_kw instances. # These functions are used when implementing the EclKW class, not # used outside this scope. cfunc = CWrapperNameSpace("ecl_kw") cfunc.load_grdecl = cwrapper.prototype("c_void_p ecl_kw_fscanf_alloc_grdecl_dynamic__( FILE , char* , bool , int )") cfunc.fseek_grdecl = cwrapper.prototype("bool ecl_kw_grdecl_fseek_kw(char* , bool , FILE )") cfunc.fprintf_grdecl = cwrapper.prototype("void ecl_kw_fprintf_grdecl( ecl_kw , FILE )") cfunc.fprintf_data = cwrapper.prototype("void ecl_kw_fprintf_data( ecl_kw , char* , FILE )") cfunc.alloc_new = cwrapper.prototype("c_void_p ecl_kw_alloc( char* , int , ecl_type_enum )") cfunc.copyc = cwrapper.prototype("c_void_p ecl_kw_alloc_copy( ecl_kw )") cfunc.sub_copy = cwrapper.prototype("c_void_p ecl_kw_alloc_sub_copy( ecl_kw , char*, int , int)") cfunc.slice_copyc = cwrapper.prototype("c_void_p ecl_kw_alloc_slice_copy( ecl_kw , int , int , int )") cfunc.fread_alloc = cwrapper.prototype("c_void_p ecl_kw_fread_alloc( fortio )") cfunc.get_size = cwrapper.prototype("int ecl_kw_get_size( ecl_kw )") cfunc.get_fortio_size = cwrapper.prototype("size_t ecl_kw_fortio_size( ecl_kw )") cfunc.get_type = cwrapper.prototype("ecl_type_enum ecl_kw_get_type( ecl_kw )") cfunc.iget_char_ptr = cwrapper.prototype("char* ecl_kw_iget_char_ptr( ecl_kw , int )") cfunc.iset_char_ptr = cwrapper.prototype("void ecl_kw_iset_char_ptr( ecl_kw , int , char*)") cfunc.iget_bool = cwrapper.prototype("bool ecl_kw_iget_bool( ecl_kw , int)") cfunc.iset_bool = cwrapper.prototype("bool ecl_kw_iset_bool( ecl_kw , int, bool)") cfunc.iget_int = cwrapper.prototype("int ecl_kw_iget_int( ecl_kw , int )") cfunc.iget_double = cwrapper.prototype("double ecl_kw_iget_double( ecl_kw , int )") cfunc.iget_float = cwrapper.prototype("float ecl_kw_iget_float( ecl_kw , int)") cfunc.float_ptr = cwrapper.prototype("float* ecl_kw_get_float_ptr( ecl_kw )")
# See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html> # for more details. """ Create a polygon """ from ert.cwrap import CClass, CWrapper, CWrapperNameSpace from ert.geo import ERT_GEOMETRY_LIB class GeoPolygon(CClass): def __init__(self, points): c_ptr = cfunc.alloc_new() self.init_cobj(c_ptr, cfunc.free) for (xc, yc) in points: self.add_point(xc, yc) def add_point(self, xc, yc): cfunc.add_point(self, xc, yc) ################################################################# cwrapper = CWrapper(ERT_GEOMETRY_LIB) cwrapper.registerType("geo_polygon", GeoPolygon) cfunc = CWrapperNameSpace("geo_polygon") cfunc.alloc_new = cwrapper.prototype("c_void_p geo_polygon_alloc( )") cfunc.add_point = cwrapper.prototype( "void geo_polygon_add_point( geo_polygon , double , double )") cfunc.free = cwrapper.prototype("void geo_polygon_free( geo_polygon )")
# See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html> # for more details. """ Create a polygon """ from ert.cwrap import CClass, CWrapper, CWrapperNameSpace from ert.geo import ERT_GEOMETRY_LIB class GeoPolygon(CClass): def __init__(self, points): c_ptr = cfunc.alloc_new() self.init_cobj(c_ptr, cfunc.free) for (xc, yc) in points: self.add_point(xc, yc) def add_point( self, xc, yc ): cfunc.add_point(self, xc, yc) ################################################################# cwrapper = CWrapper(ERT_GEOMETRY_LIB) cwrapper.registerType("geo_polygon", GeoPolygon) cfunc = CWrapperNameSpace("geo_polygon") cfunc.alloc_new = cwrapper.prototype("c_void_p geo_polygon_alloc( )") cfunc.add_point = cwrapper.prototype("void geo_polygon_add_point( geo_polygon , double , double )") cfunc.free = cwrapper.prototype("void geo_polygon_free( geo_polygon )")