2026-04-25 14:33:11 -04:00

1 line
6.8 KiB
JavaScript

rd_("CcPosition of the new node (must lie on the segment).AeNew position, meters.kEndpoint B.AgLook up a parcel by id.AoNumber of vertices in the ring.AbNumber of parcels.CeConstruct a polygon from a vertex ring. Validates I1.lEmpty graph.AoWrap a building implementation.DdSVG visualization (spec \xc2\xa78). Feature-gated behind <code>viz</code>.A`All other edges.CiEdge is adjacent to the frontage edge in the parcel ring.CiSigned area; always non-negative for a valid CCW polygon.AaParcel area, m\xc2\xb2.AoReturns the argument unchanged.0000000000000000kEndpoint A.BaCalls <code>U::from(self)</code>.0000000000000000ChIterate over <code>(ParcelId, &amp;Parcel)</code> pairs.lTarget node.AaRoad being split.AcRoad being deleted.AgDeterministic RNG seed.ChA bounded face \xe2\x80\x94 the geometric block to be subdivided.BmTarget parcel depth <code>d_p</code>, meters.DcEdges as iterator of <code>(start, end)</code> pairs in ring order.CfTyped errors returned by the public API. (Spec \xc2\xa76.3.)BhHalf-edge / DCEL graph (spec \xc2\xa72.3, D2).ChRoad associated with each boundary edge, parallel to \xe2\x80\xa6CbStable identifier for a graph node (intersection).A`A single parcel.BeStable identifier for a road segment.CgBlock extraction from the half-edge graph (spec \xc2\xa72.4).CaTunable parameters for subdivision. (Spec \xc2\xa73.1.)BjRoad-edit deformation pipeline (spec \xc2\xa74).BkInward offsetting of polygons (spec \xc2\xa72.5).CmParcel data model and subdivision/edit entry points (spec \xe2\x80\xa6CjA simple polygon stored as a CCW ring of vertices. The \xe2\x80\xa6BjParcels newly created during regeneration.ClTrue iff the building still fits inside <code>parcel</code>.ClForward to the inner <code>BuildingFitCheck::fits_in</code>.AoLook up a parcel mutably by id.ChPlanar road graph in half-edge / DCEL form (spec \xc2\xa72.3).CkBoundary polygon, CCW, with vertex (i) at the origin of \xe2\x80\xa6mPolygon view.CiSimple polygon type with validation and basic operations.CoSetback from road edge into the block, <code>d_s</code> meters.CmArea tolerance, m\xc2\xb2. Used for \xe2\x80\x9cpolygon has zero area\xe2\x80\x9d \xe2\x80\xa6CkGeometric tolerance, meters. Used for \xe2\x80\x9ctwo points are \xe2\x80\xa6BlKind of a parcel boundary edge (spec \xc2\xa73.2).BiEdge lies coincident with a road segment.BnMove the position of an existing intersection.BlStable identifier for a <code>Parcel</code>.CjA road-network mutation that may rearrange surrounding \xe2\x80\xa6CoTwo consecutive vertices coincide within <code>EPS_GEOM</code>.DhInsert a new node at <code>pos</code>. The graph allows two nodes withinBiInsert a road between two existing nodes.BlVertex positions of the block boundary, CCW.CmCentroid (area-weighted), well-defined for non-degenerate \xe2\x80\xa6BaEdge classification (spec \xc2\xa73.2).CeCheck whether this polygon contains a point (open \xe2\x80\xa6BbParcels that survived deformation.Dh2-D geometric primitives operating in <code>glam::DVec2</code> (f64) \xe2\x80\xa6CkWhether the ring is empty. Always false for a valid polygonAmTrue if there are no parcels.BaPadding around the scene, meters.BlMinimum parcel area <code>A_min</code>, m\xc2\xb2.ClValidate that every parameter is in a sane range. Called \xe2\x80\xa6BiAccess the vertex ring (CCW, not closed).CdVertex ring of the parcel polygon (CCW, not closed).ClAngular tolerance, radians. Used for \xe2\x80\x9cthree points are \xe2\x80\xa6BnA block boundary failed to close into a cycle.DaThe output of <code>subdivide_all</code>: a stable-ID indexed \xe2\x80\xa6CkPlanar road graph. Maintains a half-edge data structure \xe2\x80\xa6AlParcels removed by the edit.BnFrontage-first block subdivision (spec \xc2\xa73.1).Bi|signed area| &lt; <code>EPS_AREA</code>.BeWhether to draw vertex dots on roads.CiEdge classification, parallel to <code>vertices()</code>.BgNumber of nodes currently in the graph.EdRegularity slider <code>rho</code> in <code>[0, 1]</code>. 0 = raw, 1 = OBB-snapped.BnOBB-snapping regularization pass (spec \xc2\xa73.3).BgNumber of roads currently in the graph.BfSVG rendering of a graph + parcel set.CeOutcome buckets for an edit application (spec \xc2\xa74.2).C`Errors returned by <code>apply_road_edit</code>.BkRe-subdivision of an affected block failed.BfParcels whose block was re-subdivided.ClSigned area of a closed ring. Positive for CCW, negative \xe2\x80\xa6DdValidation errors returned by <code>Polygon::new</code> and friends.CfSplit a road segment by inserting a new node along it.BiWhether a building is currently attached.BlMinimum frontage <code>w_min</code>, meters.CeRender the whole scene to an SVG <code>String</code>.AfDelete a road segment.BmInsert a new road between two existing nodes.Ca<code>SubdivisionParams</code> failed validation.AkKnobs for the SVG renderer.CdReserved for features deferred to a later milestone.CiThe road or node referenced by the edit no longer exists.AoEndpoints of the frontage edge.DbThe single road this parcel faces (invariant <strong>I2</strong>).DdPosition of a node, or <code>None</code> if the ID has been deleted.FbCompute the inward offset of <code>poly</code> by <code>distance</code>. Returns <code>None</code>D`Subdivide every bounded face of <code>graph</code> into parcels.DdOwning wrapper around a <code>BuildingFitCheck</code>. Stored on \xe2\x80\xa6CmThe road graph is not planar at the given node (two roads \xe2\x80\xa6AfFewer than 3 vertices.BlDepth variance <code>sigma_d</code>, meters.BoTarget frontage width <code>w_f</code>, meters.DiIterate over <code>(RoadId, NodeId, NodeId)</code> triples \xe2\x80\x94 useful \xe2\x80\xa6CeRoad-frontage-based parcel subdivision for a city \xe2\x80\xa6DgThree consecutive vertices are collinear within <code>EPS_ANGLE</code>.ClA geometric operation (offset, intersection, \xe2\x80\xa6) failed \xe2\x80\xa6FbApply <code>edit</code> to <code>graph</code> and update <code>parcels</code> to match the new \xe2\x80\xa6CfAttach a building. Returns the previously-attached \xe2\x80\xa6CnClip this polygon against the closed half-plane defined by \xe2\x80\xa6CkDetach (and return) the currently attached building, if \xe2\x80\xa6AhFrontage length, meters.ChIterate over the parcel ids within a single road\xe2\x80\x99s \xe2\x80\xa6CjTrait that downstream code implements for buildings to \xe2\x80\xa6CnThe edit produced an inconsistent graph; the operation was \xe2\x80\xa6AdPolygon edges cross.CaErrors that can arise during initial subdivision.AaPixels per meter.CdBuild twin/next/prev pointers and extract faces. \xe2\x80\xa6CbParameters controlling frontage-first subdivision.CeFrontage width variance <code>sigma_f</code>, meters.CjMaximum side-edge rotation before a deformed parcel is \xe2\x80\xa6CnRegenerate every figure listed in spec \xc2\xa78.1, writing into \xe2\x80\xa6EaCompute the inward offset of <code>poly</code> by <code>distance</code> while \xe2\x80\xa6CiProper segment-segment intersection: true iff the two \xe2\x80\xa6")