Object3D Arc Quad

Generates a curved-edge quadrilateral mesh from four corner vertices, bending two opposite edges (v0→v1 and v2→v3) into arcs of adjustable radius, dihedral angle, and triangle count. Produces the triangulated mesh, the index list, and a wireframe of its silhouette edges.

The module takes a flat quad (four 3D vertices) and replaces its two opposite edges by circular arcs, then re-triangulates the resulting shape into a clean mesh. Each arc is independently:

  • convex when its radius factor is positive (arc bulges out, away from the quad centre),
  • concave when the radius factor is negative (arc bows in, inside the quad),

with an optional rotation around the chord (the dihedral angle) that lets the arc tilt out of the quad's plane — useful for line-array housings, curved cabinet faces, or any developable surface that needs to be visualised in 3D.

The module also produces a wireframe output that keeps only the silhouette edges (boundary edges + edges where adjacent faces are not coplanar), so the curved arcs can be drawn over the filled mesh without showing every internal triangulation line.

Note — vertex / radius arrays are read pair-wise (one value per arc). The first index drives the v0→v1 arc, the second the v2→v3 arc. Inputs shorter than 2 (for the per-arc arrays) or 12 (for vertices, i.e. 4 × XYZ) are silently ignored.

Settings

vertices

The four corners of the quad, flat-packed as X₀, Y₀, Z₀, X₁, Y₁, Z₁, X₂, Y₂, Z₂, X₃, Y₃, Z₃. The two arcs are built on edges v0→v1 and v2→v3. Range -1…+1. The array must be at least 12 long.

factor

Two-value array. Per-arc radius factor (related to the arc's sagitta vs. chord length):

  • > 0convex arc bulging outwards.
  • < 0concave arc bowing inwards. The sign is read, then the absolute value is used as the radius factor.
  • = 0 — the corresponding arc is disabled and the edge stays straight.

Range 0 – 2. A value of 1 gives a half-circle on the chord; values between 0 and 1 give shallow arcs; values above 1 push the arc closer to a deep bow.

dihedral angle

Two-value array, in degrees, range −360 – +360. Per-arc rotation of the arc plane around the chord. 0 keeps the arc in the plane of the quad; non-zero values tilt the arc out of the quad's plane, useful for curved enclosures where the arc isn't coplanar with the base quad.

When the matching factor is negative (concave arc), the dihedral angle is forced to 0 — concave arcs always stay in-plane.

num of triangles

Two-value integer array, range 1 – 1000 (no hard limit). Per-arc number of triangle segments used to discretise the arc. Higher values give smoother arcs at the cost of more triangles. The convex arc fan around the chord midpoint contains num of triangles triangles; the concave triangulation adds num of triangles − 1 extra vertices along the arc.

invert

When ON, all faces are inverted (winding reversed). The module already auto-detects when the generated faces are oriented against the source quad and re-inverts them — use this switch to flip the final orientation on top of that.

vertices

Flat array of mesh vertices, X, Y, Z, X, Y, Z, …. To be wired into object3d-primitive-triangles with indices.

indices

Flat triangle index list (0-based, three indices per triangle, no separator). Quads in the internal mesh are fan-triangulated; n-gons (≥ 5 vertices) are fan-triangulated from the first vertex.

lines

Flat array of point pairs X₀, Y₀, Z₀, X₁, Y₁, Z₁, … describing the silhouette wireframe: every boundary edge (edges adjacent to a single face) plus every edge where the two adjacent faces are not coplanar (normal · normal < 0.999). Edges sitting inside flat regions of the mesh are dropped. Wire into object3d-primitive-lines for diagnostic display.

Common Settings

info

show manual

Button. Opens the manual page of the selected object (or of its parent module for a control) in the web browser. If no page exists for this object, an error is traced in the trace panel.

For more details about information/help creation, see create-help-file.

description

Free multi-line text attached to the module, saved with the patch. It is only meant as an internal note for the patch designer: it is not displayed in the interface.

ID's

visible only in god mode, see setup-panel-tab-expert.

unique ID

Read-only, not saved. Current private numeric ID of the object, used internally to identify it (for example as the target of a bind ID).

preset ID

Read-only, not saved. Private ID used to store and recall the values of this control in presets.

recreate ID

Button. Generates a new unique ID, original ID and preset ID for the object. Use it if you experience difficulties in Polyphonic mode or if two objects share the same ID. Preset values and binds referring to the old IDs are lost.

Object Remote Address

absolute

Read-only, not saved. Absolute address of the object in the Usine objects tree, built from the workspace root. This is the address to use to reach the object from scripts, the objects panel or remote messages. Only shown for objects that are registered in the objects list. See objects-address.

local

Read-only, not saved. Address of the object relative to the current patch, valid inside that patch only. See objects-address.

user addr

Free user-defined address for the object (empty by default). When set, the object is also registered in the objects tree under this name, so it can be reached independently of its position in the workspace (the value is also reported in the mouse-over and mouse-down chunks). Changing it rebuilds the objects list. Only available on objects that support a user address. See objects-address.

See also

version 7.0.250121

Edit All Pages