Abstract definition of a shape. More...
| Topics | |
| Basic shapes | |
| Basic shapes: circle and rectangle | |
| CSG (Constructive Solid Geometry) shapes | |
| CSG operations: union, intersection and difference | |
| Polygon shape | |
| Polygonal shape (2D only) | |
| Surface mesh shape | |
| Shape defined by a surface mesh (3D only) | |
| Abstract type shape | |
| Abstract definition of a shape | |
Abstract definition of a shape.
This group provides a way to define geometric shapes with a combination of:
Example of a shape defined by CSG operations:
               ┌───────────┐
               │   union   │
               └───────────┘
            ╭───────╯ ╰───────╮
            │                 │
  ┌────────────┐           ┌────────────┐
  │   circle   │           │ difference │
  └────────────┘           └────────────┘
                        ╭───────╯ ╰───────╮
                        │                 │
                   ┌───────────┐      ┌───────────┐
                   │  polygon  │      │ rectangle │
                   └───────────┘      └───────────┘
Every shape derived from the abstract type t_shape. Any shapes implements three operations:
get_samples_inside: Check if a sample of point in a given cell lies in the shape. The sampling level is driven by the n_samples parameter.
Example of sampling for various sampling levels:
      n_samples = 0   n_samples = 1   n_samples = 2
        ┏━━━━━━━┓       ×━━━×━━━×       ×━×━×━×━×
        ┃       ┃       ┃       ┃       × × × × ×
        ┃   ×   ┃       ×   ×   ×       × × × × ×    ...
        ┃       ┃       ┃       ┃       × × × × ×
        ┗━━━━━━━┛       ×━━━×━━━×       ×━×━×━×━×