# 3.3.3.47. NXcg_hexahedron_set¶

**Status**:

base class, extends NXobject

**Description**:

## Computational geometry description of a set of hexahedra in Euclidean space. ...

Computational geometry description of a set of hexahedra in Euclidean space.

The hexahedra do not have to be connected, can have different size, can intersect, and be rotated. This class can also be used to describe cuboids or cubes, axis-aligned or not. The class represents different access and description levels to offer both applied scientists and computational geometry experts to use the same base class but rather their specific view on the data:

Most simple many experimentalists wish to communicate dimensions/the size of specimens. In this case the alignment with axes is not relevant as eventually the only relevant information to convey is the volume of the specimen.

In many cases, take for instance an experiment where a specimen was taken from a specifically deformed piece of material, e.g. cold-rolled, channel-die deformed, the orientation of the specimen edges with the experiment coordinate system can be of very high relevance. Examples include to know which specimen edge is parallel to the rolling, the transverse, or the normal direction.

Sufficient to pinpoint the sample and laboratory/experiment coordinate system, the above-mentioned descriptions are not detailed enough though to create a CAD model of the specimen.

Therefore, groups and fields for an additional, computational-geometry- based view of the hexahedra is offered which serve different computational tasks: storage-oriented simple views or detailed topological/graph-based descriptions.

Hexahedra are important geometrical primitives, which are among the most frequently used elements in finite element meshing/modeling.

Hexahedra have to be non-degenerated, closed, and built of polygons which are not self-intersecting.

The term hexahedra will be used throughout this base class but includes the especially in engineering and more commonly used special cases, cuboid, cube, box, axis-aligned bounding box (AABB), optimal bounding box (OBB).

An axis-aligned bounding box is a common data object in computational science and codes to represent a cuboid whose edges are aligned with a coordinate system. As a part of binary trees these are important data objects for time as well as space efficient queries of geometric primitives in techniques like kd-trees.

An optimal bounding box is a common data object which provides the best tight fitting box about an arbitrary object. In general such boxes are rotated. Exact and substantially faster in practice approximate algorithms exist for computing optimal or near optimal bounding boxes for point sets.

**Symbols**:

The symbols used in the schema to specify e.g. dimensions of arrays.

c: The cardinality of the set, i.e. the number of hexahedra.

**Groups cited**:NXcg_face_list_data_structure, NXcg_half_edge_data_structure, NXcg_unit_normal_set, NXorientation_set, NXtransformations

**Structure**:

dimensionality: (optional) NX_POSINT {units=NX_UNITLESS}Obligatory value:

`3`

cardinality: (optional) NX_POSINT {units=NX_UNITLESS}

shape: (optional) NX_NUMBER (Rank: 2, Dimensions: [c, 3]) {units=NX_LENGTH}A qualitative description of each hexahedron/cuboid/cube/box.

length: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_LENGTH}## Qualifier how one edge is longer than all other edges of the hexahedra. ...

Qualifier how one edge is longer than all other edges of the hexahedra. Often the term length is associated with one edge being parallel to an axis of the coordinate system.

width: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_LENGTH}## Qualifier often used to describe the length of an edge within ...

Qualifier often used to describe the length of an edge within a specific coordinate system.

height: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_LENGTH}## Qualifier often used to describe the length of an edge within ...

Qualifier often used to describe the length of an edge within a specific coordinate system.

center: (optional) NX_NUMBER (Rank: 2, Dimensions: [c, 3]) {units=NX_LENGTH}## Position of the geometric center, which often is but not necessarily ...

Position of the geometric center, which often is but not necessarily has to be the center_of_mass of the hexahedrally-shaped sample/sample part.

volume: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_VOLUME}

surface_area: (optional) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_AREA}Total area (of all six faces) of each hexahedron.

face_area: (optional) NX_NUMBER (Rank: 2, Dimensions: [c, 6]) {units=NX_AREA}Area of each of the six faces of each hexahedron.

is_box: (optional) NX_BOOLEAN (Rank: 1, Dimensions: [c])## Specifies if the hexahedra represent cuboids or cubes eventually rotated ...

Specifies if the hexahedra represent cuboids or cubes eventually rotated ones but at least not too exotic six-faced polyhedra.

is_axis_aligned: (optional) NX_BOOLEAN (Rank: 1, Dimensions: [c])## Only to be used if is_box is present. In this case, this field describes ...

Only to be used if is_box is present. In this case, this field describes whether hexahedra are boxes whose primary edges are parallel to the axes of the Cartesian coordinate system.

identifier_offset: (optional) NX_INT {units=NX_UNITLESS}## Integer which specifies the first index to be used for distinguishing ...

Integer which specifies the first index to be used for distinguishing hexahedra. Identifiers are defined either implicitly or explicitly. For implicit indexing the identifiers are defined on the interval [identifier_offset, identifier_offset+c-1]. For explicit indexing the identifier array has to be defined.

The identifier_offset field can for example be used to communicate if the identifiers are expected to start from 1 (referred to as Fortran-/Matlab-) or from 0 (referred to as C-, Python-style index notation) respectively.

identifier: (optional) NX_INT (Rank: 1, Dimensions: [c]) {units=NX_UNITLESS}Integer used to distinguish hexahedra for explicit indexing.

TRANSFORMATIONS: (optional) NXtransformations## Reference to or definition of a coordinate system with ...

Reference to or definition of a coordinate system with which the qualifiers and mesh data are interpretable.

orientation: (optional) NXorientation_set

vertex_normal: (optional) NXcg_unit_normal_set

edge_normal: (optional) NXcg_unit_normal_set

face_normal: (optional) NXcg_unit_normal_set

hexahedra: (optional) NXcg_face_list_data_structure## A simple approach to describe the entire set of hexahedra when the ...

A simple approach to describe the entire set of hexahedra when the main intention is to store the shape of the hexahedra for visualization.

hexahedron: (optional) NXcg_face_list_data_structureDisentangled representations of the mesh of specific hexahedra.

hexahedron_half_edge: (optional) NXcg_half_edge_data_structure## Disentangled representation of the planar graph that each hexahedron ...

Disentangled representation of the planar graph that each hexahedron represents. Such a description simplifies topological processing or analyses of mesh primitive operations and neighborhood queries.

## Hypertext Anchors¶

List of hypertext anchors for all groups, fields, attributes, and links defined in this class.