Skip to main content

Module model

Module model 

Source
Expand description

The data of the section view - what goes in, what one package gives, what the calculation answers, and how it is looked at.

ADR-0015: this file is the contract between the modules (read, assemble, crosses, layout, svg): they are written against these types, never against each other’s internals.

Everything here is serde, in camelCase, because it travels: to the front end (the catalogue and the view), into the SVG’s metadata (the inputs and the view), and back from it (energyml profile --from-svg).

Modules§

style_limits
The ranges the style parameters are held to - the same numbers crate::style::declared gives the front end as min and max.

Structs§

Asked
What one package is asked for.
Catalogue
What the calculation answers: everything that is drawn, in data.
Contribution
What one package gives the calculation (read::contribution). Pure data in the scene’s system: assemble needs no source to project it.
CrossOwn
One cross section set apart from the common widths.
CrossWidths
A cross section’s two pairs of widths: its length either side of the long section, and its corridor for projecting wells.
CutSource
A point of a cut, as a place on an edge of the surface: node a + t·(node b − node a), the nodes numbered as the representation numbers them - the running count of its patches’ nodes, holes included, which is what a per-node colour buffer of the representation indexes (colour_buffer). The reader drops non-finite nodes before it cuts; read::surfaces translates its indices back (Prepared::nodes), cross-audited on a real model by a downstream test. An end clipped to the trace’s window lies inside a triangle, not on an edge: it takes the nearer crossing’s edge, a fraction of a triangle at the two ends of a span.
EnvelopeItem
A grid’s envelope, cut along a section.
FillChoice
Which way a surface’s colour fills.
Inputs
What the calculation is made of. Two catalogues built from equal inputs are the same catalogue: this is the cache key, and the SVG’s metadata.
Interval
A stratigraphic interval along a well, in MD.
Joint
A mark along a painted well: a stretch of px pixels centred on the node, in colour at alpha - alpha 0 is a gap.
Marker
A named marker put on a set of objects: what the legend of markers lists. Which shapes and places exist is declared by crate::markers::declared; the front end builds its form from that list.
Note
Something the calculation noticed: cross sections running through each other, a disagreement at a crossing…
ObjectId
An object of a package, as the section view names it everywhere.
ObjectRow
An object asked for, and what became of it.
Paint
A colour per node of an object, as the scene shows it.
Plan
The view from above, in local coordinates: the first point of the trace is (0, 0) - no six-figure coordinates in the SVG.
PlanWell
A well in the plan.
Refused
An object refused, and why - in English, naming what was refused.
Section
One section, drawn in (s, z).
SectionTrace
A section’s trace in plan, as crosses::traces computes it from the inputs - what read cuts along and assemble projects on.
Show
What a drawing shows, beyond the items.
SurfaceCut
A surface or grid cut along one section.
SurfaceRead
One surface or grid, read and cut along every section.
System
A horizontal coordinate system: an EPSG code and the unit its coordinates are written in - energyml_domain::reproject::System, serialisable.
TraceItem
A surface, cut along a section.
View
What to draw and how - nothing here makes a new catalogue.
WellItem
A well, projected on a section.
WellRead
One well, read: its head and its path in the scene’s system, its strata.
Window
A window: [s or x min, s or x max] × [z or y min, z or y max].

Enums§

AxisMode
What the horizontal axis of a section says.
Blend
How a paint is read between two nodes - a front end’s Blend.
Crosses
The cross sections of a long section.
CutShape
The cut of a surface, or of a grid’s envelope.
Item
What is drawn on a section.
JointKind
Where a well is marked - a front end’s JointKind.
LabelMode
How objects are named on a drawing.
Mark
A mark along a section’s abscissa.
MarkerPlace
Where a marker sits on an object. Serialised as { "kind": "md", "value": 1500 }.
Outcome
What became of an object asked for.
RowKind
What kind of object a row is.
SectionKey
Which section: the long one, or a cross section by index.
Side
Which side of a section a well’s head is on, read along the section.
Target
What a view draws.
TraceRole
What a surface is, as its interpretation says - never its title.
UnstratifiedStyle
How the portions of a well that no interval covers are drawn. Serialised as { "kind": "dashed", "colour": "#999999", "dash": 6, "gap": 4 }; the kinds and their parameters are declared by crate::style::declared, which a test holds against this enum.
WellColouring
How wells are coloured.
WellKind
Whether a well object is a frame or a trajectory.

Constants§

FORMAT
The version of the catalogue’s format. A reader meeting another one refuses by name rather than guessing what a field meant.
MAX_WIDTH_PX
The widest line a view may ask for, pixels.
NEUTRAL_COLOUR
The neutral grey a well’s own line is drawn in when nothing gives it a colour.

Functions§

object_key
The key of an object, from its store and uri: the two joined by a NUL.