Non-symmetric partitioning – first indexing ideas

Symmetric design apply to grid-constructed park, but not to beam and grow-based (Voronoi) region partitioning.

We still require some a form of addressing when placing the elements within these regions. We need to find a way to index the edges and corners.

Common functionality

The non-symmetric methods accept a list of points as a parameter, which are the centres of the circles completely within the boundary (or just to say that the centres are of a certain distance from the boundary).

Beam Partitioning (RayCast)

Edge Indexing

  • Edge 0 will be the first edge from the centre (that does not lay on the centre)
    • Which one of the two will be determined by the orientation (default is clockwise).
  • Corner 0 will be the vertex that coincides with the centre region and the  Edge 0.
  • if Centre is non-zero, there will be an Edge that represents the centre boundary


Because symmetry can still be preserved but WITHIN a single region of consideration.

  • Edge indexing starts with 1, and -1 in the other direction (counter-clockwise).
  • Edge 0 exists in case Centre is non-zero (except for the widths of the paths)
  • Similar indexing strategy for vertices.
Adaptable shapes

Further partitioning needs to consider the boundary of the region. Two options are possible:

  • Match the the sides that are not parallel to the boundary/edge that is uses as a reference.
  • Keep the shape, e.g. preserve the angles and scale the are to match the available space.
    • NEW IDEA have a new rule that would fit in the rectangular shape into the available space
Multiple Centres

It should (may?) be possible to have multiple centres in the rule. The problem arises of how to connect the centres with paths, building a walk-graph.

Centres Connection

The rule should be independent of the number of centres and number of corners. Instead we must have some guidance how to build the graph.

Some ideas:

  • Cast the ray to the nearest corner only. OR
    • cast the ray only if the corner is not connected (or inverse cast corner -> centre)
    • cast ray to all corners, without intersecting other paths (HOW??)
  • Have a sub-rule on how to join the centres some options
    1. Leave as it is – completely disconnected
    2. Join in a loop or closed path
    3. A loop without a single edge – a tree; chosen at random
    4. Join pairs of centres
    5. Join opposites – intersections? What if there is an odd number of vertices? How to select two equally weighted opposites?
    6. Completely random?

Grow Region Partitioning

Symmetrical placement is even less applicable to this method because it is much harder to predict the number of edges that the region is going to have.

Counting the index perhaps would not make much sense (why?) Instead the designs should be developed taking into the account the inner and outer edges and vertices.

 Quad Mapping

Although the subregion may have more then four corners, it is often necessary to map a region to a quad.


  • Non-convex beam paritioning – remove paths that are casted to the outside area
  • More formal specifications for terms
    • opposite centres in the sides
    • delauney triangulation – connects into a graph
    • planar graph – must be plannar