DGtal 1.4.0
|
Aim: This class is a model of CPreCellularGridSpaceND. It represents the cubical grid as a cell complex, whose cells are defined as an array of integers. The topology of the cells is defined by the parity of the coordinates (even: closed, odd: open). More...
#include <DGtal/topology/KhalimskyPreSpaceND.h>
Data Structures | |
struct | AnyCellCollection |
struct | CellMap |
struct | SCellMap |
struct | SurfelMap |
Public Types | |
using | Integer = TInteger |
Arithmetic ring induced by (+,-,*) and Integer numbers. | |
using | Cell = KhalimskyPreCell< dim, Integer > |
using | SCell = SignedKhalimskyPreCell< dim, Integer > |
using | Surfel = SCell |
using | Sign = bool |
using | DirIterator = PreCellDirectionIterator< dim, Integer > |
using | Point = PointVector< dim, Integer > |
using | Vector = PointVector< dim, Integer > |
using | Space = SpaceND<dim, Integer> |
using | PreCellularGridSpace = KhalimskyPreSpaceND<dim, Integer> |
using | Cells = AnyCellCollection<Cell> |
using | SCells = AnyCellCollection<SCell> |
using | CellSet = std::set<Cell> |
Preferred type for defining a set of Cell(s). | |
using | SCellSet = std::set<SCell> |
Preferred type for defining a set of SCell(s). | |
using | SurfelSet = std::set<SCell> |
Preferred type for defining a set of surfels (always signed cells). | |
Static Public Member Functions | |
Pre-cell creation services (static methods) | |
static Cell | uCell (const Point &kp) |
From the Khalimsky coordinates of a cell, builds the corresponding unsigned pre-cell. | |
static Cell | uCell (Point p, const Cell &c) |
From the digital coordinates of a point in Zn and a cell type, builds the corresponding unsigned pre-cell. | |
static SCell | sCell (const Point &kp, Sign sign=POS) |
From the Khalimsky coordinates of a cell and a sign, builds the corresponding signed pre-cell. | |
static SCell | sCell (Point p, const SCell &c) |
From the digital coordinates of a point in Zn and a signed cell type, builds the corresponding signed pre-cell. | |
static Cell | uSpel (Point p) |
From the digital coordinates of a point in Zn, builds the corresponding pre-spel (pre-cell of maximal dimension). | |
static SCell | sSpel (Point p, Sign sign=POS) |
From the digital coordinates of a point in Zn, builds the corresponding pre-spel (pre-cell of maximal dimension). | |
static Cell | uPointel (Point p) |
From the digital coordinates of a point in Zn, builds the corresponding pre-pointel (pre-cell of dimension 0). | |
static SCell | sPointel (Point p, Sign sign=POS) |
From the digital coordinates of a point in Zn, builds the corresponding pre-pointel (pre-cell of dimension 0). | |
Read accessors to pre-cells | |
static Integer | uKCoord (const Cell &c, Dimension k) |
Return its Khalimsky coordinate along [k]. | |
static Integer | uCoord (const Cell &c, Dimension k) |
Return its digital coordinate along [k]. | |
static const Point & | uKCoords (const Cell &c) |
Return its Khalimsky coordinates. | |
static Point | uCoords (const Cell &c) |
Return its digital coordinates. | |
static Integer | sKCoord (const SCell &c, Dimension k) |
Return its Khalimsky coordinate along [k]. | |
static Integer | sCoord (const SCell &c, Dimension k) |
Return its digital coordinate along [k]. | |
static const Point & | sKCoords (const SCell &c) |
Return its Khalimsky coordinates. | |
static Point | sCoords (const SCell &c) |
Return its digital coordinates. | |
static Sign | sSign (const SCell &c) |
Return its sign. | |
Write accessors to pre-cells | |
static void | uSetKCoord (Cell &c, Dimension k, Integer i) |
Sets the [k]-th Khalimsky coordinate of [c] to [i]. | |
static void | sSetKCoord (SCell &c, Dimension k, Integer i) |
Sets the [k]-th Khalimsky coordinate of [c] to [i]. | |
static void | uSetCoord (Cell &c, Dimension k, Integer i) |
Sets the [k]-th digital coordinate of [c] to [i]. | |
static void | sSetCoord (SCell &c, Dimension k, Integer i) |
Sets the [k]-th digital coordinate of [c] to [i]. | |
static void | uSetKCoords (Cell &c, const Point &kp) |
Sets the Khalimsky coordinates of [c] to [kp]. | |
static void | sSetKCoords (SCell &c, const Point &kp) |
Sets the Khalimsky coordinates of [c] to [kp]. | |
static void | uSetCoords (Cell &c, const Point &kp) |
Sets the digital coordinates of [c] to [kp]. | |
static void | sSetCoords (SCell &c, const Point &kp) |
Sets the digital coordinates of [c] to [kp]. | |
static void | sSetSign (SCell &c, Sign s) |
Sets the sign of the pre-cell. | |
Conversion signed/unsigned | |
static SCell | signs (const Cell &p, Sign s) |
Creates a signed pre-cell from an unsigned one and a given sign. | |
static Cell | unsigns (const SCell &p) |
Creates an unsigned pre-cell from a signed one. | |
static SCell | sOpp (const SCell &p) |
Creates the signed pre-cell with the inverse sign of [p]. | |
Pre-cell topology services | |
static Integer | uTopology (const Cell &p) |
Return the topology word of [p]. | |
static Integer | sTopology (const SCell &p) |
Return the topology word of [p]. | |
static Dimension | uDim (const Cell &p) |
Return the dimension of the pre-cell [p]. | |
static Dimension | sDim (const SCell &p) |
Return the dimension of the pre-cell [p]. | |
static bool | uIsSurfel (const Cell &b) |
Return 'true' if [b] is a surfel (spans all but one coordinate). | |
static bool | sIsSurfel (const SCell &b) |
Return 'true' if [b] is a surfel (spans all but one coordinate). | |
static bool | uIsOpen (const Cell &p, Dimension k) |
Return 'true' if [p] is open along the direction [k]. | |
static bool | sIsOpen (const SCell &p, Dimension k) |
Return 'true' if [p] is open along the direction [k]. | |
Iterator services for cells | |
static DirIterator | uDirs (const Cell &p) |
Given an unsigned pre-cell [p], returns an iterator to iterate over each coordinate the cell spans. (A spel spans all coordinates; a surfel all but one, etc). | |
static DirIterator | sDirs (const SCell &p) |
Given a signed pre-cell [p], returns an iterator to iterate over each coordinate the cell spans. (A spel spans all coordinates; a surfel all but one, etc). | |
static DirIterator | uOrthDirs (const Cell &p) |
Given an unsigned pre-cell [p], returns an iterator to iterate over each coordinate the cell does not span. (A spel spans all coordinates; a surfel all but one, etc). | |
static DirIterator | sOrthDirs (const SCell &p) |
Given a signed pre-cell [p], returns an iterator to iterate over each coordinate the cell does not span. (A spel spans all coordinates; a surfel all but one, etc). | |
static Dimension | uOrthDir (const Cell &s) |
Given an unsigned pre-surfel [s], returns its orthogonal direction (ie, the coordinate where the surfel is closed). | |
static Dimension | sOrthDir (const SCell &s) |
Given a signed pre-surfel [s], returns its orthogonal direction (ie, the coordinate where the surfel is closed). | |
Unsigned pre-cell geometry services | |
static Cell | uGetIncr (Cell p, Dimension k) |
Return the same element as [p] except for the incremented coordinate [k]. | |
static bool | uIsMax (const Cell &p, Dimension k) |
Useful to check if you are going out of the space. | |
static bool | uIsInside (const Cell &p, Dimension k) |
Useful to check if you are going out of the space. | |
static bool | uIsInside (const Cell &p) |
Useful to check if you are going out of the space. | |
static Cell | uGetDecr (Cell p, Dimension k) |
Return the same element as [p] except for an decremented coordinate [k]. | |
static bool | uIsMin (const Cell &p, Dimension k) |
Useful to check if you are going out of the space. | |
static Cell | uGetAdd (Cell p, Dimension k, Integer x) |
Return the same element as [p] except for a coordinate [k] incremented with x. | |
static Cell | uGetSub (Cell p, Dimension k, Integer x) |
Return the same element as [p] except for a coordinate [k] decremented with x. | |
static Cell | uTranslation (Cell p, const Vector &vec) |
Add the vector [vec] to [p]. | |
static Cell | uProjection (Cell p, const Cell &bound, Dimension k) |
Return the projection of [p] along the [k]th direction toward [bound]. | |
static void | uProject (Cell &p, const Cell &bound, Dimension k) |
Projects [p] along the [k]th direction toward [bound]. | |
static bool | uNext (Cell &p, const Cell &lower, const Cell &upper) |
Increment the pre-cell [p] to its next position (as classically done in a scanning). | |
Signed pre-cell geometry services | |
static SCell | sGetIncr (SCell p, Dimension k) |
Return the same element as [p] except for the incremented coordinate [k]. | |
static bool | sIsMax (const SCell &p, Dimension k) |
Useful to check if you are going out of the space. | |
static bool | sIsInside (const SCell &p, Dimension k) |
Useful to check if you are going out of the space. | |
static bool | sIsInside (const SCell &p) |
Useful to check if you are going out of the space. | |
static SCell | sGetDecr (SCell p, Dimension k) |
Return the same element as [p] except for an decremented coordinate [k]. | |
static bool | sIsMin (const SCell &p, Dimension k) |
Useful to check if you are going out of the space. | |
static SCell | sGetAdd (SCell p, Dimension k, Integer x) |
Return the same element as [p] except for a coordinate [k] incremented with x. | |
static SCell | sGetSub (SCell p, Dimension k, Integer x) |
Return the same element as [p] except for a coordinate [k] decremented with x. | |
static SCell | sTranslation (SCell p, const Vector &vec) |
Add the vector [vec] to [p]. | |
static SCell | sProjection (SCell p, const SCell &bound, Dimension k) |
Return the projection of [p] along the [k]th direction toward [bound]. | |
static void | sProject (SCell &p, const SCell &bound, Dimension k) |
Projects [p] along the [k]th direction toward [bound]. | |
static bool | sNext (SCell &p, const SCell &lower, const SCell &upper) |
Increment the pre-cell [p] to its next position (as classically done in a scanning). | |
Neighborhood services | |
static Cells | uNeighborhood (const Cell &cell) |
Computes the 1-neighborhood of the pre-cell [c] and returns it. | |
static SCells | sNeighborhood (const SCell &cell) |
Computes the 1-neighborhood of the pre-cell [c] and returns it. | |
static Cells | uProperNeighborhood (const Cell &cell) |
Computes the proper 1-neighborhood of the pre-cell [c] and returns it. | |
static SCells | sProperNeighborhood (const SCell &cell) |
Computes the proper 1-neighborhood of the pre-cell [c] and returns it. | |
static Cell | uAdjacent (const Cell &p, Dimension k, bool up) |
Return the adjacent element to [p] along axis [k] in the given direction and orientation. | |
static SCell | sAdjacent (const SCell &p, Dimension k, bool up) |
Return the adjacent element to [p] along axis [k] in the given direction and orientation. | |
Incidence services | |
static Cell | uIncident (Cell c, Dimension k, bool up) |
Return the forward or backward unsigned pre-cell incident to [c] along axis [k], depending on [up]. | |
static SCell | sIncident (SCell c, Dimension k, bool up) |
Return the forward or backward signed pre-cell incident to [c] along axis [k], depending on [up]. | |
static Cells | uLowerIncident (const Cell &c) |
Return the pre-cells directly low incident to c. | |
static Cells | uUpperIncident (const Cell &c) |
Return the pre-cells directly up incident to c. | |
static SCells | sLowerIncident (const SCell &c) |
Return the signed pre-cells directly low incident to c. | |
static SCells | sUpperIncident (const SCell &c) |
Return the signed pre-cells directly up incident to c. | |
static Cells | uFaces (const Cell &c) |
Return the proper faces of [c] (chain of lower incidence). | |
static Cells | uCoFaces (const Cell &c) |
Return the proper cofaces of [c] (chain of upper incidence). | |
static bool | sDirect (const SCell &p, Dimension k) |
Return 'true' if the direct orientation of [p] along [k] is in the positive coordinate direction. | |
static SCell | sDirectIncident (SCell p, Dimension k) |
Return the direct incident pre-cell of [p] along [k] (the incident pre-cell along [k]) | |
static SCell | sIndirectIncident (SCell p, Dimension k) |
Return the indirect incident pre-cell of [p] along [k] (the incident cell along [k] whose sign is negative). | |
static Point | interiorVoxel (const SCell &c) |
For a given surfel ((n-1)-signed cell), returns its interior voxel (point in Z^d given by the direct incident n-cell to the given cell). | |
static Point | exteriorVoxel (const SCell &c) |
For a given surfel ((n-1)-signed cell), returns its exterior voxel (point in Z^d given by the indirect incident n-cell to the given cell). | |
DGtal interface | |
static void | selfDisplay (std::ostream &out) |
Writes/Displays the object on an output stream. | |
static constexpr bool | isValid () |
Checks the validity/consistency of the object. | |
Static Public Attributes | |
static constexpr const Dimension | dimension = dim |
static constexpr const Dimension | DIM = dim |
static constexpr const Sign | POS = true |
static constexpr const Sign | NEG = false |
Private Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CInteger< TInteger >)) | |
Integer must be signed to characterize a ring. | |
Static Private Member Functions | |
Internals | |
static void | uAddFaces (Cells &faces, const Cell &c, Dimension axis) |
Used by uFaces for computing incident faces. | |
static void | uAddCoFaces (Cells &cofaces, const Cell &c, Dimension axis) |
Used by uCoFaces for computing incident cofaces. | |
Aim: This class is a model of CPreCellularGridSpaceND. It represents the cubical grid as a cell complex, whose cells are defined as an array of integers. The topology of the cells is defined by the parity of the coordinates (even: closed, odd: open).
Description of template class 'KhalimskyPreSpaceND'
This cellular grid space has no bounds (depending on the Integer type) and thus only provides static methods.
dim | the dimension of the digital space. |
TInteger | the Integer class used to specify the arithmetic computations (default type = int32). |
Definition at line 378 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::Cell = KhalimskyPreCell< dim, Integer > |
Definition at line 388 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::Cells = AnyCellCollection<Cell> |
Definition at line 417 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::CellSet = std::set<Cell> |
Preferred type for defining a set of Cell(s).
Definition at line 422 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::DirIterator = PreCellDirectionIterator< dim, Integer > |
Definition at line 393 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::Integer = TInteger |
Arithmetic ring induced by (+,-,*) and Integer numbers.
Definition at line 385 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::Point = PointVector< dim, Integer > |
Definition at line 396 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::PreCellularGridSpace = KhalimskyPreSpaceND<dim, Integer> |
Definition at line 400 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::SCell = SignedKhalimskyPreCell< dim, Integer > |
Definition at line 389 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::SCells = AnyCellCollection<SCell> |
Definition at line 418 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::SCellSet = std::set<SCell> |
Preferred type for defining a set of SCell(s).
Definition at line 425 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::Sign = bool |
Definition at line 392 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::Space = SpaceND<dim, Integer> |
Definition at line 399 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::Surfel = SCell |
Definition at line 391 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::SurfelSet = std::set<SCell> |
Preferred type for defining a set of surfels (always signed cells).
Definition at line 428 of file KhalimskyPreSpaceND.h.
using DGtal::KhalimskyPreSpaceND< dim, TInteger >::Vector = PointVector< dim, Integer > |
Definition at line 397 of file KhalimskyPreSpaceND.h.
|
private |
Integer must be signed to characterize a ring.
|
static |
For a given surfel ((n-1)-signed cell), returns its exterior voxel (point in Z^d given by the indirect incident n-cell to the given cell).
c | any signed pre-cell. |
|
static |
For a given surfel ((n-1)-signed cell), returns its interior voxel (point in Z^d given by the direct incident n-cell to the given cell).
c | any signed pre-cell. |
|
staticconstexpr |
Checks the validity/consistency of the object.
|
static |
Return the adjacent element to [p] along axis [k] in the given direction and orientation.
p | any pre-cell. |
k | the coordinate that is changed. |
up | if 'true' the orientation is forward along axis [k], otherwise backward. |
|
static |
From the Khalimsky coordinates of a cell and a sign, builds the corresponding signed pre-cell.
kp | an integer point (Khalimsky coordinates of cell). |
sign | the sign of the cell (either POS or NEG). |
|
static |
From the digital coordinates of a point in Zn and a signed cell type, builds the corresponding signed pre-cell.
p | an integer point (digital coordinates of cell). |
c | another cell defining the topology and sign. |
|
static |
Return its digital coordinate along [k].
c | any signed pre-cell. |
k | any valid dimension. |
|
static |
Return its digital coordinates.
c | any signed pre-cell. |
|
static |
Return the dimension of the pre-cell [p].
p | any signed pre-cell. |
|
static |
Return 'true' if the direct orientation of [p] along [k] is in the positive coordinate direction.
The direct orientation in a direction allows to go from positive incident pre-cells to positive incident pre-cells. This means that
is always true.
p | any signed pre-cell. |
k | any coordinate. |
|
static |
Return the direct incident pre-cell of [p] along [k] (the incident pre-cell along [k])
p | any signed pre-cell. |
k | any coordinate. |
|
static |
Given a signed pre-cell [p], returns an iterator to iterate over each coordinate the cell spans. (A spel spans all coordinates; a surfel all but one, etc).
Example:
p | any signed pre-cell. |
|
static |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
|
static |
Return the same element as [p] except for a coordinate [k] incremented with x.
p | any pre-cell. |
k | the coordinate that is changed. |
x | the increment. |
|
static |
Return the same element as [p] except for an decremented coordinate [k].
p | any pre-cell. |
k | the coordinate that is changed. |
|
static |
Return the same element as [p] except for the incremented coordinate [k].
p | any pre-cell. |
k | the coordinate that is changed. |
|
static |
Return the same element as [p] except for a coordinate [k] decremented with x.
p | any pre-cell. |
k | the coordinate that is changed. |
x | the decrement. |
|
static |
Creates a signed pre-cell from an unsigned one and a given sign.
p | any unsigned pre-cell. |
s | a sign. |
|
static |
Return the forward or backward signed pre-cell incident to [c] along axis [k], depending on [up].
c | any signed pre-cell. |
k | any coordinate. |
up | if 'true' the orientation is forward along axis [k], otherwise backward. |
|
static |
Return the indirect incident pre-cell of [p] along [k] (the incident cell along [k] whose sign is negative).
p | any signed pre-cell. |
k | any coordinate. |
|
static |
Useful to check if you are going out of the space.
Only for compatibility reasons.
p | any pre-cell. |
|
static |
Useful to check if you are going out of the space.
Only for compatibility reasons.
p | any pre-cell. |
k | the tested coordinate. |
|
static |
Useful to check if you are going out of the space.
Only for compatibility reasons.
p | any pre-cell. |
k | the tested coordinate. |
|
static |
Useful to check if you are going out of the space.
Only for compatibility reasons.
p | any pre-cell. |
k | the tested coordinate. |
|
static |
Return 'true' if [p] is open along the direction [k].
p | any signed pre-cell. |
k | any direction. |
|
static |
Return 'true' if [b] is a surfel (spans all but one coordinate).
b | any signed pre-cell. |
|
static |
Return its Khalimsky coordinate along [k].
c | any signed pre-cell. |
k | any valid dimension. |
|
static |
Return its Khalimsky coordinates.
c | any signed pre-cell. |
|
static |
Return the signed pre-cells directly low incident to c.
c | any signed pre-cell. |
|
static |
Computes the 1-neighborhood of the pre-cell [c] and returns it.
It is the set of pre-cells with same topology that are adjacent to [c].
cell | the signed pre-cell of interest. |
|
static |
Increment the pre-cell [p] to its next position (as classically done in a scanning).
Example:
p | any pre-cell. |
lower | the lower bound. |
upper | the upper bound. |
sTopology(p) == sTopology(lower) == sTopology(upper)
.
|
static |
Creates the signed pre-cell with the inverse sign of [p].
p | any signed pre-cell. |
|
static |
Given a signed pre-surfel [s], returns its orthogonal direction (ie, the coordinate where the surfel is closed).
s | a signed pre-surfel |
|
static |
Given a signed pre-cell [p], returns an iterator to iterate over each coordinate the cell does not span. (A spel spans all coordinates; a surfel all but one, etc).
Example:
p | any signed pre-cell. |
|
static |
From the digital coordinates of a point in Zn, builds the corresponding pre-pointel (pre-cell of dimension 0).
p | an integer point (digital coordinates of cell). |
sign | the sign of the cell (either POS or NEG). |
|
static |
Projects [p] along the [k]th direction toward [bound].
Otherwise said, p[ k ] == bound[ k ] afterwards.
p | any pre-cell. |
bound | the element acting as bound (same topology as p). |
k | the concerned coordinate. |
sIsOpen(p, k) == sIsOpen(bound, k)
|
static |
Return the projection of [p] along the [k]th direction toward [bound].
Otherwise said, p[ k ] == bound[ k ] afterwards.
p | any pre-cell. |
bound | the element acting as bound (same topology as p). |
k | the concerned coordinate. |
sIsOpen(p, k) == sIsOpen(bound, k)
sTopology(p) == sTopology(sProjection(p, bound, k))
.
|
static |
Computes the proper 1-neighborhood of the pre-cell [c] and returns it.
It is the set of pre-cells with same topology that are adjacent to [c] and different from [c].
cell | the signed pre-cell of interest. |
|
static |
Sets the [k]-th digital coordinate of [c] to [i].
c | any signed pre-cell. |
k | any valid dimension. |
i | an integer coordinate. |
|
static |
Sets the digital coordinates of [c] to [kp].
c | any signed pre-cell. |
kp | the new digital coordinates for [c]. |
|
static |
Sets the [k]-th Khalimsky coordinate of [c] to [i].
c | any signed pre-cell. |
k | any valid dimension. |
i | an integer coordinate. |
|
static |
Sets the Khalimsky coordinates of [c] to [kp].
c | any signed pre-cell. |
kp | the new Khalimsky coordinates for [c]. |
|
static |
Sets the sign of the pre-cell.
c | (modified) any signed pre-cell. |
s | any sign. |
|
static |
Return its sign.
c | any signed pre-cell. |
|
static |
From the digital coordinates of a point in Zn, builds the corresponding pre-spel (pre-cell of maximal dimension).
p | an integer point (digital coordinates of cell). |
sign | the sign of the cell (either POS or NEG). |
|
static |
Return the topology word of [p].
p | any signed pre-cell. |
|
static |
Add the vector [vec] to [p].
p | any pre-cell. |
vec | any pointel. |
|
static |
Return the signed pre-cells directly up incident to c.
c | any signed pre-cell. |
|
staticprivate |
Used by uCoFaces for computing incident cofaces.
|
staticprivate |
Used by uFaces for computing incident faces.
|
static |
Return the adjacent element to [p] along axis [k] in the given direction and orientation.
p | any pre-cell. |
k | the coordinate that is changed. |
up | if 'true' the orientation is forward along axis [k], otherwise backward. |
|
static |
From the Khalimsky coordinates of a cell, builds the corresponding unsigned pre-cell.
kp | an integer point (Khalimsky coordinates of cell). |
|
static |
From the digital coordinates of a point in Zn and a cell type, builds the corresponding unsigned pre-cell.
p | an integer point (digital coordinates of cell). |
c | another cell defining the topology. |
|
static |
Return the proper cofaces of [c] (chain of upper incidence).
c | any unsigned ipre-cell. |
|
static |
Return its digital coordinate along [k].
c | any unsigned pre-cell. |
k | any valid dimension. |
|
static |
Return its digital coordinates.
c | any unsigned pre-cell. |
|
static |
Return the dimension of the pre-cell [p].
p | any unsigned pre-cell. |
|
static |
Given an unsigned pre-cell [p], returns an iterator to iterate over each coordinate the cell spans. (A spel spans all coordinates; a surfel all but one, etc).
Example:
p | any unsigned pre-cell. |
|
static |
Return the proper faces of [c] (chain of lower incidence).
c | any unsigned pre-cell. |
|
static |
Return the same element as [p] except for a coordinate [k] incremented with x.
p | any pre-cell. |
k | the coordinate that is changed. |
x | the increment. |
|
static |
Return the same element as [p] except for an decremented coordinate [k].
p | any pre-cell. |
k | the coordinate that is changed. |
|
static |
Return the same element as [p] except for the incremented coordinate [k].
p | any pre-cell. |
k | the coordinate that is changed. |
|
static |
Return the same element as [p] except for a coordinate [k] decremented with x.
p | any pre-cell. |
k | the coordinate that is changed. |
x | the decrement. |
|
static |
Return the forward or backward unsigned pre-cell incident to [c] along axis [k], depending on [up].
c | any unsigned pre-cell. |
k | any coordinate. |
up | if 'true' the orientation is forward along axis [k], otherwise backward. |
|
static |
Useful to check if you are going out of the space.
Only for compatibility reasons.
p | any pre-cell. |
|
static |
Useful to check if you are going out of the space.
Only for compatibility reasons.
p | any pre-cell. |
k | the tested coordinate. |
|
static |
Useful to check if you are going out of the space.
Only for compatibility reasons.
p | any pre-cell. |
k | the tested coordinate. |
|
static |
Useful to check if you are going out of the space.
Only for compatibility reasons.
p | any pre-cell. |
k | the tested coordinate. |
|
static |
Return 'true' if [p] is open along the direction [k].
p | any pre-cell. |
k | any direction. |
|
static |
Return 'true' if [b] is a surfel (spans all but one coordinate).
b | any unsigned pre-cell. |
|
static |
Return its Khalimsky coordinate along [k].
c | any unsigned pre-cell. |
k | any valid dimension. |
|
static |
Return its Khalimsky coordinates.
c | any unsigned pre-cell. |
|
static |
Return the pre-cells directly low incident to c.
c | any unsigned pre-cell. |
|
static |
Computes the 1-neighborhood of the pre-cell [c] and returns it.
It is the set of cells with same topology that are adjacent to [c].
cell | the unsigned pre-cell of interest. |
|
static |
Increment the pre-cell [p] to its next position (as classically done in a scanning).
Example:
p | any pre-cell. |
lower | the lower bound. |
upper | the upper bound. |
uTopology(p) == uTopology(lower) == uTopology(upper)
.
|
static |
Creates an unsigned pre-cell from a signed one.
p | any signed pre-cell. |
|
static |
Given an unsigned pre-surfel [s], returns its orthogonal direction (ie, the coordinate where the surfel is closed).
s | an unsigned pre-surfel |
|
static |
Given an unsigned pre-cell [p], returns an iterator to iterate over each coordinate the cell does not span. (A spel spans all coordinates; a surfel all but one, etc).
Example:
p | any unsigned pre-cell. |
|
static |
From the digital coordinates of a point in Zn, builds the corresponding pre-pointel (pre-cell of dimension 0).
p | an integer point (digital coordinates of cell). |
|
static |
Projects [p] along the [k]th direction toward [bound].
Otherwise said, p[ k ] == bound[ k ] afterwards
[in,out] | p | any pre-cell. |
[in] | bound | the element acting as bound (same topology as p). |
[in] | k | the concerned coordinate. |
uIsOpen(p, k) == uIsOpen(bound, k)
|
static |
Return the projection of [p] along the [k]th direction toward [bound].
Otherwise said, p[ k ] == bound[ k ] afterwards.
p | any pre-cell. |
bound | the element acting as bound (same topology as p). |
k | the concerned coordinate. |
uIsOpen(p, k) == uIsOpen(bound, k)
uTopology(p) == uTopology(uProjection(p, bound, k))
.
|
static |
Computes the proper 1-neighborhood of the pre-cell [c] and returns it.
It is the set of pre-cells with same topology that are adjacent to [c] and different from [c].
cell | the unsigned pre-cell of interest. |
|
static |
Sets the [k]-th digital coordinate of [c] to [i].
c | any unsigned pre-cell. |
k | any valid dimension. |
i | an integer coordinate. |
|
static |
Sets the digital coordinates of [c] to [kp].
c | any unsigned pre-cell. |
kp | the new digital coordinates for [c]. |
|
static |
Sets the [k]-th Khalimsky coordinate of [c] to [i].
c | any unsigned pre-cell. |
k | any valid dimension. |
i | an integer coordinate. |
|
static |
Sets the Khalimsky coordinates of [c] to [kp].
c | any unsigned pre-cell. |
kp | the new Khalimsky coordinates for [c]. |
|
static |
From the digital coordinates of a point in Zn, builds the corresponding pre-spel (pre-cell of maximal dimension).
p | an integer point (digital coordinates of cell). |
|
static |
Return the topology word of [p].
p | any unsigned pre-cell. |
|
static |
Add the vector [vec] to [p].
p | any pre-cell. |
vec | any pointel. |
|
static |
Return the pre-cells directly up incident to c.
c | any unsigned pre-cell. |
|
staticconstexpr |
Definition at line 404 of file KhalimskyPreSpaceND.h.
|
staticconstexpr |
Definition at line 403 of file KhalimskyPreSpaceND.h.
|
staticconstexpr |
Definition at line 406 of file KhalimskyPreSpaceND.h.
|
staticconstexpr |
Definition at line 405 of file KhalimskyPreSpaceND.h.