Module Cad_drawing

type pt = Cad_geom.pt
type entity =
  1. | Line of pt * pt
  2. | Circle of pt * float
  3. | Arc of pt * float * float * float
  4. | Insert of string * pt * float * float
  5. | Dimension of pt * pt * pt
type ent = {
  1. entity : entity;
  2. layer : string;
}
type layer = {
  1. name : string;
  2. color : int;
  3. on : bool;
}
type t = {
  1. ents : (int * ent) list;
  2. layers : layer list;
  3. current : string;
  4. blocks : (string * (pt * ent list)) list;
  5. next : int;
}
val empty : t
val add : entity -> t -> t * int
val get : t -> int -> ent option
val remove : int list -> t -> t
val replace : int -> entity list -> t -> t
val ids : t -> int list
val layer : t -> string -> layer
val ensure_layer : string -> t -> t
val set_layer : layer -> t -> t
val transform : pt -> float -> float -> pt -> pt
val move_entity : pt -> entity -> entity
val pieces : t -> ent -> (Cad_geom.curve * string) list
val dimension_value : pt -> pt -> pt -> float
val dimension_lines : pt -> pt -> pt -> (pt * pt) list
val dimension_text : pt -> pt -> pt -> pt * string
val extents : t -> (pt * pt) option
val pick : t -> float -> pt -> int option
val window : t -> pt -> pt -> crossing:bool -> int list