lineEndRadius : Double- Totality: total
Visibility: export data HPos : Type Position of implicit hydrogen label.
These are placed in such a way that they interfere as little as
possible with the bonds leading to an atom's neighbours
Totality: total
Visibility: public export
Constructors:
NoH : HPos N : HPos W : HPos S : HPos E : HPos
record Text : Type -> Type A text label together with the text metrics we need to properly
center it around its position `pos`
Totality: total
Visibility: public export
Constructor: T : Nat -> String -> a -> TextDims -> Text a
Projections:
.dims : Text a -> TextDims .fsize : Text a -> Nat .pos : Text a -> a .text : Text a -> String
Hint: Bounded (Text (Point Id))
.fsize : Text a -> Nat- Totality: total
Visibility: public export fsize : Text a -> Nat- Totality: total
Visibility: public export .text : Text a -> String- Totality: total
Visibility: public export text : Text a -> String- Totality: total
Visibility: public export .pos : Text a -> a- Totality: total
Visibility: public export pos : Text a -> a- Totality: total
Visibility: public export .dims : Text a -> TextDims- Totality: total
Visibility: public export dims : Text a -> TextDims- Totality: total
Visibility: public export .h : Text a -> Double- Totality: total
Visibility: export .lh : Text a -> Double- Totality: total
Visibility: export .w : Text a -> Double- Totality: total
Visibility: export noLbl : Text () The empty text label
Totality: total
Visibility: exporttext : CoreDims => Bool -> String -> Text () Returns a `Label` for a string together with its `TextDims`
Totality: total
Visibility: exportradius : Text a -> Maybe Double Computes the radius of the background circle of a text label.
Totality: total
Visibility: exportadjEndPoints : Point Id -> Point Id -> Maybe Double -> Maybe Double -> Maybe (Point Id, Point Id) Adjusts the end point of an edge based on the radius of
their background labels.
Totality: total
Visibility: export.textPos : Text (Point Id) -> Point Id Position where the text label should be placed in the canvas
to correctly center it around the point given in its `pos` field
Totality: total
Visibility: exportrecord AtomLabels : Type -> Type Text labels for an atom's symbol, charge, mass number,
implicit hydrogen, and implicit hydrogen count
Totality: total
Visibility: public export
Constructor: AL : Text a -> Text a -> Text a -> Text a -> Text a -> AtomLabels a
Projections:
.charge : AtomLabels a -> Text a .hcount : AtomLabels a -> Text a .hydrogen : AtomLabels a -> Text a .mass : AtomLabels a -> Text a .symbol : AtomLabels a -> Text a
Hint: Bounded (AtomLabels (Point Id))
.symbol : AtomLabels a -> Text a- Totality: total
Visibility: public export symbol : AtomLabels a -> Text a- Totality: total
Visibility: public export .charge : AtomLabels a -> Text a- Totality: total
Visibility: public export charge : AtomLabels a -> Text a- Totality: total
Visibility: public export .mass : AtomLabels a -> Text a- Totality: total
Visibility: public export mass : AtomLabels a -> Text a- Totality: total
Visibility: public export .hydrogen : AtomLabels a -> Text a- Totality: total
Visibility: public export hydrogen : AtomLabels a -> Text a- Totality: total
Visibility: public export .hcount : AtomLabels a -> Text a- Totality: total
Visibility: public export hcount : AtomLabels a -> Text a- Totality: total
Visibility: public export labels : AtomLabels a -> List (Text a)- Totality: total
Visibility: export chargeLabel : Charge -> String- Totality: total
Visibility: export massLabel : Maybe MassNr -> String- Totality: total
Visibility: export hlabel : HCount -> String- Totality: total
Visibility: export hsubscript : HCount -> String- Totality: total
Visibility: export setPositions : HPos -> Point Id -> AtomLabels () -> AtomLabels (Point Id) Compute the exact positions of all parts of an atom's labels based
on the determined position of the hydrogen label (`HPos`), the position
of the atom in the molecule, and the metrics of all labels we want
to display.
Totality: total
Visibility: exportdata AbbrPos : Type- Totality: total
Visibility: public export
Constructors:
AE : AbbrPos AW : AbbrPos
abbrTextPos : CoreDims => AbbrPos -> Point Id -> Text () -> Text (Point Id)- Totality: total
Visibility: export updateElem : String -> Elem -> Elem Based on a string input (currently, a single character) and the current
element, selects the next element from all elements the symbol of which
starts with the input character.
This allows us to use keyboard shortcuts to change the element of the
atom over which we currently hover.
Totality: total
Visibility: exportupdateIsotope : String -> Isotope -> Isotope Uses `updateElem` to change the element of an isotope.
Totality: total
Visibility: exportmasses : Elem -> List (Maybe MassNr)- Totality: total
Visibility: export incIso : Isotope -> Isotope- Totality: total
Visibility: export decIso : Isotope -> Isotope- Totality: total
Visibility: export data Label : Type- Totality: total
Visibility: public export
Constructors:
Hidden : Label NoLabel : Point Id -> Label Abbreviation : Point Id -> Text (Point Id) -> Label Explicit : AtomLabels (Point Id) -> Label
Hint: CoreDims => Bounded Label
0 Labels : Nat -> Type- Totality: total
Visibility: public export trimToCircle : Point t -> Vector (transform t) -> Point t -> Double -> Double Given a starting point and a vector, tries to find the
first intersection of the resulting line segment with a
circle given by its center and radius.
Totality: total
Visibility: exportendpoints : CoreDims => Point Id -> Point Id -> Label -> Label -> Maybe (Point Id, Point Id) Computes the end points of a bond based on the atom positions and
atom labels so that the bonds do not overlap with the labels.
Totality: total
Visibility: exportabbrPos : CDIGraph k -> Fin k -> AbbrPos Relative position, where the label of an abbreviated group will be
placed.
Totality: total
Visibility: exportbestHPos : List Angle -> HPos Determines the position of the "H"-label depending on the angles of
bonds leading to neighbours
Totality: total
Visibility: exporthpos : CDIGraph k -> Fin k -> HPos Determines the position of the "H" label (if any)
relative to an atom's symbol. To do this, this computes the angles
of all bonds leading to an atom's neighbours and tries to find
a direction (north, west, south, or east) without any neighbouring bonds
Totality: total
Visibility: export