Translations:Naming project/18/en


 * opencascade's TNaming relies upon the TDF_Data data framework.
 * TDF_Data is a key component of the opencascade OCAF thing, but can be used independent of it
 * TDF_Data is essentially a tree in which data is added and then read at a later date
 * Whenever a TNaming_NamedShape attribute is added to a node on the TDF_Data tree, a TNaming_UsedShapes attribute is added to the root of the tree
 * NOTE: this TNaming_UsedShapes attribute is critical to the utility of the TNaming toolkit. It contains a history of all the TopoDS_Shape used during the 'history' of the part
 * TNaming_Builder is used to add information to the TDF_Data tree. It adds a TNaming_NamedShape to a given node on the tree, as well as updating the TNaming_UsedShapes database as necessary.
 * Any time the TopoDS_Shape is changed, it must be logged in the TDF_Data structure
 * Again, TNaming_Builder is used for this
 * See here in the opencascade documentation for a table listing what must be stored in the database. NOTE: this table appears to be incomplete. Some additional testing may need to be done
 * In short, any time the TopoDS_Shape is modified, any modified/generated/deleted features must be logged. For the most part, since we're dealing with solids, this means we must log the modified/generated/deleted Faces on the solid
 * The TNaming_Selector class is used to "select" a feature that is being tracked on the TDF_Data tree
 * a "selected" feature is one that opencascade's TNaming algorithm will maintain a constant reference to, regardless of topological changes