extern crate rgmsh;
use rgmsh::{Gmsh, GmshResult, model::{PointTag, CurveTag}};
fn main() -> GmshResult<()> {
let mut gmsh = Gmsh::initialize()?;
let mut model = gmsh.create_native_model("t1")?;
let lc = 1e-2;
let p1: PointTag = model.add_point_with_lc(0., 0., 0., lc)?;
let p2 = model.add_point_with_lc(0.1, 0., 0., lc)?;
let p3 = model.add_point_with_lc(0.1, 0.3, 0., lc)?;
let p4 = model.add_point_with_lc(0., 0.3, 0., lc)?;
let l1: CurveTag = model.add_line(p1, p2)?;
let l2 = model.add_line(p3, p2)?;
let l3 = model.add_line(p3, p4)?;
let l4 = model.add_line(p4, p1)?;
let cl = model.add_curve_loop(&[l4, l1, -l2, l3])?;
let pl = model.add_plane_surface(cl)?;
model.generate_mesh(3)?;
let gui = gmsh.run_gui()?;
Ok(())
}