#[allow(dead_code)]
#[cxx::bridge]
mod ffi {
unsafe extern "C++" {
include!("ferrocad_occt/include/fc_history.hxx");
type BRepAlgoAPI_Fuse = opencascade_sys::b_rep_algo_api::BRepAlgoAPI_Fuse;
type BRepAlgoAPI_Cut = opencascade_sys::b_rep_algo_api::BRepAlgoAPI_Cut;
type BRepAlgoAPI_Common = opencascade_sys::b_rep_algo_api::BRepAlgoAPI_Common;
type TopoDS_Shape = opencascade_sys::topo_ds::TopoDS_Shape;
type TopTools_IndexedMapOfShape = opencascade_sys::top_tools::TopTools_IndexedMapOfShape;
fn fc_indexed_map_find_index(
map: &TopTools_IndexedMapOfShape,
shape: &TopoDS_Shape,
) -> i32;
fn fc_brep_write(shape: &TopoDS_Shape, out: &mut Vec<u8>);
fn fc_brep_read(data: &[u8]) -> UniquePtr<TopoDS_Shape>;
fn fc_brep_fuse_modified(
op: Pin<&mut BRepAlgoAPI_Fuse>,
shape: &TopoDS_Shape,
out: Pin<&mut TopTools_IndexedMapOfShape>,
);
fn fc_brep_fuse_generated(
op: Pin<&mut BRepAlgoAPI_Fuse>,
shape: &TopoDS_Shape,
out: Pin<&mut TopTools_IndexedMapOfShape>,
);
fn fc_brep_fuse_is_deleted(op: Pin<&mut BRepAlgoAPI_Fuse>, shape: &TopoDS_Shape) -> bool;
fn fc_brep_cut_modified(
op: Pin<&mut BRepAlgoAPI_Cut>,
shape: &TopoDS_Shape,
out: Pin<&mut TopTools_IndexedMapOfShape>,
);
fn fc_brep_cut_generated(
op: Pin<&mut BRepAlgoAPI_Cut>,
shape: &TopoDS_Shape,
out: Pin<&mut TopTools_IndexedMapOfShape>,
);
fn fc_brep_cut_is_deleted(op: Pin<&mut BRepAlgoAPI_Cut>, shape: &TopoDS_Shape) -> bool;
fn fc_brep_common_modified(
op: Pin<&mut BRepAlgoAPI_Common>,
shape: &TopoDS_Shape,
out: Pin<&mut TopTools_IndexedMapOfShape>,
);
fn fc_brep_common_generated(
op: Pin<&mut BRepAlgoAPI_Common>,
shape: &TopoDS_Shape,
out: Pin<&mut TopTools_IndexedMapOfShape>,
);
fn fc_brep_common_is_deleted(
op: Pin<&mut BRepAlgoAPI_Common>,
shape: &TopoDS_Shape,
) -> bool;
}
}
pub(crate) use ffi::*;