Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
IFSelect_SignCounter Class Reference

SignCounter gives the frame to count signatures associated
with entities, deducted from them. Ex.: their Dynamic Type.

It can sort a set of Entities according a signature, i.e. :
More...

#include <IFSelect_SignCounter.hxx>

Inheritance diagram for IFSelect_SignCounter:
Inheritance graph
[legend]

Public Member Functions

 IFSelect_SignCounter (const Standard_Boolean withmap=Standard_True, const Standard_Boolean withlist=Standard_False)
 Creates a SignCounter, without proper Signature
If <withmap> is True (default), added entities are counted
only if they are not yet recorded in the map
Map control can be set off if the input garantees uniqueness
of data
<withlist> is transmitted to SignatureList (option to list
entities, not only to count them).

 IFSelect_SignCounter (const Handle< IFSelect_Signature > &matcher, const Standard_Boolean withmap=Standard_True, const Standard_Boolean withlist=Standard_False)
 Creates a SignCounter, with a predefined Signature
Other arguments as for Create without Signature.

Handle_IFSelect_Signature Signature () const
 Returns the Signature used to count entities. It can be null.

void SetMap (const Standard_Boolean withmap)
 Changes the control status. The map is not cleared, simply
its use changes

virtual Standard_Boolean AddEntity (const Handle< Standard_Transient > &ent, const Handle< Interface_InterfaceModel > &model)
 Adds an entity by considering its signature, which is given by
call to method AddSign
Returns True if added, False if already in the map (and
map control status set)

virtual void AddSign (const Handle< Standard_Transient > &ent, const Handle< Interface_InterfaceModel > &model)
 Adds an entity (already filtered by Map) with its signature.
This signature can be computed with the containing model.
Its value is provided by the object Signature given at start,
if no Signature is defined, it does nothing.

Can be redefined (in this case, see also Sign)

void AddList (const Handle< TColStd_HSequenceOfTransient > &list, const Handle< Interface_InterfaceModel > &model)
 Adds a list of entities by adding each of the items

virtual void AddWithGraph (const Handle< TColStd_HSequenceOfTransient > &list, const Interface_Graph &graph)
 Adds a list of entities in the context given by the graph
Default just call basic AddList
Can be redefined to get a signature computed with the graph

void AddModel (const Handle< Interface_InterfaceModel > &model)
 Adds all the entities contained in a Model

void AddFromSelection (const Handle< IFSelect_Selection > &sel, const Interface_Graph &G)
 Adds the result determined by a Selection from a Graph
Remark : does not impact at all data from SetSelection & Co

void SetSelection (const Handle< IFSelect_Selection > &sel)
 Sets a Selection as input : this causes content to be cleared
then the Selection to be ready to compute (but not immediatly)

Handle_IFSelect_Selection Selection () const
 Returns the selection, or a null Handle

void SetSelMode (const Standard_Integer selmode)
 Changes the mode of working with the selection :
-1 just clears optimisation data and nothing else
0 clears it 1 inhibits it for computing (but no clearing)
2 sets it active for computing
Default at creation is 0, after SetSelection (not null) is 2

Standard_Integer SelMode () const
 Returns the mode of working with the selection

Standard_Boolean ComputeSelected (const Interface_Graph &G, const Standard_Boolean forced=Standard_False)
 Computes from the selection result, if selection is active
(mode 2). If selection is not defined (mode 0) or is inhibited
(mode 1) does nothing.
Returns True if computation is done (or optimised), False else
This method is called by ComputeCounter from WorkSession

If <forced> is True, recomputes systematically
Else (D), if the counter was not cleared and if the former
computed result started from the same total size of Graph and
same count of selected entities : computation is not redone
unless <forced> is given as True

virtual
Handle_TCollection_HAsciiString 
Sign (const Handle< Standard_Transient > &ent, const Handle< Interface_InterfaceModel > &model) const
 Determines and returns the value of the signature for an
entity as an HAsciiString. This method works exactly as
AddSign, which is optimized

Can be redefined, accorded with AddSign

Standard_CString ComputedSign (const Handle< Standard_Transient > &ent, const Interface_Graph &G)
 Applies AddWithGraph on one entity, and returns the Signature
Value which has been recorded
To do this, Add is called with SignOnly Mode True during the
call, the returned value is LastValue


Detailed Description

      - list of different values found for this Signature <br>
      - for each one, count and list of entities <br>
      Results are returned as a SignatureList, which can be queried <br>
      on the count (list of strings, count per signature, or list of <br>
      entities per signature) <br>


A SignCounter can be filled, either directly from lists, or
from the result of a Selection : hence, its content can be
automatically recomputed as desired

SignCounter works by using a Signature in its method AddSign

Methods can be redefined to, either


Constructor & Destructor Documentation


Member Function Documentation

Reimplemented in IFSelect_GraphCounter.

Handle_IFSelect_Selection IFSelect_SignCounter::Selection ( ) const
virtual Handle_TCollection_HAsciiString IFSelect_SignCounter::Sign ( const Handle< Standard_Transient > &  ent,
const Handle< Interface_InterfaceModel > &  model 
) const [virtual]
Handle_IFSelect_Signature IFSelect_SignCounter::Signature ( ) const

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