Workspace 6.21.5
Public Member Functions | List of all members
NodeCriterion Class Referenceabstract

Abstract base class defining an interface for pass/fail criterion for a Node.

#include <Mesh/Geometry/nodecriterion.h>

Inheritance diagram for NodeCriterion:
[legend]

Public Member Functions

 ~NodeCriterion () override=default
 
NodeCriterionclone () const override=0
 
virtual void destroy ()=0
 
virtual bool pass (const Node &node) const =0
 
virtual void postVisits ()
 
virtual bool preVisits (MeshModel &model)
 
- Public Member Functions inherited from Clonable
virtual ~Clonable ()=default
 
virtual Clonableclone () const =0
 

Constructor & Destructor Documentation

◆ ~NodeCriterion()

~NodeCriterion ( )
overridedefault

Member Function Documentation

◆ clone()

NodeCriterion * clone ( ) const
overridepure virtual
Returns
A clone of this object.
Note
Subclasses would normally return their own type rather than the Clonable type. The C++ language rules allow a more derived type to be returned from a virtual function and the compiler will still treat it as a valid override.

We redeclare this function only so that the more derived return type is available without casting.

Implements Clonable.

Implemented in NodeCriterionAllPass, NodeCriterionInRegion, and NodeIdCriterion.

◆ destroy()

virtual void destroy ( )
pure virtual

Destroys the object. This function is usually implemented by calling operator delete on the object.

See also
clone()

Implemented in NodeCriterionAllPass, NodeCriterionInRegion, and NodeIdCriterion.

◆ pass()

virtual bool pass ( const Node node) const
pure virtual
Parameters
nodeThe node for which the criterion is to be tested.
Precondition
Clients must have called preVisits() at some point before they are allowed to call pass(). The last call to preVisits() must have returned true.

The usual sequence for a client is to first call preVisits() and check that the return value is true. Then, they call pass() for all the nodes in a model or for some subset of nodes that interests them. Once the client must call postVisits() when they will no longer be calling pass() anymore. The model that was passed to preVisits() must remain valid until postVisits() returns.

Returns
True if node passes the criterion determined by the subclass.

Implemented in NodeCriterionAllPass, NodeCriterionInRegion, and NodeIdCriterion.

◆ postVisits()

void postVisits ( )
virtual

Clients who call preVisits() must at some point also call postVisits() if preVisits() returned true. After postVisits() is called, clients are not permitted to call pass() until they have called preVisits() again.

The model that was originally passed to preVisits() can be assumed to still exist up until postVisits() returns. After that time, clients are free to delete the model, after which no further access by a subclass is permitted (not even in its destructor).

The default implementation does nothing.

◆ preVisits()

bool preVisits ( MeshModel model)
virtual
Parameters
modelThe model whose nodes will be passed to pass() at some point after preVisits() returns. It will be assumed that the model remains valid until postVisits() is called, so subclasses are allowed to keep a pointer to this model until that time.
Returns
True if the function completed successfully, false if some kind of error occurred. The caller is not permitted to call pass() unless they have called preVisits() and the last call to it returned true. The default implementation does nothing and always returns true.
Note
If this function returns false, postVisits() should not be called.