MineLink
 All Data Structures Functions Variables Pages
delphos::SlopePrecedence Class Reference

Vertical precedence class with utility methods for constant slope precedences. More...

#include <slopes.h>

Inheritance diagram for delphos::SlopePrecedence:
Inheritance graph
Collaboration diagram for delphos::SlopePrecedence:
Collaboration graph

Public Member Functions

 SlopePrecedence (delphos::BlockModel &bm)
 Creates a new, empty, slope precedence.
 
virtual void CreateArcs (const double &angle_degrees, const double &max_z_diff)
 Creates all the arcs for predecessors of given angle and maximum z difference. More...
 
virtual void CreateAdditionalArcs (const double &angle_degrees, const double &max_z_diff)
 Creates all the arcs for predecessors of given angle and maximum z difference. More...
 
virtual void CreateArcs (const double &angle_degrees, const double &max_z_diff, const delphos::BlockSelection &bs)
 Creates all the arcs for predecessors of given angle and maximum z difference for a subset of blocks in the model. More...
 
virtual void CreateAdditionalArcs (const double &angle_degrees, const double &max_z_diff, const delphos::BlockSelection &bs)
 Creates all the arcs for predecessors of given angle and maximum z difference for a subset of blocks in the model. More...
 
virtual void CreateArcs (const double &angle_degrees, const unsigned int &levels, const double &dx, const double &dy, const double &dz)
 Creates all arcs for predecessors of given an angle, block dimensions and an amount of levels that are going to be used for the precedence-cone approximation. More...
 
virtual void CreateAdditionalArcs (const double &angle_degrees, const unsigned int &levels, const double &dx, const double &dy, const double &dz)
 Creates all arcs for predecessors of given an angle, block dimensions and an amount of levels that are going to be used for the precedence-cone approximation. More...
 
virtual void CreateAdditionalArcs (const double &angle_degrees, const unsigned int &levels, const double &dx, const double &dy, const double &dz, const delphos::BlockSelection &bs)
 Creates all arcs for predecessors of given an angle, block dimensions, an amount of levels that are going to be used for the precedence-cone approximation and a subset of blocks of the block model. More...
 
virtual void CreateArcs (const double &angle_degrees, const unsigned int &levels, const double &dx, const double &dy, const double &dz, const delphos::BlockSelection &bs)
 Creates all arcs for predecessors of given an angle, block dimensions, an amount of levels that are going to be used for the precedence-cone approximation and a subset of blocks of the block model. More...
 
virtual void CreateArcs (const delphos::SlopeDefinition &slope_def)
 Creates all arcs for predecessors of a given slope definition. More...
 
virtual void CreateAdditionalArcs (const delphos::SlopeDefinition &slope_def)
 Creates all arcs for predecessors of a given slope definition. More...
 
- Public Member Functions inherited from delphos::Precedence
 Precedence (BlockModel &bm)
 Creates a new precedence with no arcs. More...
 
 Precedence (delphos::Precedence &other)
 Copy constructor.
 
virtual ~Precedence ()
 Destructor.
 
Arc operator[] (const delphos::BlockIndexType &index) const
 Retrieves the Arc instance with given index. More...
 
Arc GetArc (const delphos::BlockIndexType &index) const
 Retrieves the Arc instance with given index. More...
 
void AddArc (const delphos::Arc &new_arc)
 Adds a new arc to the precedence. More...
 
void AddArc (const delphos::BlockIndexType &first, const delphos::BlockIndexType &second)
 Adds a new arc to the precedence. More...
 
void Clear ()
 Deletes all arcs. More...
 
const delphos::BlockIndexType Size () const
 Returns the size (number of arcs) in the precedence. More...
 
const delphos::BlockIndexType GetSize () const
 Returns the size (number of arcs) in the precedence. More...
 
- Public Member Functions inherited from delphos::BlockModelEntity
 BlockModelEntity (delphos::BlockModel &bm)
 Creates a new block instance associated to a given block model. More...
 
