A class that bans normal disc types that meet the boundary of the underlying triangulation.
More...
#include <enumerate/treeconstraint.h>
|
| BanBoundary (const Triangulation< 3 > *tri, int coords) |
| Constructs and initialises the banned_ and marked_ arrays to be entirely false , as described in the BanConstraintBase superclass constructor. More...
|
|
void | init (const int *columnPerm) |
|
template<class LPConstraint , typename IntType > |
void | enforceBans (LPData< LPConstraint, IntType > &lp) const |
| Enforces all bans described by this class in the given tableaux. More...
|
|
|
const Triangulation< 3 > * | tri_ |
| The triangulation with which we are working. More...
|
|
int | coords_ |
| The normal or almost normal coordinate system in which we are working. More...
|
|
bool * | banned_ |
| Indicates which columns of a tableaux correspond to banned coordinates (e.g., banned normal disc types). More...
|
|
bool * | marked_ |
| Indicates which columns of a tableaux correspond to marked coordinates (e.g., marked normal disc types). More...
|
|
A class that bans normal disc types that meet the boundary of the underlying triangulation.
No disc types are marked at all.
This class is only for use with normal or almost normal surfaces, not angle structures.
- Warning
- This class only works as expected in standard normal or almost normal coordinates. In quadrilateral or quadrilateral-octagon coordinates it will only ban quadrilaterals or octagons that touch the boundary, but it will still allow triangles that meet the boundary (since triangle types are not counted in these coordinate systems). The supported() routine will only return
true
in standard normal or almost normal coordinates.
See the BanConstraintBase class notes for details on all member functions and structs.
- Warning
- The API for this class has not yet been finalised. This means that the class interface may change in new versions of Regina, without maintaining backward compatibility. If you use this class directly in your own code, please watch the detailed changelogs upon new releases to see if you need to make changes to your code.
- Python
- Not present.
◆ BanBoundary()
regina::BanBoundary::BanBoundary |
( |
const Triangulation< 3 > * |
tri, |
|
|
int |
coords |
|
) |
| |
|
inlineprotected |
Constructs and initialises the banned_ and marked_ arrays to be entirely false
, as described in the BanConstraintBase superclass constructor.
- Warning
- Before you use this object, the routine init() must be called to fill in the banned_ and marked_ arrays with the correct data. Otherwise you will have no banned or marked disc types at all.
- Parameters
-
tri | the triangulation with which we are working. |
coords | the normal or almost normal coordinate system in which we are working. This must be one of NS_QUAD, NS_STANDARD, NS_AN_QUAD_OCT, or NS_AN_STANDARD. |
◆ enforceBans()
template<class LPConstraint , typename IntType >
void regina::BanConstraintBase::enforceBans |
( |
LPData< LPConstraint, IntType > & |
lp | ) |
const |
|
inlineprotectedinherited |
Enforces all bans described by this class in the given tableaux.
Specifically, for each banned coordinate, this routine calls LPData::constrainZero() on the corresponding coordinate column.
- Parameters
-
lp | the tableaux in which to enforce the bans. |
◆ banned_
bool* regina::BanConstraintBase::banned_ |
|
protectedinherited |
Indicates which columns of a tableaux correspond to banned coordinates (e.g., banned normal disc types).
The size of this array is the number of normal or angle structure coordinates (so we explicitly exclude extra columns that arise from the template parameter LPConstraint.
◆ coords_
int regina::BanConstraintBase::coords_ |
|
protectedinherited |
The normal or almost normal coordinate system in which we are working.
This must be one of NS_QUAD, NS_STANDARD, NS_AN_QUAD_OCT, NS_AN_STANDARD, or NS_ANGLE.
◆ marked_
bool* regina::BanConstraintBase::marked_ |
|
protectedinherited |
Indicates which columns of a tableaux correspond to marked coordinates (e.g., marked normal disc types).
The size of this array is the number of normal or angle structure coordinates (so we explicitly exclude extra columns that arise from the template parameter LPConstraint.
◆ tri_
The triangulation with which we are working.
The documentation for this class was generated from the following file: