/* extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity); GeosSTRtree = lgeo_geos_index:strtree_create(). <<>> */ static ERL_NIF_TERM strtree_create(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) { ERL_NIF_TERM eterm; GeosSTRtree_t **tree = \ enif_alloc_resource(GEOSSTRTREE_RESOURCE, sizeof(GeosSTRtree_t*)); size_t nodeCapacity = 10; GEOSSTRtree *rtree = GEOSSTRtree_create(nodeCapacity); ErlNifEnv *tree_env = enif_alloc_env(); *tree = (GeosSTRtree_t*) enif_alloc(sizeof(GeosSTRtree_t)); (*tree)->env = tree_env; (*tree)->tree = rtree; eterm = enif_make_resource(env, tree); enif_release_resource(tree); return eterm; }
StrTree::StrTree(int size) { geos_strTree_ = GEOSSTRtree_create(size); }