delphos::BlockModelGetBlockModel ()
 Retrieves the block model to which the entity is associated. More...
 
const delphos::BlockModelGetBlockModel () const
 Retrieves the block model to which the entity is associated. More...
 

Detailed Description

Vertical precedence class with utility methods for constant slope precedences.

Member Function Documentation

void delphos::SlopePrecedence::CreateAdditionalArcs ( const double &  angle_degrees,
const double &  max_z_diff 
)
virtual

Creates all the arcs for predecessors of given angle and maximum z difference.

Parameters
angle_degreesThe slope angle, measured in degrees with regards to the vertical axis.
max_z_diffMaximum Z difference to consider a block a predecessor.

This method works on any block model and simply makes all possible comparisons adding the precedence arc if corresponds, thus it is quadratic on the blocks and can be very slow. In case of previously arc structure not empty, it adds only arcs that are not present in the structure.

void delphos::SlopePrecedence::CreateAdditionalArcs ( const double &  angle_degrees,
const double &  max_z_diff,
const delphos::BlockSelection bs 
)
virtual

Creates all the arcs for predecessors of given angle and maximum z difference for a subset of blocks in the model.

Parameters
angle_degreesThe slope angle, measured in degrees with regards to the vertical axis.
max_z_diffMaximum Z difference to consider a block a predecessor.
bsA BlockSelection object from the original BlockModel object.

This method works on any block model and simply makes all possible comparisons adding the precedence arc if corresponds, thus it is quadratic on the blocks and can be very slow. Also, the arcs are created for every block in the BlockSelection, regardless if the predecessor is in the selection or not. In case of previously arc structure not empty, it adds only arcs that are not present in the structure.

void delphos::SlopePrecedence::CreateAdditionalArcs ( const double &  angle_degrees,
const unsigned int &  levels,
const double &  dx,
const double &  dy,
const double &  dz 
)
virtual

Creates all arcs for predecessors of given an angle, block dimensions and an amount of levels that are going to be used for the precedence-cone approximation.

Parameters
angle_degreesThe slope angle, measured in degrees with regards to the vertical axis.
levelsNumber of benches to consider as limit for precedences.
dxpositive real number indicating the block dimensions in the X axis.
dypositive real number indicating the block dimensions in the Y axis.
dzpositive real number indicating the block dimensions in the Z axis.

This version only works if the block model is regular, that is all blocks have the same dimensions \((\Delta x, \Delta y, \Delta z)\). It is LINEAR in the number of blocks, hence, a lot faster than the more general version. In case of previously arc structure not empty,this method is slower than CreateArcs because it adds only arcs that are not present in the structure. The number of bench level corresponds to levels+1 for the precedence in Whittle.

void delphos::SlopePrecedence::CreateAdditionalArcs ( const double &  angle_degrees,
const unsigned int &  levels,
const double &  dx,
const double &  dy,
const double &  dz,
const delphos::BlockSelection bs 
)
virtual

Creates all arcs for predecessors of given an angle, block dimensions, an amount of levels that are going to be used for the precedence-cone approximation and a subset of blocks of the block model.

Parameters
angle_degreesThe slope angle, measured in degrees with regards to the vertical axis.
levelsNumber of benches to consider as limit for precedences.
dxPositive real number indicating the block dimensions in the X axis.
dyPositive real number indicating the block dimensions in the Y axis.
dzPositive real number indicating the block dimensions in the Z axis.
bsA BlockSelection object from the original BlockModel object.

This version only works if the block model is regular, that is all blocks have the same dimensions \((\Delta x, \Delta y, \Delta z)\). It is LINEAR in the number of blocks, hence, a lot faster than the more general version. Also, the arcs are created for every block in the BlockSelection, regardless if the predecessor is in the selection or not. In case of previously arc structure not empty,this method is slower than CreateArcs because it adds only arcs that are not present in the structure. The number of bench level corresponds to levels+1 for the precedence in Whittle.

