Subblocks
Stores sub-blocks of a block model.
Regular
Divide each parent block into a regular grid of count cells. Sub-blocks each covers a non-overlapping cuboid subset of that grid.
Sub-blocks are described by the parents and corners arrays. Those arrays must be the same length and matching rows in each describe the same sub-block. Each row in parents is an IJK index on the block model grid. Each row of corners is , all integers, that refer to the vertices of the sub-block grid within the parent block. For example:
-
A block with minimum size in the corner of the parent block would be (0, 0, 0, 1, 1, 1).
-
If the
subblock_countis (5, 5, 3) then a sub-block covering the whole parent would be (0, 0, 0, 5, 5, 3).
Sub-blocks must stay within their parent, must have a non-zero size in all directions, and should not overlap. Further restrictions can be applied by the mode field, see SubblockMode for details.
Fields
type"Regular"count: array of integer, 3 items-
The sub-block grid size.
Must be greater than zero in all directions. If
modeis octree then these must also be powers of two but they don't have to be equal. mode:SubblockModeor null- If present this further restricts the sub-block layout.
subblocks:Array- Array with
RegularSubblocktype storing the sub-block parent indices and corners relative to the sub-block grid within the parent.
Freeform
Divide each parent block into any number and arrangement of non-overlapping cuboid regions.
Sub-blocks are described by the parents and corners arrays. Each row in parents is an IJK index on the block model grid. Each row of corners is in floating-point and relative to the parent block, running from 0.0 to 1.0 across the parent. For example:
-
A sub-block covering the whole parent will be (0.0, 0.0, 0.0, 1.0, 1.0, 1.0) no matter the size of the parent.
-
A sub-block covering the bottom third of the parent block would be (0.0, 0.0, 0.0, 1.0, 1.0, 0.3333) and one covering the top two-thirds would be (0.0, 0.0, 0.3333, 1.0, 1.0, 1.0), again no matter the size of the parent.
Sub-blocks must stay within their parent, must have a non-zero size in all directions, and shouldn't overlap.
Fields
type"Freeform"subblocks:Array- Array with
FreeformSubblocktype storing the sub-block parent indices and corners relative to the parent.
Schema
{
"oneOf": [
{
"type": "object",
"required": [
"count",
"subblocks",
"type"
],
"properties": {
"count": {
"type": "array",
"items": {
"type": "integer",
"format": "uint32",
"minimum": 0.0
},
"maxItems": 3,
"minItems": 3
},
"mode": {
"anyOf": [
{
"$ref": "#/definitions/SubblockMode"
},
{
"type": "null"
}
]
},
"subblocks": {
"$ref": "#/definitions/Array"
},
"type": {
"type": "string",
"enum": [
"Regular"
]
}
}
},
{
"type": "object",
"required": [
"subblocks",
"type"
],
"properties": {
"subblocks": {
"$ref": "#/definitions/Array"
},
"type": {
"type": "string",
"enum": [
"Freeform"
]
}
}
}
]
}