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::declaredgives the front end asminandmax.
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:assembleneeds no source to project it. - Cross
Own - One cross section set apart from the common widths.
- Cross
Widths - 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::surfacestranslates 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. - Envelope
Item - A grid’s envelope, cut along a section.
- Fill
Choice - 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
pxpixels centred on the node, incolouratalpha- 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…
- Object
Id - An object of a package, as the section view names it everywhere.
- Object
Row - 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. - Plan
Well - A well in the plan.
- Refused
- An object refused, and why - in English, naming what was refused.
- Section
- One section, drawn in
(s, z). - Section
Trace - A section’s trace in plan, as
crosses::tracescomputes it from the inputs - whatreadcuts along andassembleprojects on. - Show
- What a drawing shows, beyond the items.
- Surface
Cut - A surface or grid cut along one section.
- Surface
Read - 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. - Trace
Item - A surface, cut along a section.
- View
- What to draw and how - nothing here makes a new catalogue.
- Well
Item - A well, projected on a section.
- Well
Read - 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§
- Axis
Mode - 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.
- Joint
Kind - Where a well is marked - a front end’s
JointKind. - Label
Mode - How objects are named on a drawing.
- Mark
- A mark along a section’s abscissa.
- Marker
Place - 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.
- Section
Key - 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.
- Trace
Role - What a surface is, as its interpretation says - never its title.
- Unstratified
Style - 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 bycrate::style::declared, which a test holds against this enum. - Well
Colouring - How wells are coloured.
- Well
Kind - 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.