void delphos::SlopePrecedence::CreateAdditionalArcs ( const delphos::SlopeDefinition slope_def)
virtual

Creates all arcs for predecessors of a given slope definition.

Parameters
slope_defThe slope definiton for which the precedence arcs will be created.
void delphos::SlopePrecedence::CreateArcs ( const double &  angle_degrees,
const double &  max_z_diff 
)
virtual

Creates all the arcs for predecessors of given angle and maximum z difference.

Parameters
angle_degreesThe slope angle, measured in degrees with regards to the vertical axis.
max_z_diffMaximum Z difference to consider a block a predecessor.

This method works on any block model and simply makes all possible comparisons adding the precedence arc if corresponds, thus it is quadratic on the blocks and can be very slow.

void delphos::SlopePrecedence::CreateArcs ( const double &  angle_degrees,
const double &  max_z_diff,
const delphos::BlockSelection bs 
)
virtual

Creates all the arcs for predecessors of given angle and maximum z difference for a subset of blocks in the model.

Parameters
angle_degreesThe slope angle, measured in degrees with regards to the vertical axis.
max_z_diffMaximum Z difference to consider a block a predecessor.
bsA BlockSelection object from the original BlockModel object.

This method works on any block model and simply makes all possible comparisons adding the precedence arc if corresponds, thus it is quadratic on the blocks and can be very slow. Also, the arcs are created for every block in the BlockSelection, regardless if the predecessor is in the selection or not. Before computing arcs, it remove previously arcs present in the structure.

void delphos::SlopePrecedence::CreateArcs ( const double &  angle_degrees,
const unsigned int &  levels,
const double &  dx,
const double &  dy,
const double &  dz 
)
virtual

Creates all arcs for predecessors of given an angle, block dimensions and an amount of levels that are going to be used for the precedence-cone approximation.

Parameters
angle_degreesThe slope angle, measured in degrees with regards to the vertical axis.
levelsNumber of benches to consider as limit for precedences.
dxpositive real number indicating the block dimensions in the X axis.
dypositive real number indicating the block dimensions in the Y axis.
dzpositive real number indicating the block dimensions in the Z axis.

This version only works if the block model is regular, that is all blocks have the same dimensions \((\Delta x, \Delta y, \Delta z)\). It is LINEAR in the number of blocks, hence, a lot faster than the more general version. Before computing arcs, it remove previously arcs present in the structure. The number of bench level corresponds to levels+1 for the precedence in Whittle.

void delphos::SlopePrecedence::CreateArcs ( const double &  angle_degrees,
const unsigned int &  levels,
const double &  dx,
const double &  dy,
const double &  dz,
const delphos::BlockSelection bs 
)
virtual

Creates all arcs for predecessors of given an angle, block dimensions, an amount of levels that are going to be used for the precedence-cone approximation and a subset of blocks of the block model.

Parameters
angle_degreesThe slope angle, measured in degrees with regards to the vertical axis.
levelsNumber of benches to consider as limit for precedences.
dxPositive real number indicating the block dimensions in the X axis.
dyPositive real number indicating the block dimensions in the Y axis.
dzPositive real number indicating the block dimensions in the Z axis.
bsA BlockSelection object from the original BlockModel object.

This version only works if the block model is regular, that is all blocks have the same dimensions \((\Delta x, \Delta y, \Delta z)\). It is LINEAR in the number of blocks, hence, a lot faster than the more general version. Also, the arcs are created for every block in the BlockSelection, regardless if the predecessor is in the selection or not. Before computing arcs, it remove previously arcs present in the structure. The number of bench level corresponds to levels+1 for the precedence in Whittle.

void delphos::SlopePrecedence::CreateArcs ( const delphos::SlopeDefinition slope_def)
virtual

Creates all arcs for predecessors of a given slope definition.

Parameters
slope_defThe slope definiton for which the precedence arcs will be created.

The documentation for this class was generated from the following files: