The TDF C++ Library (Draft)

Last updated 23 May 1997

for version 1.0


Table of Contents


1 Introduction

Technology Data Format (TDF) is a semiconductor data interchange format for wafer data including 1D, 2D and 3D geometries, mesh, fields and other related information.

TDF is developed by http://www.tmai.com/ Technology Modeling Associates, Inc (TMA).

The primary purpose of TDF is to facilitate data interchange between the full range of semiconductor technology simulators and related applications, including visualization, mesh generation and geometry editors. The goal is to provide a unified data model with a comprehensive description of those data types which are common to all semiconductor processing, while providing enough flexibility to allow for application-specific extensions.

The TDF data storage model is designed for efficiency of storage and access. The data is stored in files, but unlike other file formats, applications using TDF are not forced to read, let alone understand, all of the data stored in a TDF data set; instead the application is free to access the specific portions of the data which are relevant for its own purposes. Accessing a TDF data set can be thought of as accessing a data server, rather than reading/writing a file. As a result, access times tend to be faster than with other formats.

TDF provides persistence using Hierarchical Data Format (HDF), which was developed at the University of Illinois, NCSA. This is a cross-platform, binary format, and the libraries and documentation are available in the public domain. For more information about HDF, see http://hdf.ncsa.uiuc.edu.

For the convenience of application developers, TDF includes a C++ class library. The C++ API provides a high-level view of the TDF information model, and facilitates the integration of new applications.

Note, that the API uses the C++ Standard Template Library (STL) see section 2.8 STL.

The following figure illustrates the integration of the TDF library with client programs written in C++, C or FORTRAN. Persistence in HDF files is handled automatically by the TDF library. The library also includes a TMA TIF ASCII file format reader for backward compatibility.

The remainder of this document describes the C++ API.

2 C++ Classes

We will start our tour of TDF's C++ classes. The classes covered are meant to include only those that are of interest for the application.

The hard copy or html version has class diagrams following here.

2.1 Rumbaugh Diagrams

Here are four Object Model Rumbaugh diagrams showing top-level classes.

Note, that actual C++ classes names are shown here without the Tdf Prefix.

2.1.1 Top Classes Diagrams

2.1.2 FieldSet -- Mesh & Field Classes

see section 2.3.1 TdfFieldSet and see section 2.4.1 TdfMesh.

2.1.3 Geometry Classes

See see section 2.6.1 TdfGeometry.

2.1.4 Attribute Classes

See see section 2.2.7 TdfAttributes.

2.2 Top Classes

Here are the top level C++ classes of the TDF library. TDF uses HDF which is Hierarchal Data Format. HDF uses a vgroup/vdata model which is analog to the UNIX directory/file system. Most of the Tdf classes correspond to HDF-vgroups.

The top classes may also be thought of vgroups that are close to the root.

2.2.1 Tdf

#include "Tdf.hh"

This class controls the global initialization of TDF library.

There are two static functions:

Method: static bool Tdf::init ()
Initialize the TDF library. This consists of static table initialization, initial internal database opening, etc. In order to access these databases (`sol.db', `mtr.db') the environment variable TDFLIB has to be a UNIX-path that includes a directory where these files are located. It is safe to call more than once.

Method: static bool Tdf::close ()
Close the TDF library. This consists of freeing memory for global variables, closing internal database opening, etc. It is safe to call more than once.

Constructor: Tdf::Tdf ()
The Tdf class, besides being a place holder for the static init and close global functions, serves as a convenient dummy object that calls Tdf::init() upon construction and calls Tdf::close() upon destruction.

2.2.2 TdfDataSet

#include "TdfDataSet.hh"

This is the "top most" class to access or generate a TDF file.

Method: bool TdfDataSet::HDFread (const char* filename)
Reads and loads the whole core TDF data from a given TDF file name (filename) to this class. This creates other instances of TDF classes that could be accessed via this class. Returns true if success.

Method: bool TdfDataSet::HDFwrite (
const char* filename, const char* writerName)
Writes the Tdf core class tree that comes off this root into the given file name filename.

The writerName should be the name of the application, it is appended to the Documentation vgroup (TdfDocumentation) of the file. Returns true if success.

Method: const TdfDocumentation& TdfDataSet::documentation () const
Returns a reference to the TdfDocumentation class member as a constant (see section 2.2.3 TdfDocumentation).

Method: TdfDocumentation& TdfDataSet::documentation ()
Returns a reference to the TdfDocumentation class member (see section 2.2.3 TdfDocumentation).

Method: unsigned TdfDataSet::nWafers () const
Returns the number of TdfWafer contained in this TdfDataSet class instance,
typically 1.

Method: TdfWafer& TdfDataSet::wafer (unsigned i)
Returns a reference to the i'th TdfWafer --- which is created if necessary --- of this TdfDataSet (see section 2.2.5 TdfWafer).

Method: const TdfWafer& TdfDataSet::wafer (unsigned i) const
Similar to the above, but returning a const reference and no creation is made.

2.2.3 TdfDocumentation

#include "TdfDocumentation.hh"

The TdfDocumentation class carries the history of writers/modifiers of the TdfDataSet it belongs to.

Method: unsigned TdfDocumentation::tdfVersion () const
Returns the version number of TDF-LIB in which the TDF-file was last written/modified.

Method: unsigned TdfDocumentation::nModifiers () const
Return the number of modifiers of this TdfWaferDataSet.

Method: const TdfModifier& TdfDocumentation::modifier (unsigned i) const
Return the i-th modifier of this TdfWaferDataSet. The first modifier is the original writer.

Method: void TdfDocumentation::modifierAppend (
const TdfModifier& mdf)
Appends a modifier "signature" to the data (see section 2.2.4 TdfModifier).

2.2.4 TdfModifier

#include "TdfModifier.hh"

This class holds the "signature" of the writer or modifier of the data.

Method: const char* TdfModifier::name () const
Retrieves the modifier name; typically the application's name.

Method: void TdfModifier::name (const char* nm) const
Sets the modifier name to nm; typically the application's name.

Method: const char* TdfModifier::comment () const
Retrieves the modifier comment; typically application specific.

Method: void TdfModifier::comment (const char* cm)
Sets the modifier comment to cm; typically application specific.

Method: long TdfModifier::time () const
Retrieves the modifier's original creation time in seconds since 01/01/1970 (Using C-library time function).

Method: ostream& TdfModifier::printTime (ostream& os) const
Prints the modifier's time and date onto os output stream in textual form.

2.2.5 TdfWafer

#include "TdfWafer.hh"

TdfWafer is a class that holds a wafer data within TdfDataSet. Typically there exist only one TdfWafer in a TdfDataSet. The TdfWafer class contains:

2.2.5.1 TdfWafer -- Material Properties Interface

Method: unsigned TdfWafer::nMaterialProperties () const
Returns the number of materials with TdfAttributes this TdfWafer holds.

Method: const TdfAttributes& TdfWafer::materialProperties (unsigned i) const
Returns a const reference to the i-th material's attributes of this TdfWafer.

Method: TdfAttributes& TdfWafer::materialProperties (
const char* mtrName)
Returns a TdfAttributes reference to the attributes of this TdfWafer material mtrName -- which is created if necessary.

Method: int TdfWafer::materialPropIndex (
const char* mtrName)
Returns the index of the material named mtrName, or @minus{1} if it does not exist.

Method: TdfAttributes& TdfWafer::materialPropertiesOf (
const char* mtrName) const
Similar to materialProperties(mtrName) but if such TdfAttributes does not exist a dummy reference is returned.

2.2.5.2 TdfWafer -- Solution (Field) Properties Interface

Analog to Material Properties.

Method: unsigned TdfWafer::nSolutionProperties () const
Returns the number of solutions (fields) with TdfAttributes this TdfWafer holds.

Method: const TdfAttributes& TdfWafer::solutionProperties (unsigned i) const
Returns a const reference to the i-th solution's attributes of this TdfWafer.

Method: TdfAttributes& TdfWafer::solutionProperties (
const char* solName)
Returns a TdfAttributes reference to the attributes of this TdfWafer solution solName -- which is created if necessary.

Method: int TdfWafer::solutionPropIndex (
const char* solName)
Returns the index of the solution named solName, or @minus{1} if it does not exist.

Method: TdfAttributes& TdfWafer::solutionPropertiesOf (
const char* solName) const
Similar to solutionProperties(solName) but if such TdfAttributes does not exist a dummy reference is returned.

2.2.5.3 TdfWafer -- TdfWaferDataSet Interface

Method: unsigned TdfWafer::nWaferDataSets () const
Returns the number of TdfWaferDataSets contained in this TdfWafer.

Method: TdfWaferDataSet& TdfWafer::waferDataSet (unsigned i) const
Returns a const reference to the i-th TdfWaferDataSet contained in this TdfWafer (see section 2.2.6 TdfWaferDataSet).

Method: TdfWaferDataSet>& TdfWafer::waferDataSet (unsigned i) const
Returns a reference to the i-th TdfWaferDataSet --- which is created if necessary --- contained in this TdfWafer (see section 2.2.6 TdfWaferDataSet).

2.2.6 TdfWaferDataSet

#include "TdfWaferDataSet.hh"

The TdfWaferDataSet class represents a wafer or a structure. It may contain geometry, regions, mesh, element data, node data.

The most important class contained is the TdfFieldSet (see section 2.3.1 TdfFieldSet) which is a super-class of TdfRegion (see section 2.3.2 TdfRegion).

Method: void TdfWaferDataSet::clear ()
Clears all data within this TdfWaferDataSet.

Method: unsigned TdfWaferDataSet::dimension () const
Returns the dimension of this TdfWaferDataSet.

Method: void TdfWaferDataSet::dimension (unsigned d)
Sets the dimension of this TdfWaferDataSet to d.

Method: unsigned TdfWaferDataSet::nCoordFlat () const
Returns the number of floats and the flattened array of coordinates.
For example, if this wafer-data-set is of dimension d and has n nodes of unstructured mesh, then this function will return d*n.

Method: const vector<float>& TdfWaferDataSet::coordinates () const
Returns a const reference to array of the coordinates. Its size can also be obtained by TdfWaferDataSet::nCoordFlat(). For 3D the order is: x0, y0, z0, x1, y1, z1, ...

Method: vector<float>& TdfWaferDataSet::coordinates ()
Non-const version of the above.

Method: unsigned TdfWaferDataSet::nCoordNode () const
Returns the number of nodes with explicit coordinates. Note that data with structured or uniform mesh does not come with explicit node coordinates.

Method: const float* TdfWaferDataSet::getCoordNode (
unsigned i, float* f)
Copy the coordinates of the i-th node into f which is also returned.

Method: const float* TdfWaferDataSet::coordNode (
unsigned i, const float* f)
Sets the d coordinates of the i-th node, where d is the dimension.

Now for some interface functions to the underlying array of field-sets. Here things may vary depending on the nature of the application. Internally, we use array of pointers to TdfFieldSet (see section 2.3.1 TdfFieldSet). The pointers may actually point to a subclass of TdfFieldSet, mostly TdfRegion (see section 2.3.2 TdfRegion).

Method: unsigned TdfWaferDataSet::nRegions () const
Returns the number of instances of TdfRegions pointed from this TdfWaferDataSet.

Method: unsigned TdfWaferDataSet::nFieldSets () const
Note: This function is deprecated. Use nRegions(i) instead.

Returns the number of instances of TdfFieldSets (or a sub-class) pointed from this TdfWaferDataSet.

Method: const TdfRegion* TdfWaferDataSet::region (
unsigned i)
Returns a const pointer to the i-the TdfRegion belonging to this TdfWaferDataSet. Null is returned if such region does not exist.

Method: const TdfFieldSet* TdfWaferDataSet::fieldSet (
unsigned i) const

Note: This function is deprecated. Use region(i) instead.

Returns a const pointer to the i-the TdfFieldSet (or a sub-class) belonging to this TdfWaferDataSet.

Method: TdfRegion* TdfWaferDataSet::region (
unsigned i)
Returns a pointer to the i-the TdfRegion of this TdfWaferDataSet. If any of the region(j), where j <= i, do not exist prior to the call then they are created.

Method: TdfRegion* TdfWaferDataSet::newRegion (
const char* rgnName)
Allocates a new TdfRegion and names it rgnName. It is similar to:
   TdfRegion*  rgn = region(nRegions());
   rgn->objectName(rgnName);
   return(rgn);

Method: TdfFieldSet* TdfWaferDataSet::fieldSet (
unsigned i, const char* subClassName = 0)

Note: This function is deprecated. Use region(i) or newRegion(.) instead.

Returns a pointer to the i-the TdfFieldSet (or a sub-class) belonging to this TdfWaferDataSet.

If subClassName != 0 Creates a new appropriate subclass of TdfFieldSet. Recognized subclass-names are:

All previously uninitialized fieldSet(j) (where 0<=j<i) are created as the type of fieldSet(i)

Now for some interface functions to the underlying array of geometries. Here things may vary depending on the nature of the application. We use array of pointers to TdfGeometry (see section 2.6 Geometry). The pointers may actually point to a subclass of TdfGeometry.

Method: unsigned TdfWaferDataSet::nGeometries () const
Returns the number of instances of TdfGeometry (or a sub-class) pointed from this TdfWaferDataSet.

Method: const TdfGeometry* TdfWaferDataSet::geometry (unsigned i) const
Returns a const pointer to the i-the TdfGeometry (or a sub-class) belonging to this TdfWaferDataSet (see section 2.6.1 TdfGeometry).

Method: TdfGeometry* TdfWaferDataSet::geometry (
unsigned i, const char* subClassName = 0)
Returns a pointer to a sub-class of the i-the TdfGeometry belonging to this TdfWaferDataSet.

If subClassName != 0 Creates a new appropriate subclass of TdfGeometry. Recognized subclass-names are:

All previously uninitialized geometry(j) (where 0<=j<i) are created as the type of geometry(i) (see section 2.6.1 TdfGeometry).

2.2.7 TdfAttributes

#include "TdfAttributes.hh"

This class maps strings to values (see section 2.2.8 TdfValue). The values could be ints, floats, char-strings and (recursive) attributes-set -- TdfAttributes.

TDF uses this class in every subclass of TdfGroup (see section 2.7.2 TdfGroup).

Method: bool TdfAttributes::setValue (
const char* keyStr, const TdfValue& val)
Sets the mapping keyStr -> val of this attributes-set. Returns true if no value was assigned to keyStr before.

Method: bool TdfAttributes::delValue (const char* keyStr)
Deletes any mapping from keyStr in this attributes-set. Returns true if indeed there was a deletion.

Method: unsigned TdfAttributes::nAttributes () const
Returns the number of attributes, i.e. (string,value) pairs in this attributes-set.

Method: const TdfValue* TdfAttributes::value (
const char* keyStr) const
Returns a const pointer the value assigned to keyStr in this attributes-set. If no value is assigned, null is returned.

Method: const char* TdfAttributes::strValue (
const
char* keyStr) const Convenience function that returns the string value assigned to keyStr. Otherwise, null is returned.

Method: const TdfValue& TdfAttributes::operator[] (
const char* keyStr) const
Returns a const reference to the value assigned to keyStr in this attributes-set. Returns reference to dummy value if not assigned. This is a convenience function, for the case a value is known to be set. One may use TdfAttributes::value(keyStr) to check.

Method: TdfValue& TdfAttributes::operator[] (const char* keyStr)
Returns a reference to the value assigned to keyStr in this attributes-set. If necessary, a dummy value is created and assigned to keyStr.

Method: TdfAttributes::KeyIter TdfAttributes::keyBegin () const
Returns an iterator (see section 2.2.9 TdfAttributes::KeyIter) to the beginning of the keys for which mapping are defined in this attributes-set. STL-like.

Method: TdfAttributes::KeyIter TdfAttributes::keyEnd () const
Returns an iterator (see section 2.2.9 TdfAttributes::KeyIter) to the past-end of the keys for which mapping are defined in this attributes-set. STL-like.

2.2.8 TdfValue

#include "TdfValue.hh"

TdfValue is a class that can hold:

There are several classes involved in implementing TdfValue, Among them is TdfValueData, from which applications needs to know the following enumeration, all of type TdfValueData::Type:

Method: TdfValueData::Type TdfValue::type () const
Returns the enumerated (see above) type of this value.

Method: unsigned TdfValue::nVal () const
Returns the number of elements of this value. It could be > 1 only for arrays, which may exist only for types TdfValueData::Int or TdfValueData::Float.

Integer Values

Method: void TdfValue::setInt (int v)
Sets this value to v of TdfValueData::Int type.

Method: int TdfValue::getInt (int v) const
If this hold TdfValueData::Int type value returns the value, otherwise return 0.

Method: void TdfValue::setIntArray (
const int* begin, const int* end)
Sets this to TdfValueData::Int value-type, with the array int values of the STL-like range [begin, end).

Method: const vector<int>* TdfValue::getIntArray () const
If this holds TdfValueData::Int type value then return a const pointer to the vector of ints. otherwise return null-pointer.

Float Values

Method: void TdfValue::setFloat (float v)
Sets this value to v of TdfValueData::Float type.

Method: float TdfValue::getFloat (float v) const
If this hold TdfValueData::Float type value returns the value, otherwise return 0.0.

Method: void TdfValue::setFloatArray (
const float* begin, const float* end)
Sets this to TdfValueData::Float value-type, with the array of float values of the STL-like range [begin, end).

Method: const vector<float>* TdfValue::getFloatArray () const
If this holds TdfValueData::Float type value then return a const pointer to the vector of floats. otherwise return null-pointer.

String Values

Method: void TdfValue::setString (const char* cs)
Sets this value to cs of TdfValueData::String type.

Method: void TdfValue::getString (const string& st) const
Sets this value to st of TdfValueData::String type.

Method: const char* TdfValue::setString (int v) const
If this hold TdfValueData::String type value returns a const pointer to the character-string array. otherwise return empty string "".

Attributes Values

Again, this is a recursion. A value of TdfAttribute type can map string to values.

Method: void TdfValue::setMap (const TdfAttributes* v)
Sets this value to the v attribute-set. Note that this actually copies v. if v is null then this value is cleared.

Method: const TdfAttributes* TdfValue::getMap () const
If this holds TdfValueData::Attributes type value then return a const pointer to the value, otherwise return null-pointer.

Method: TdfAttributes* TdfValue::getMap ()
If this holds TdfValueData::Attributes type value then return a pointer to the value, otherwise return null-pointer.

2.2.9 TdfAttributes::KeyIter

#include "TdfAttributes.hh"

TdfAttributes::KeyIter is an iterator nested class of TdfAttributes (see section 2.2.7 TdfAttributes). It can be used to iterate over the keys for which attributes are defined.

Method: const char* TdfAttributes::keyIter::operator* () const
Returns a const char* string which is the key of the (string,value) pair this attribute-iterator points to. This string may be invalidated by future operations on the attribute-set.

Method: TdfAttributes::keyIter TdfAttributes::keyIter::operator++ ()
Advances this iterator, and returns its new value.

Method: TdfAttributes::keyIter TdfAttributes::keyIter::operator++ (int)
Advances this iterator, and returns its original value.

2.3 FieldSet Classes

The FieldSet classes are classes that describes the mesh and the fields and the relation between them.

Note: In some previous versions of TDF-API there was also TdfInterface sub-class which was removed. Also TdfFieldSet is considered obsolete as an instance, but is maintained for backward compatibility as a base class for TdfRegion.

2.3.1 TdfFieldSet

#include "TdfFieldSet.hh"

Note: It is recommedned that application will the subclass instantiate TdfRegion (see section 2.3.2 TdfRegion) rather than TdfFieldSet.
Still, the member functions of TdfFieldSet are valid for TdfRegion.

The TdfFieldSet class holds

The fields are closely related to the mesh.

The TdfFieldSet has a unique mesh. An instance fs of TdfFieldSet always belongs to a TdfWaferDataSet w (see section 2.2.6 TdfWaferDataSet). In the case of unstructured mesh, the coordinates of the mesh nodes are owned by w. In such case, the nodes coordinates are shared by all of w's instances of TdfFieldSets. If a node n is common to more than a single TdfFieldSet -- say fs0, fs1 -- of the same TdfWaferDataSet, then it must be on the boundaries of the TdfFieldSets and it may have specific node-data for each fsi

Method: void TdfFieldSet::clear ()
Clears all data within this TdfFieldSet.

Method: const TdfMesh* TdfFieldSet::mesh () const
Returns a const pointer to this TdfFieldSet's mesh (see section 2.4.1 TdfMesh).

Method: TdfMesh* TdfFieldSet::mesh ()
Returns a pointer to this TdfFieldSet's mesh (see section 2.4.1 TdfMesh).

Method: TdfMesh* TdfFieldSet::setMesh (
const char* meshClassName)
If current mesh exists, clear it, and initialize new mesh subclass according to the specified meshClassName. Supported class-names are:

Since node-data is used more often than element data, we generally omit the term 'node' from the member names. So TdfFieldSet::nField and TdfFieldSet::field refer to node-data fields.

Method: unsigned TdfFieldSet::nField () const
Returns the number of node-data fields defined for this TdfFieldSet.

Method: const TdfField * TdfFieldSet::field (unsigned i) const
Returns a const pointer of the i-th node-data TdfField of this TdfFieldSet (see section 2.5.2 TdfField).

Method: TdfField* TdfFieldSet::field (
unsigned i, const char* subClassName = 0)
Returns a pointer to a sub-class of the i-the TdfFieldSet belonging to this TdfFieldSet.

If subClassName != 0 then a new appropriate subclass of TdfFieldSet is created. Recognized subclass-names are:

All previously uninitialized field(j) (where 0<=j<i) are created as the type of field(i) (see section 2.5.2 TdfField.

And now for the element data fields.

Method: void TdfFieldSet::nElementData () const
Returns the number of element-data fields defined for this TdfFieldSet.

Method: const TdfFieldNumeric& TdfFieldSet::elementData (
unsigned i) const
Returns a const reference to the i-th elementData-data TdfFieldNumeric& that belong to this TdfFieldSet (see section 2.5.3 TdfFieldNumeric).

Method: TdfFieldNumeric& TdfFieldSet::elementData (
unsigned i)
Returns a reference to the i-th elementData-data TdfFieldNumeric& that belong to this TdfFieldSet (see section 2.5.3 TdfFieldNumeric).

Method: const TdfAttributes* TdfFieldSet::materialProperties () const
virtual function that returns a pointer to the TdfAttributes of the material of this TdfFieldSet. For instances of TdfFieldSet it returns 0. This method is actually used for the TdfRegion subclass (see section 2.3.2 TdfRegion).

Method: const TdfWafer void TdfFieldSet::pWafer () const
Returns a const pointer to the TdfWafer w which this TdfFieldSet fs belong to. Note, there must be a TdfWaferDataSet wds which belongs to w and contains this fs (see section 2 C++ Classes diagrams).

2.3.2 TdfRegion

#include "TdfRegion.hh"

The TdfRegion is a subclass of TdfFieldSet (see section 2.3.1 TdfFieldSet). The only addition here is the material that the region has.

Method: const char* TdfRegion::materialName () const
Returns the material name of this TdfRegion.

Method: void TdfRegion::materialName (const char* mn)
Sets the material name of this TdfRegion to mn.

2.4 Mesh Classes

The mesh classes define the partition of the geometrical structure to finite elements thus also introducing sets of nodes. These elements and nodes are used for assigning or calculating data.

There are several types of meshes (see section 2 C++ Classes diagrams).

The mesh instances are owned by TdfFieldSet (see section 2.3.1 TdfFieldSet), That in turn has a TdfWaferDataSet parent (see section 2.2.6 TdfWaferDataSet). Hence, every instance of a class or sub-class of TdfMesh has a well-defined ancestor instance of TdfWaferDataSet (grandparent)..

2.4.0.1 Mesh - Cast Down Functions

There are const and non-const safe cast down functions for the specific mesh sub-classes. They can also be used to determine the meh-type. If the cast down is not appropriate for the object the null pointer is returned

2.4.1 TdfMesh

#include "TdfMesh.hh"

Here is the enumeration TdfMesh::Type of the mesh-types:

  • TdfMesh::Uniform
  • TdfMesh::Rectilinear
  • TdfMesh::Irregular
  • TdfMesh::Scatter
  • TdfMesh::Element, Also referred to as "Unstructured Mesh".
  • Method: void TdfMesh::clear ()
    Clears all data within this TdfMesh.

    Method: TdfMesh::Type TdfMesh::type () const
    Returns the type of the mesh of this TdfMesh.

    Method: unsigned TdfMesh::dimension () const
    Returns the dimensionality of this mesh. If it is not explicitly (see TdfMesh::dimension(int)) set, then the parent TdfWaferDataSet's dimension is returned. (see section 2.4.1.5 TdfMeshElement)

    Method: void TdfMesh::setDimension (int d)
    Explicitly define the dimensionality of the mesh. It may be less than the dimensionality of the parent TdfWaferDataSet.

    Method: void TdfMesh::nNodes ()
    Returns the number of nodes this mesh defines (pure virtual). Note, for structured mesh this number has no relation with the TdfWaferDataSet::nCoordNode.

    Method: int TdfMesh::coordIndex (unsigned nodeIndex) const
    Maps from mesh-indexing to the entry in the global coordinate arrays. This, of course, is applicable only to meshes that uses such array (see section 2.4.1.5 TdfMeshElement).

    Method: float* TdfMesh::nodeCoords (float* coords, unsigned ni) const
    Returns the coordintates of the ni-th node of this mesh into the supplied coords array. The dimensionality is taken from TdfWaferDataSet ancestor. Returns coords for convenience .

    Method: unsigned TdfMesh::nElements () const
    Returns the number of elements of this mesh (pure virtual).

    Method: void TdfMesh::elementVertices (
    vector<unsigned>& vi, unsigned ei) const
    Returns thru vi, the node indices of the ei-th element of this mesh.

    Method: const TdfMeshElement* TdfMesh::meshElement () const
    Returns 0 unless this instance of TdfMesh is of a subclass TdfMeshElement in which case it returns this.

    2.4.1.1 TdfMeshUniform

    #include "TdfMeshUniform.hh"

    The TdfMeshUniform class is the simplest sub-class of TdfMesh (see section 2.4.1 TdfMesh). It divides a rectangle or box (2D or 3D respectively) into equally sized sub rectangles or sub boxes.

    Thus, the mesh is determined by:

    2.4.1.2 Getting Functions

    Method: const float* TdfMeshUniform::minXYZ () const
    Returns a 3-float pointer to this uniform mesh min vertex of its major diagonal. Note: For 2D only the first two numbers are meaningful.

    Method: const float* TdfMeshUniform::maxXYZ () const
    Returns a 3-float pointer to this uniform mesh max vertex of its major diagonal. Note: For 2D only the first two numbers are meaningful.

    Method: const unsigned* TdfMeshUniform::nXYZ () const
    Returns a pointer to a 3-unsigned array representing the numbers by which dimension is divided in the uniform mesh. Note: For 2D only the first two numbers are meaningful.

    2.4.1.3 Setting Functions

    Method: void TdfMeshUniform::minXYZ (const float* v3)
    Sets the min vertex of this uniform mesh's major diagonal to the supplied 3-float array pointer v3. Note: Must supply 3-sized arrays even in 2D case.

    Method: void TdfMeshUniform::min (unsigned i, float v)
    Sets the i-th (i=0,1,2) component of the min vertex of this uniform mesh's major diagonal to v.

    Method: void TdfMeshUniform::maxXYZ (const float* v3)
    Sets the max vertex of this uniform mesh's major diagonal to the supplied 3-float array pointer v3.
    Note: Must supply 3-sized arrays even in 2D case.

    Method: void TdfMeshUniform::max (unsigned i, float v)
    Sets the i-th (i=0,1,2) component of the min vertex of this uniform mesh's major diagonal to v.

    Method: void TdfMeshUniform::nXYZ (const unsigned* v3)
    Sets the numbers by which this uniform mesh divides the rectangle or box in each dimension to nx, ny , nz. Note: Must supply 3-sized arrays even in 2D case, in which, nz will be ignored.

    Method: void TdfMeshUniform::n (unsigned i, float v)
    Sets the number by which this uniform mesh divides the rectangle or box in each dimension. Note: Must supply 3-sized arrays even in 2D case.

    2.4.1.4 TdfMeshRectilinear

    #include "TdfMeshRectilinear.hh"

    The TdfMeshRectilinear class is a sub-class of TdfMesh (see section 2.4.1 TdfMesh). It divides a rectangle or box (2D or 3D respectively) into sub rectangles or sub boxes. This is done by dividing each dimesnion of the rectangle or boxes independently and then taking cartesian products.

    We have, (Hard copy looks better here...)
    x_0 <= x_1 <= ... x_Nx-1
    y_0 <= y_1 <= ... y_Ny-1
    z_0 <= z_1 <= ... z_Nz-1
    We refer to the W_i (w=x,y,z) as the ticks on the W-dimension.
    In the 2D case we should have z_i = 0 and (Nx-1)(Ny-1)$ sub rectangles.

    In the 3D case we have $(Nx-1)(Ny-1)(Nz-1)$ boxes.

    Method: void TdfMeshRectilinear::nTicks (unsigned axis) const
    Sets the number of ticks this rectilinear mesh has in its axis-th dimension.

    Method: void TdfMeshRectilinear::getTicks (
    unsigned axis, float* ticks) const
    Gets the ticks this rectilinear mesh has in its axis-th dimension thru the supplied float array ticks of sufficient size.

    Method: void TdfMeshRectilinear::setTicks (
    unsigned axis, unsigned nt, const float* ticks) const
    Sets this rectilinear mesh ticks on in its axis-th dimension. It will be assigned nt ticks with values given in the float array ticks.

    2.4.1.5 TdfMeshElement

    #include "TdfMeshElement.hh"

    The TdfMeshElement class is the most complicated sub-class of TdfMesh (see section 2.4.1 TdfMesh). The main source of complexity comes from the fact that the element of the mesh, that this class carries, may vary in types. Still, for efficiency we would like to be able to access nodes and elements fast.

    Method: TdfMesh::Type TdfMeshElement::type () const
    Returns TdfMesh::Element.

    The elements of the mesh defined by an instance of TdfMeshElement can be of any of the enumeration defined by TdfElement::Type (see section 2.4.1.6 TdfElement). We distinguish between element of fixed-type topology and general polygons and general polyhedrons. The reason for this as the fact that the fixed type are very common, and treating them separately simplifies the random access of a fixed-type element.

    Each element has node indices, pointing to the common coordinate array owned by the TdfWaferDataSet ancestor (TdfGroup::pWDS see section 2.7.2 TdfGroup). These indices are concatenated into a connection list. Naturally, connection list will have repetitions of indices, since same vertices appear in different elements.

    The TdfMeshElement has a separate connection-list for each of the 8 fixed elements types; i.e.:
    Node, Edge, Triangle, Quad, Tetrahedron, Pyramid, Prism, Hexahedron.
    Note that every such fixed type has a constant number of nodes (TdfElement::nElementVertices see section 2.4.1.6 TdfElement).

    There are member functions accessing these fixed-type connection-list. Rather then specifying them for the each of the 8 fixed types we'll describe their common pattern using foo and Foo. The actual members names are obtained by replacing:

    foo
    with one of:
    singleNode, edge, triangle, quad, tetrahedron, pyramid, prism, hexahedron
    Foo
    with one of:
    SingleNode, Edge, Triangle, Quad, Tetrahedron, Pyramid, Prism, Hexahedron

    Method: unsigned TdfMeshElement::nFoos () const
    Returns the number of Foo elements in this TdfMeshElement
    (e.g: TdfMeshElement:nTriangles().

    Method: const vector<unsigned>& TdfMeshElement::foo () const
    Returns a const reference to the connection-list of the foo in this TdfMeshElement (e.g: TdfMeshElement:triangle()).

    There is a non-const variant of this function, but it should be used with special care, since it is not safe in term of consistency of arrays lengths, and the synchronizing with the array given by TdfMeshElement::allNodes().

    Method: void TdfMeshElement::fooAppend (const unsigned* pu) const
    Appends a copy of nv node-indices to the connection-list of the foo (fixed-type) element of this TdfMeshElement, where nv is well defined by foo.
    For example,
    TdfMeshElement::triangleAppend(const unsigned *pu)
    with pu points to nv=3 indices.

    Method: void TdfMeshElement::foosReshape (const unsigned nel) const
    Reshapes the connection-list array of the foo (fixed-type) element of this
    TdfMeshElement, to hold nel foo elements. For example:
    TdfMeshElement::triangleAppend(unsigned 5)
    will make room for 5 triangles, i.e. 15 node indices.

    In Addition to the "patterned" members there are some interface to the fixed-type element connection lists, where the actual type is given as a parameter.

    Method: const vector<unsigned>& TdfMeshElement::connection (
    TdfElement::Type elemType) const
    Returns a const reference to the connection-list of the elemType fixed-type element in this TdfMeshElement.

    Method: vector<unsigned>& TdfMeshElement::connection (
    TdfElement::Type elemType)
    Returns a reference to the connection-list of the elemType fixed-type element in this TdfMeshElement.

    Method: unsigned TdfMeshElement::nElements (
    TdfElement::Type elemType)
    Returns the number of elements of the fixed type elemType in this TdfMeshElement.

    Method: TdfElement::Type TdfMeshElement::elementType (unsigned ei)
    Returns the element type of the ei-th element. in this TdfMeshElement.

    Method: const vector<unsigned>& TdfMeshElement::allNodes () const
    Returns an array of all vertices indices that belongs to the mesh in this TdfMeshElement. This array is uniquely sorted and cached. It is recalculated on demand if any of the connection list has been updated.

    Now, for the non-fixed element types.

    Method: unsigned TdfMeshElement::nPolygon () const
    Returns the number of arbitrary-number nodes polygons in this TdfMeshElement. Note, the triangle or quad specific connection lists are maintained separately.

    Method: unsigned TdfMeshElement::nPolyhedron () const
    Returns the number of arbitrary polyhedrons. in this TdfMeshElement.@c Note: the connection lists of: tetrahedron, pyramid, prism, hexahedron
    are maintained separately.

    From now on in this TdfMeshElement--section, whenever we say polygon, or polyhedron, we do not refer to the fixed-type elements.

    The polygons are maintained internally by two arrays. One that holds the sizes (number of vertices), and the other a simple concatenation of all the vertices indices of all polygons.

    Method: const vector<unsigned>& TdfMeshElement::polygonNNodes () const
    Returns a const reference to the array of polygons sizes.

    Method: vector<unsigned>& TdfMeshElement::polygonNNodes ()
    Returns a reference to the array of polygons sizes.

    Method: const vector<unsigned>& TdfMeshElement::polygonConnectList () const
    Returns a const reference to the connection list of all polygons.

    See explanation in the hard-copy.

    Method: void TdfMeshElement::polygonConnectReshape (unsigned l)
    Reshapes the connection list array of the polygons to hold l node indices.

    Method: void TdfMeshElement::polygonConnectAppend (
    const unsigned* ua, unsigned n)
    Appends a polygon with n vertices whose indices are copied from the array pointed by ua.

    A polyhedron are defined by its boundary which consists of polygons. The polygons are maintained internally by two arrays. One that holds the sizes (number of boundary polygons), and the other a simple concatenation of all the polygon indices of all polyhedrons.

    Method: const vector<unsigned>& TdfMeshElement::polyhedronNBdyPolygons () const
    Returns a const reference to the array of polygons sizes.

    Method: vector<unsigned>& TdfMeshElement::polyhedronNBdyPolygons ()
    Returns a reference to the array of polyhedrons sizes.

    The polyhedron interface is not yet completed.

    Boundary

    Although the boundary may be calculated from the mesh
    (See TdfMeshElement::generateBoundary), it is more efficient and consistent to store and load it.

    The boundary consists of an array of geometries where each is a boundary component. For 2D mesh the boundary is of TdgGeometry1D components. For 3D mesh the boundary is of TdgGeometry2D components. When the mesh-dimension is the same as the space-dimension (i.e. not the case of 2D-mesh in 3D-space) the first boundary component is external the others are holes.

    Note: do not confuse the mesh-boundary discussed here, with the other function that refers to boundary of single elements.

    Method: unsigned TdfMeshElement::nBoundary () const
    Returns the number of boundary components assigned with this TdfMeshElement.

    Method: TdfGeometry* TdfMeshElement::boundary (unsigned i) const
    Retrieves a const pointer to the i-th component of the boundary which is a subclass of TdfGeometry (see section 2.6.1 TdfGeometry). Note that it could be calculated via TdfMeshElement::generateBoundary.

    Method: bool TdfMeshElement::boundaryAppendComponent (const TdfGeometry& g i) const
    Appends g as a boundary component for this TdfMeshElement.

    Method: void TdfMeshElement::boundary (const TdfGeometry& bdy)
    Sets this mesh's boundary to bdy. Note: there is no consistency check for this boundary bdy to be consistent with the underlying mesh.

    Method: bool TdfMeshElement::generateBoundary (
    vector<TdfVGDBase*>& geoms, float coplanarCosine = 0.999) const

    Generate the boundary of this element mesh. The boundary is returned thru geoms. The caller is responsible for the deletions of geoms pointers.

    This calculation is rather complicated. The algorithm basically traverses all the elements' boundaries. These elements' boundaries are edges for 2D, and polygons for 3D. Every element-boundary may be a boundary of one or two elements - but not more! Every internal element-boundary is traversed exactly twice. The resulted boundary comprises the union of all the elements' boundaries that were traversed exactly once. In the case of 2D-mesh in 3D-space (see later) there is further complexity, that double edges are not "canceled out" if they belong to faces which are coplanar (via coplanarCosine).

    Notes:

    Method: unsigned TdfMeshElement::dimension () const
    Returns the dimensionality of this mesh. Overrides TdfMeshElement::dimension() (see section 2.4.1 TdfMesh). If it is not explicitly given and the mesh is not empty, return the highest element dimension.

    Method: bool TdfMeshElement::generateSelfBoundary (
    float coplanarCosine = 0.999)
    This is a convenience function that calls generateBoundary and sets the resulting boundary.

    2.4.1.6 TdfElement

    #include "TdfElement.hh"

    The TdfElement provides further interface that may be desired to instantiate elements defined via TdfMeshElement (see section 2.4.1.5 TdfMeshElement).

    There are some useful static definitions for this class.

    TdfElement has Type enumeration that defines the element geometric type for nFixedType basic fixed topology types and for general polygon or polyhedron.

    TdfElement::Node
    TdfElement::Edge
    TdfElement::Triangle
    TdfElement::Quad
    TdfElement::Tetrahedron
    TdfElement::Pyramid
    TdfElement::Prism
    TdfElement::Hexahedron

    TdfElement::nFixedType
    Number of fixed-type topology
    TdfElement::Polygon
    TdfElement::Polyhedron
    TdfElement::nType
    Equals nFixedType + 2.

    2.5 Field Classes

    2.5.1 TdfFieldDef

    #include "TdfFieldDef.hh"

    2.5.2 TdfField

    #include "TdfField.hh"

    Fields are used for assigning values to nodes or elements. They could be scalar or multi-valued. The values can be given by numerical data, or calculated by analytic formula.

    The TdfField is an abstract base class from which other field classes are defined and could be instantiated (see section 2 C++ Classes diagrams).

    Method: void TdfField::clear ()
    Clears all data within this TdfField.

    Method: TdfFieldDef::Type TdfField::type ()
    Returns the enumerated type TdfFieldDef::Type of the field (see section 2.5.1 TdfFieldDef). Currently, only TdfFieldDef::Float -- that corresponds to C's float -- is supported.

    Method: unsigned TdfField::order () const
    Returns the order of the field. For scalar valued field it is 1, for vector field it may be more. Frequently, the terms columns or number of columns are used instead.

    Method: unsigned TdfField::nRows () const
    Returns the number of nodes or elements this field applies to.

    Method: float* TdfField::getData (
    unsigned i, float* fa) const
    Get the value of this field in its i-th row (node or element), i < order(). The data is returned thru the supplied array fa that must be of the order() size. For convenience, fa is returned.

    Method: float* TdfField::getDataArray (
    unsigned row0,
    unsigned nRows, float* fa) const
    Get the values of this field for nRows starting from its row0-th row (nodes or elements), row0 + nRows < order(). must hold.
    The data is returned thru the supplied array fa that must be of the order()*nRows size. For convenience, fa is returned.

    2.5.3 TdfFieldNumeric

    #include "TdfFieldNumeric.hh"

    TdfFieldNumeric is a subclass of TdfField (see section 2.5.2 TdfField). It holds numerical data, both for scalar or vector field. Internally the data is always flattened to a linear array. Still we have the notion of number of rows and number of columns which is also referred to as order.

    Method: void TdfField::reserve (unsigned nRows) const
    Hint to this TdfFieldNumeric to reserve space for nRows rows.

    Method: float* TdfFieldNumeric::setData (unsigned i, float* fa) const
    Copies from fa n floats to set the i-th row numerical data of this TdfFieldNumeric, where n is the order of this field.

    Method: void TdfFieldNumeric::setDataArray (
    unsigned row0,
    unsigned nRows, const float* fa)
    Sets nRows*order float values onto nRows beginning with row0. More efficient than calling setData nRows times:
    for (r=row0; r<row0+nr; setData(r, fa + r*order()), r++)

    Method: float* TdfFieldNumeric::getDataArray (
    unsigned row0,
    unsigned nRows, float* fa) const
    Implements the virtual TdfFieldNumeric::getDataArray(.,.,.) to be done more efficiently (see section 2.5.2 TdfField).

    Method: const vector<float>& TdfFieldNumeric::data () const
    Returns a const reference to the (flattened) array of numerical data.

    Method: vector<float>& TdfFieldNumeric::data ()
    Returns a reference to the (flattened) array of numerical data.

    2.5.4 TdfFieldAnalytic

    #include "TdfFieldAnalytic.hh"

    TdfFieldAnalytic is a subclass of TdfFieldNumeric (see section 2.5.3 TdfFieldNumeric).

    2.5.5 TdfAnalyticDoping

    #include "TdfAnalyticDoping.hh"

    TdfFieldNumeric is a subclass of TdfFieldAnalytic (see section 2.5.4 TdfFieldAnalytic). It hold 10 numerical constants that define a formula.

    formula methods not yet documented

    See hard copy for description of the formula.

    2.6 Geometry

    2.6.1 TdfGeometry

    #include "TdfGeometry.hh"

    The TdfGeometry is an abstract class. For each of the d=0,1,2,3 dimensions there corresponds a class TdfGeometrydD.

    2.6.1.1 Geometry - Cast Down Functions

    There are const and non-const safe cast down functions for the dimension-specific sub-classes. They also can be used to determine dimensionality.

    For d=1,2,3 the virtual functions --- TdfGeometry::geometrydD()
    return this if this is class TdfGeometrydD and 0 otherwise.

    Method: const TdfGeometry0D* TdfGeometry::thisGeometry0D () const

    Method: TdfGeometry0D* TdfGeometry::thisGeometry0D ()

    Method: const TdfGeometry1D* TdfGeometry::thisGeometry1D () const

    Method: TdfGeometry1D* TdfGeometry::thisGeometry1D ()

    Method: const TdfGeometry2D* TdfGeometry::thisGeometry2D () const

    Method: TdfGeometry2D* TdfGeometry::thisGeometry2D ()

    Method: const TdfGeometry3D* TdfGeometry::thisGeometry3D () const

    Method: TdfGeometry3D* TdfGeometry::thisGeometry3D ()

    Method: float* TdfGeometry::point (float* coord, unsigned i) const
    Writes the coordinates value of the i-th vertex to the coord supplied array of the dimensionality size. For convenience, returns coord. A call to this function is valid if and only if this TdfGeometry instance belongs to an instance of TdfWaferDataSet using its coordinates (see section 2.2.6 TdfWaferDataSet).

    Method: virtual unsigned TdfGeometry::nVertices () const
    Returns the number of vertices this TdfGeometry has.

    2.6.2 TdfGeometry0D

    #include "TdfGeometry0D.hh"

    The TdfGeometry0D class is a subclass of TdfGeometry (see section 2.6.1 TdfGeometry). It holds discrete vertices. Note that this may not be connected as the other TdfGeometrydD for 1<=d<3

    Method: unsigned TdfGeometry0D::nVertices () const
    Returns the number of vertices this TdfGeometry0D has.

    Method: unsigned TdfGeometry0D::vertex (unsigned i) const
    Returns the coordinates-index of the i-th vertex of this TdfGeometry0D.

    Method: unsigned TdfGeometry0D::vertexAppend (unsigned i) const
    Appends the coordinates-index of the i-th vertex of this TdfGeometry0D.

    Method: float* TdfGeometry0D::vertexPoint (
    float* coord, unsigned i) const
    Write to coords the coordinates of this TdfGeometry0D's i-th vertex. Return coord.

    Method: bool TdfGeometry0D::hasVertex (unsigned ci) const
    Check if this TdfGeometry0D's contains a vertex whose coordinates-index is ci.

    2.6.3 TdfGeometry1D

    #include "TdfGeometry1D.hh"

    The TdfGeometry1D class is a subclass of TdfGeometry (see section 2.6.1 TdfGeometry). It contains a connected polyline. Closed polylnes are implemented by having an equal coordinate-index for their first and last vertices.

    A polyline P1,P2,P3,...Pn may be defined as a sequence of edges where vertices are repeated: [P1,P2] , [P2,P3] ... [Pn-1,Pn]

    A vertex is represented as an index. An edge is represented as a pair of two indices. The indices are actually used with coordinates arrays of TdfWaferDataSet (see section 2.2.6 TdfWaferDataSet).

    2.6.3.1 TdfGeometry1D -- Vertices

    Method: unsigned TdfGeometry1D::vertex (unsigned i) const
    Returns the coordinates index of the i-th vertex of this TdfGeometry1D.

    Method: void TdfGeometry1D::vertexAppend (unsigned ci) const
    Appends a vertex coordinates-index ci to this TdfGeometry1D.

    Method: float* TdfGeometry1D::vertexPoint (float* coord, unsigned i) const
    Returns the coordinates of the i-th vertex, thru coord - (See TdfGeometry::point(...) see section 2.6.1 TdfGeometry).

    Method: void TdfGeometry1D::polyLineAppend (const unsigned* via, unsigned nv) const
    Appends nv vertices coordinate indices given in via to this TdfGeometry1D.

    2.6.3.2 TdfGeometry1D -- Edges

    Method: unsigned TdfGeometry1D::nEdges () const
    Returns the number of edges this TdfGeometry1D has (see section 2.6.4 TdfGeometry1D::Edge).

    Method: TdfGeometry1D::Edge TdfGeometry1D::edge (ei) const
    Returns the ei-th edge of this TdfGeometry1D (see section 2.6.4 TdfGeometry1D::Edge).

    Method: bool TdfGeometry1D::edgeAppend (
    const TdfGeometry1D::Edge e)
    Appends the edge e to this TdfGeometry1D if and only if it is the first edge or its first end-point equals the last end-point of the current poly-line (see section 2.6.4 TdfGeometry1D::Edge). The restriction is for ensuring a connected poly-line.

    Method: float* TdfGeometry1D::hasEdge (
    unsigned v0, unsigned v1) const
    Returns true if this TdfGeometry1D has the edge [v0, v1], false otherwise.

    2.6.4 TdfGeometry1D::Edge

    #include "TdfGeometry1D.hh"

    The TdfGeometry1D::Edge is a trivial nested class of TdfGeometry1D.

    Constructor: TdfGeometry1D::Edge::Edge (
    unsigned v0, unsigned v1)
    Construct an instance of TdfGeometry1D::Edge with vertices indices v0 and v1.

    Method: void TdfGeometry1D::Edge::v (unsigned i, unsigned vi)
    Sets the i-th endpoint vertex index of this TdfGeometry1D::Edge to vi.

    Method: unsigned TdfGeometry1D::Edge::v (unsigned i) const
    Returns the i-th endpoint vertex index of this TdfGeometry1D::Edge.

    2.6.5 TdfGeometryFaces

    #include "TdfGeometryFaces.hh"

    This class is a base class for TdfGeometry2D (see section 2.6.6 TdfGeometry2D) and TdfGeometry3D (see section 2.6.6 TdfGeometry2D. It is a container of faces (polygons).

    We typedef TdfGeometryFaces::Face to be simply,
    vector<unsigned> Face.

    Method: unsigned TdfGeometryFaces::nFaces::v () const
    Return the number of faces of this TdfGeometryFaces

    Method: void TdfGeometryFaces::faceAppend (
    const TdfGeometryFaces::Face f) const
    Appends a face to the list of faces of this TdfGeometryFaces.

    Method: const TdfGeometryFaces::Face TdfGeometryFaces::face (unsigned fi) const
    Returns a reference for the fi-th face of this TdfGeometryFaces.

    Some convenient functions:

    Method: const unsigned TdfGeometryFaces::faceNEdges (unsigned fi) const
    Returns the number of edges of the fi-th face of this TdfGeometryFaces.

    Method: const unsigned TdfGeometryFaces::faceNEdges (
    unsigned fi, unsigned vi) const
    Returns the coordinate index of the vi-th vertex of the fi-th face of this TdfGeometryFaces.

    Method: const unsigned TdfGeometryFaces::nFacesVertices () const
    Returns the sum of all faces number of vertices of this TdfGeometryFaces. Repeated vertices are counted. So cube-faces will give 24=6*4 (not 8).

    2.6.6 TdfGeometry2D

    #include "TdfGeometry2D.hh"

    The TdfGeometry2D class represents a 2-Dimensional linear Geometry. It is a subclass of TdfGeometryFaces (see section 2.6.5 TdfGeometryFaces).

    There are two distinctive cases:

    2.6.6.1 Functions applicable to a 2D-world case.

    Method: const TdfGeometryFaces::face& TdfGeometry2D::outerBoundary () const
    Returns the 1st face of this TdfGeometry2D.

    Method: unsigned TdfGeometry2D::nHoles () const
    Returns the number of holes of this TdfGeometry2D.

    Method: const TdfGeometryFaces::face& TdfGeometry2D::innerBoundary (unsigned bi) const
    Returns the face representing the bi-th hole of this TdfGeometry2D.

    2.6.7 TdfGeometry3D

    #include "TdfGeometry3D.hh"

    TdfGeometry3D is a class representing a connected polyhedra that may have holes. It is a subclass of TdfGeometryFaces (see section 2.6.6 TdfGeometry2D).

    With some analogy with TdfGeometry2D, the geometry of TdfGeometry3D is assumed to be connected, but not necessarily simply connected; i.e. it may have holes. The first volume (TdfGeometry3D::volume(0)) is the outside boundary. If TdfGeometry2D::nVolumes() > 1 then the rest of the volumes are the boundaries of holes. Note, that we do not allow a 3D-geometry composed of volumes within 3D-holes. Such a geometry should be divided into several (connected) TdfGeometry3Ds.

    The TdfGeometry3D class contains volumes, each of which is an array of face indices.

    We typedef TdfGeometry3D::Volume to be simply,
    vector<unsigned> Face.

    Method: unsigned TdfGeometry3D::nVolumes () const
    Returns the number of volumes this TdfGeometry3D has.

    Method: unsigned TdfGeometry3D::nHoles () const
    Returns the number of holes this TdfGeometry3D has.

    Method: void TdfGeometry3D::volumeAppend (const Volume& v)
    Appends the volume v to the array of volumes of this TdfGeometry3D.

    Method: const TdfGeometry3D::Volume& TdfGeometry3D::volume (unsigned vli)
    Returns a const reference to the vli-th volume of this TdfGeometry3D.

    Note: that for (vli > 0) it means the (vli-1)-th hole.

    Method: const TdfGeometry3D::Volume& TdfGeometry3D::outerBoundary (unsigned vli)
    Returns a const reference to outer boundary which is the 1st volume of this TdfGeometry3D. Equivalent to volume(0).

    Method: const TdfGeometry3D::Volume& TdfGeometry3D::innerBoundary (unsigned bi)
    Returns a const reference to the bi-th hole's volume of this TdfGeometry3D. Equivalent to volume(bi-1).

    Method: unsigned TdfGeometry3D::volumeNFaces (unsigned vli)
    Returns The number of boundary faces of the vli-th volume of this TdfGeometry3D. See note about vli in TdfGeometry3D::volume(vli)).

    Method: unsigned TdfGeometry3D::volumeFaceNVertices (unsigned vli, unsigned fi)
    Returns The number of vertices in the fi-th face of the vli-th volume of this TdfGeometry3D. See note about vli in TdfGeometry3D::volume(vli)).

    Method: unsigned TdfGeometry3D::volumeFaceVertex (unsigned vli, unsigned fi, unsigned vi)
    Returns The coordinate index of the vi-th vertex in the fi-th face of the vli-th volume of this TdfGeometry3D. See note about vli in TdfGeometry3D::volume(vli)).

    2.6.8 Specific Geometries

    The motivation for specific geometries comes mainly from the
    Raphael http://www.tmai.com/PRODUCT/raphael.html application.

    2.6.9 TdfXform

    #include "TdfXform.hh"

    This class defines a 3D transformation.

    It defines two typedefs

    Method: bool TdfXform::isIdentityXform () const
    Returns whether this TdfXform represents identity transformation, which is the default, and actually does not carry any float data.

    Method: void TdfXform::identityXform ()
    Declare this TdfXform to represents identity transformation. Actually it will delete internal float data if it exists from previous settings.

    Method: const TdfXform::XMat TdfXform::matrix () const
    Returns a const reference to the transformation matrix. If it is an identity, the reference is to a static matrix.

    Method: void TdfXform::matrix (const TdfXform::XMat& x);
    Sets this transformation to the value of given x matrix.

    Method: void TdfXform::translate (const float* v3)
    Translate this transformation by the given v3 vector.

    Method: void TdfXform::rotate3D (const TdfXform::Mat3x3& mat)
    Rotate this 3D-transformation by the given mat matrix.

    Method: static float TdfXform::determinant (const TdfXform::Mat3x3& mat)
    Rotate this transformation by the given mat matrix.

    Method: float TdfXform::rotate2D () const
    Returns the rotation angle of this 2D-transformation.

    Method: void TdfXform::rotate2D (float ang)
    Rotate this 2D-transformation by the given ang angle.

    Method: float* TdfXform::xformVec (
    float* r3, const float* v3))
    Transform the given v3 vector into the given buffer r3. Return r3 for convenience.

    2.6.10 TdfGeomXform

    #include "TdfGeomXform.hh"

    This class serves as a base class for other specific geometries that carry a transformation matrix with them.

    Method: const TdfXform& TdfGeomXform::xform () const
    Returns a const reference to this TdfGeomXform's transform (see section 2.6.10 TdfGeomXform).

    Method: TdfXform& TdfGeomXform::xform ()
    Returns a reference to this TdfGeomXform's transform (see section 2.6.10 TdfGeomXform).

    Method: const TdfXform::XMat& TdfGeomXform::xform () const
    Returns a const reference to this TdfGeomXform's transform matrix (see section 2.6.10 TdfGeomXform).

    2.6.11 TdfGeomArcCircle

    #include "TdfGeomyArcCircle.hh"

    TdfGeomArcCircle is a class representing a circle or a arc-section of a circle. It is a subclass of TdfGeomXform (see see section 2.6.10 TdfGeomXform).

    Method: void TdfGeomArcCircle::setValues (
    float cx, float cy,
    float r,
    float ang1=0., float ang2=0.)
    Sets this circle-arc to be centered at (cx,cy) with radius r, with ang1 as starting angle and ang2 as ending angle.

    Method: void TdfGeomArcCircle::getValues (
    floa&t cx, float& cy,
    float& r,
    float& ang1, float& ang2) const
    Returns this circle-arc center thru (cx,cy), radius thru r, and starting/ending angles thru ang1 and ang2.

    There are also queries for specific circle parameters:

    Method: float TdfGeomArcCircle::cx () const
    Returns this circle's center x-component.

    Method: float TdfGeomArcCircle::cy () const
    Returns this circle's center y-component.

    Method: float TdfGeomArcCircle::r () const
    Returns this circle's radius.

    Method: float TdfGeomArcCircle::ang1 () const
    Returns this circle-arc's starting angle.

    Method: float TdfGeomArcCircle::ang2 () const
    Returns this circle-arc's ending angle.

    2.6.12 TdfGeomCylinder

    #include "TdfGeomCylinder.hh"

    TdfGeomCylinder is a class representing a 3-dimensional cylinder. It is a subclass of TdfGeomXform (see see section 2.6.10 TdfGeomXform).

    Method: bool TdfGeomCylinder::setValues (
    const float* center, const float* direction,
    float rad, float h)
    Sets this cylinder to be centered at (center[0],center[1],center[2]) with radius rad and height h.

    The direction is given by a non zero vector -- (direction[0],direction[1],direction[2]).

    The function returns true if successfully set.

    Method: void TdfGeomCylinder::getValues (
    float* center, float* direction,
    float& rad, float& h)
    Returns this cylinder's: center, direction, radius and height thru: center, direction, rad and height h respectively.

    There are also queries for specific cylinder parameters:

    Method: const float* TdfGeomCylinder::center () const
    Returns this cylinder's center.

    Method: float* TdfGeomCylinder:direction (float* dir3) const
    Calculates and returns this cylinder's: direction thru the supplied 3-float array dir3.

    Method: float TdfGeomCylinder::r () const
    Returns this cylinder's radius.

    Method: float TdfGeomCylinder::h () const
    Returns this cylinder's height.

    2.6.13 TdfGeomRect

    #include "TdfGeomRect.hh"

    TdfGeomRect holds a 2-Dimensional rotate-able rectangle. It is a subclass of TdfGeomXform (see see section 2.6.10 TdfGeomXform).

    Method: void TdfGeomRect::setValues (
    float cx, float cy,
    float w, float h,
    float ang)
    Sets this rectangle to be centered at (cx,cy) with sizes (w,h) rotated by angle ang.

    Method: void TdfGeomRect::getValues (
    float& cx, float& cy,
    float& w, float& h,
    float& ang) const
    Returns this rectangle's values. The center thru (cx,cy), the sizes thru (w,h) and the rotation angle thru ang.

    There are also queries for specific rectangle parameters:

    Method: float TdfGeomRect::cx () const
    Returns this rectangle's center x-component.

    Method: float TdfGeomRect::cy () const
    Returns this rectangle's center y-component.

    Method: float TdfGeomRect::ang () const
    Returns this rectangle's rotation angle.

    Method: float TdfGeomRect::w () const
    Returns this cylinder's width.

    Method: float TdfGeomRect::h () const
    Returns this cylinder's height.

    2.6.14 TdfGeomSphere

    #include "TdfGeomSphere.hh"

    TdfGeomSphere is a class representing a 3-dimensional sphere. It is a subclass of TdfGeomXform (see see section 2.6.10 TdfGeomXform).

    Method: void TdfGeomSphere::setValues (
    const float* center, float r)
    Sets this sphere to be centered at (center[0],center[1],center[2]) with radius r.

    Method: setValues TdfGeomSphere::getValues (
    float* center, float& r) const
    Returns this sphere paremeters. The center thru the supplied 3-float array center, the radius thru r.

    Method: float TdfGeomSphere::cx () const
    Returns this sphere's center x-component.

    Method: float TdfGeomSphere::cy () const
    Returns this sphere's center y-component.

    Method: float TdfGeomSphere::cz () const
    Returns this sphere's center z-component.

    Method: float TdfGeomSphere::r () const
    Returns this sphere's radius.

    2.7 Miscellaneous Classes

    2.7.1 TdfVGDBase

    #include "TdfVGDBase.hh"

    Actually, the TdfVGDBase should not be of the application's concern. It is a base class for both

    For the sake of reducing the number of internal template code, the TDF library uses arrays (STL-vectors) of pointers TdfVGDBase* to represent arrays of subclasses of TdfGroup (HDF-vgroups) or subclasses of TdfLeaf (HDF-vdata).

    The drawback is some loss of type safety. This is somewhat compensated by a rich collection of safe cast down functions for most of TdfVGDBase subclasses.

    We have the following family (Foo) of safe cast down function (See the C preprocessor smart macros TdfThisCastDown0 and TdfThisCastDown in `TdfVGDBase.hh').
    Some possible Foo's: Group, Attributes, Field, FieldNumeric, FieldSet, Geometry, Mesh, Modifier, Wafer and WaferDataSet.

    Method: const TdfFoo* TdfVGDBase::thisFoo () const
    If this TdfVGDBase is TdfFoo or a subclass of TdfFoo, cast this to TdfFoo*.

    Method: TdfFoo* TdfVGDBase::thisFoo ()
    Non const version of the above.

    Thus, we can use

    #include "TdfGeometry1D.hh"
    int  nEdgesIfGeom1D(const TdfVGDBase* p)
    {
        int  ne = -1; // undefined for non 1D-geometry
        const TdfGeometry*  pGeo = p->thisGeometry();
        if (pGeo)
        { // is geometry! now see if it is 1D
           const TdfGeometry1D  pGeo1D = pGeo->thisGeemetry1D();
           if (pGeo1D)  ne = TdfGeometry1D->nEdges();
        }
        return ne;
    }
    

    2.7.2 TdfGroup

    #include "TdfGroup.hh"

    The TdfGroup class is an abstract base class from which all other TDF classes that represents HDF-Vgroups are derived (see section 1 Introduction).

    Some members that are documented here, are actually defined in classes that TdfGroup is derived from, but hopefully they are not of direct concern to the application.

    Method: const char* TdfGroup::objectName () const
    Returns the name of the HDF-Vgroup that is represented by this TdfGroup.

    Method: const char* TdfGroup::className () const
    Returns the class of the HDF-Vgroup that is represented by this TdfGroup.

    Method: Tdf::Id TdfGroup::Id () const
    Returns the HDF-Vgroup id that is represented by this TdfGroup. If this TdfGroup has not been loaded from or saved to a TDF/HDF file the id returned is @minus{1}.

    Tdf:Id is typedef'ed to long int and must agree with HDF's int32 definition.

    Every TdfGroup may have attributes which are (string, value) pairs (see section 2.2.7 TdfAttributes). Following are the related interface member functions.

    Method: const TdfAttributes* TdfGroup::attributes () const
    Returns a const pointer to this class's (vgroup's) attributes. It may be null.

    Method: TdfAttributes* TdfGroup::attributes ()
    Returns a pointer to this class's (vgroup's) attributes. It may be null.

    Method: TdfAttributes* TdfGroup::attributesOpen ()
    Return a pointer to this class's (vgroup) attributes set. Initalize attributes set for this class (vgroup) if it is not yet initialized.

    Method: TdfAttributes* TdfGroup::attributesClear ()
    Clear this class's (vgroup's) attributes.

    2.8 STL

    The TDF library uses STL (Standard Template Library). Most used STL template class is vector.

    Some recommeded STL references:

    2.9 Things you may ignore

    Many of the classes in the TDF API support HDF I/O operations. These operation are supported by base classes or static member functions and data.

    The application should not need to use these. The reason for them not always being C++-private is that it would have required too many friendship relationships.

    The following are repeated base-classes, and class members that the Tdf-API user is encouraged to ignore:

    Index

    a

  • allNodes, of TdfMeshElement
  • Analytic Doping
  • ang1, of TdfGeomArcCircle
  • ang2, of TdfGeomArcCircle
  • ang, of TdfGeomRect
  • arc (TdfGeomArcCircle)
  • attribute
  • attributes value, of TdfValue
  • Attributes of TdfValueData
  • attributes, of TdfGroup, attributes, of TdfGroup
  • attributesClear, of TdfGroup
  • attributesOpen, of TdfGroup
  • b

  • boundary, boundary, boundary, boundary, boundary, boundary
  • boundary, of TdfMeshElement, boundary, of TdfMeshElement, boundary, of TdfMeshElement
  • c

  • cast down
  • cast down, safe cast down, cast down, safe cast down, cast down, safe cast down
  • center, of TdfGeomCylinder
  • circle (TdfGeomArcCircle)
  • className, of TdfGroup
  • clear, of TdfField
  • clear, of TdfFieldSet
  • clear, of TdfMesh
  • clear, of TdfWaferDataSet
  • close, of Tdf
  • comment, of TdfModifier, comment, of TdfModifier
  • connection, of TdfMeshElement, connection, of TdfMeshElement
  • connectivity
  • coordinates, of TdfWaferDataSet, coordinates, of TdfWaferDataSet
  • coordIndex, of TdfMesh
  • coordNode, of TdfWaferDataSet
  • cx, of TdfGeomArcCircle
  • cx, of TdfGeomRect
  • cx, of TdfGeomSphere
  • cy, of TdfGeomArcCircle
  • cy, of TdfGeomRect
  • cy, of TdfGeomSphere
  • cylinder (TdfGeomCylinder)
  • cz, of TdfGeomSphere
  • d

  • data, of TdfFieldNumeric, data, of TdfFieldNumeric
  • delValue, of TdfAttributes
  • determinant, of TdfXform
  • dimension, of TdfMesh
  • dimension, of TdfMeshElement
  • dimension, of TdfWaferDataSet, dimension, of TdfWaferDataSet
  • direction, of TdfGeomCylinder
  • documentation, of TdfDataSet, documentation, of TdfDataSet
  • e

  • Edge, of TdfElement
  • Edge, of TdfGeometry1D, Edge, of TdfGeometry1D
  • edgeAppend, of TdfGeometry1D
  • edgeAppend, of TdfMeshElement
  • edgeReshape, of TdfMeshElement
  • edges, of TdfGeometry1D
  • edges, of TdfMeshElement
  • Element, of TdfMesh, Element, of TdfMesh
  • elementData, of TdfFieldSet, elementData, of TdfFieldSet
  • elementType, of TdfMeshElement
  • elementVertices, of TdfMesh
  • environment variable
  • f

  • Face, of TdfGeometryFaces
  • face, of TdfGeometryFaces
  • faceAppend, of TdfGeometryFaces
  • faceNEdges, of TdfGeometryFaces
  • faceVertex, of TdfGeometryFaces
  • field, field
  • field set
  • field, of TdfFieldSet, field, of TdfFieldSet
  • fieldSet, of TdfWaferDataSet, fieldSet, of TdfWaferDataSet
  • float value, of TdfValue
  • Float of TdfValueData
  • g

  • generateBoundary, of TdfMeshElement
  • generateSelfBoundary, of TdfMeshElement
  • geometry, geometry
  • geometry, of TdfWaferDataSet, geometry, of TdfWaferDataSet
  • getCoordNode, of TdfWaferDataSet
  • getData, of TdfField, getData, of TdfField
  • getDataArray, of TdfFieldNumeric
  • getFloat, of TdfValue
  • getFloatArray, of TdfValue
  • getInt, of TdfValue
  • getIntArray, of TdfValue
  • getMap, of TdfValue, getMap, of TdfValue
  • getString, of TdfValue, getString, of TdfValue
  • getTicks, of TdfMeshRectilinear
  • getValues, of TdfGeomArcCircle
  • getValues, of TdfGeomCylinder
  • getValues, of TdfGeomRect
  • getValues, of TdfGeomSphere
  • groupDef
  • h

  • h, of TdfGeomCylinder
  • h, of TdfGeomRect, h, of TdfGeomRect
  • hasEdge, of TdfGeometry1D
  • hasVertex, of TdfGeometry0D
  • HDF, HDF, HDF
  • HDF
  • HDFread, of TdfDataSet
  • HDFwrite, of TdfDataSet
  • height (TdfGeomCylinder)
  • height (TdfGeomRect)
  • Hexahedron, of TdfElement
  • hexahedronAppend, of TdfMeshElement
  • hexahedronReshape, of TdfMeshElement
  • hexahedrons, of TdfMeshElement
  • i

  • id, of TdfGroup
  • identityXform, of TdfXform
  • init, of Tdf
  • innerBoundary, of TdfGeometry2D
  • innerBoundary, of TdfGeometry3D
  • Int of TdfValueData
  • integer value, of TdfValue
  • Irregular, of TdfMesh
  • isIdentityXform, of TdfXform
  • k

  • keyBegin, of TdfAttributes
  • keyEnd, of TdfAttributes
  • KeyIter of TdfAttributes
  • m

  • Mat3x3 of TdfXform
  • materialName, of TdfRegion, materialName, of TdfRegion
  • materialProperties, of TdfFieldSet
  • materialProperties, of TdfWafer, materialProperties, of TdfWafer
  • materialPropertiesOf, of TdfWafer
  • materialPropIndex, of TdfWafer
  • matrix, of TdfXform, matrix, of TdfXform
  • max, of TdfMeshUniform
  • maxXYZ, of TdfMeshUniform, maxXYZ, of TdfMeshUniform
  • mesh
  • Mesh
  • mesh, of TdfFieldSet, mesh, of TdfFieldSet
  • meshElement, of TdfMesh
  • min, of TdfMeshUniform
  • minXYZ, of TdfMeshUniform, minXYZ, of TdfMeshUniform
  • Miscellaneous Classes
  • modifier, of TdfDocumentation
  • modifierAppend, of TdfDocumentation
  • n

  • n, of TdfMeshUniform
  • name, of TdfModifier, name, of TdfModifier
  • nAttributes, of TdfAttributes
  • nBoundary, of TdfMeshElement
  • nCoordFlat, of TdfWaferDataSet
  • nCoordNode, of TdfWaferDataSet
  • NCSA
  • nEdges, of TdfGeometry1D
  • nEdges, of TdfMeshElement
  • nElementData, of TdfFieldSet
  • nElements, of TdfMesh
  • nElements, of TdfMeshElement
  • newMesh, of TdfFieldSet
  • newRegion, of TdfWaferDataSet
  • nFaces, of TdfGeometryFaces
  • nFacesVertices, of TdfGeometryFaces
  • nField, of TdfFieldSet
  • nFieldSets, of TdfWaferDataSet
  • nFixedType, of TdfElement
  • nGeometries, of TdfWaferDataSet
  • nHexahedrons, of TdfMeshElement
  • nHoles, of TdfGeometry2D
  • nHoles, of TdfGeometry3D
  • nMaterialProperties, of TdfWafer
  • nModifiers, of TdfDocumentation
  • nNodes, of TdfMesh
  • Node, of TdfElement
  • nodeCoords, of TdfMesh
  • nPolygon, of TdfMeshElement
  • nPolyhedron, of TdfMeshElement
  • nPrisms, of TdfMeshElement
  • nPyramids, of TdfMeshElement
  • nQuads, of TdfMeshElement
  • nRegions, of TdfWaferDataSet
  • nRows, of TdfField
  • nSingleNodes, of TdfMeshElement
  • nSolutionProperties, of TdfWafer
  • nTetrahedrons, of TdfMeshElement
  • nTicks, of TdfMeshRectilinear
  • nTriangles, of TdfMeshElement
  • nType, of TdfElement
  • nVal, of TdfValue
  • nVertices, of TdfGeometry
  • nVertices, of TdfGeometry0D
  • nVolumes, of TdfGeometry3D
  • nWaferDataSets, of TdfWafer
  • nWafers, of TdfDataSet
  • nXYZ, of TdfMeshUniform, nXYZ, of TdfMeshUniform
  • o

  • objectName, of TdfGroup
  • operator*, of KeyIter
  • operator++, of KeyIter, operator++, of KeyIter
  • operator[], of TdfAttributes, operator[], of TdfAttributes
  • order, of TdfField
  • outerBoundary, of TdfGeometry2D
  • p

  • point, of TdfGeometry
  • polygon
  • Polygon, of TdfElement
  • polygonConnectAppend, of TdfMeshElement, polygonConnectAppend, of TdfMeshElement
  • polygonConnectList, of TdfMeshElement
  • polygonNNodes, of TdfMeshElement, polygonNNodes, of TdfMeshElement
  • polyhedron, polyhedron
  • Polyhedron, of TdfElement
  • polyhedronNBdyPolygons, of TdfMeshElement, polyhedronNBdyPolygons, of TdfMeshElement
  • polyLineAppend, of TdfGeometry1D
  • printTime, of TdfModifier
  • Prism, of TdfElement
  • prismAppend, of TdfMeshElement
  • prismReshape, of TdfMeshElement
  • prisms, of TdfMeshElement
  • pWafer, of TdfFieldSet
  • Pyramid, of TdfElement
  • pyramidAppend, of TdfMeshElement
  • pyramidReshape, of TdfMeshElement
  • pyramids, of TdfMeshElement
  • q

  • Quad, of TdfElement
  • quadAppend, of TdfMeshElement
  • quadReshape, of TdfMeshElement
  • quads, of TdfMeshElement
  • r

  • r, of TdfGeomArcCircle
  • r, of TdfGeomCylinder
  • r, of TdfGeomSphere
  • radius (TdfGeomArcCircle)
  • radius (TdfGeomCylinder)
  • radius (TdfGeomSphere)
  • Raphael
  • rectangle (TdfGeomRect)
  • rectilinear mesh
  • Rectilinear, of TdfMesh
  • region, of TdfWaferDataSet, region, of TdfWaferDataSet
  • reshape, of TdfFieldNumeric
  • rotate2D, of TdfXform, rotate2D, of TdfXform
  • rotate3D, of TdfXform
  • Rumbaugh
  • s

  • safe cast down, safe cast down, safe cast down, safe cast down
  • Scatter, of TdfMesh
  • setData, of TdfFieldNumeric
  • setDataArray, of TdfFieldNumeric
  • setDimension, of TdfMesh
  • setFloat, of TdfValue
  • setFloatArray, of TdfValue
  • setInt, of TdfValue
  • setIntArray, of TdfValue
  • setMap, of TdfValue
  • setString, of TdfValue
  • setTicks, of TdfMeshRectilinear
  • setValue, of TdfAttributes
  • setValues, of TdfGeomArcCircle
  • setValues, of TdfGeomCylinder
  • setValues, of TdfGeomRect
  • setValues, of TdfGeomSphere
  • sGroupDef
  • singleNodeAppend, of TdfMeshElement
  • singleNodeReshape, of TdfMeshElement
  • singleNodes, of TdfMeshElement
  • solutionProperties, of TdfWafer, solutionProperties, of TdfWafer
  • solutionPropertiesOf, of TdfWafer
  • solutionPropIndex, of TdfWafer
  • specific geometries
  • sphere (TdfGeomSphere)
  • STL
  • STL
  • string value, of TdfValue
  • String of TdfValueData
  • strValue, of TdfAttributes
  • subNode
  • subNodeArrayItem
  • subNodeArrayLength
  • subNodeArrayReset
  • t

  • Tdf
  • TDF
  • Tdf::Tdf
  • TdfAnalyticDoping
  • TdfAttributes, TdfAttributes
  • TdfClassDefVData
  • TdfClassDefVGroup
  • TdfDataSet
  • TdfDocumentation
  • TdfElement
  • TdfField
  • TdfFieldAnalytic, TdfFieldAnalytic
  • TdfFieldDef, TdfFieldDef
  • TdfFieldNumeric, TdfFieldNumeric
  • TdfFieldSet, TdfFieldSet
  • TdfFieldSet.
  • TdfGeomArcCircle
  • TdfGeomCylinder
  • TdfGeometry, TdfGeometry, TdfGeometry, TdfGeometry, TdfGeometry, TdfGeometry, TdfGeometry
  • TdfGeometry0D
  • TdfGeometry1D
  • TdfGeometry1D::Edge
  • TdfGeometry2D
  • TdfGeometry3D
  • TdfGeometryFaces
  • TdfGeomRect
  • TdfGeomSphere
  • TdfGeomXform
  • TdfGroup
  • TDFLIB, environment variable
  • TdfMesh, TdfMesh, TdfMesh, TdfMesh
  • TdfMesh.
  • TdfMeshElement, TdfMeshElement
  • TdfMeshRectilinear
  • TdfMeshUniform
  • TdfModifier, TdfModifier, TdfModifier, TdfModifier
  • TdfRegion, TdfRegion, TdfRegion
  • TdfValue
  • TdfValueData
  • tdfVersion, of TdfDocumentation
  • TdfVGDBase
  • TdfWafer, TdfWafer
  • TdfWaferDataSet
  • TdfWaferDataSet, of TdfMesh
  • TdfXform
  • Tetrahedron, of TdfElement
  • tetrahedronAppend, of TdfMeshElement
  • tetrahedronReshape, of TdfMeshElement
  • tetrahedrons, of TdfMeshElement
  • thisFoo, of TdfVGDBase
  • thisGeometry0D, of TdfGeometry, thisGeometry0D, of TdfGeometry
  • thisGeometry1D, of TdfGeometry, thisGeometry1D, of TdfGeometry
  • thisGeometry2D, of TdfGeometry, thisGeometry2D, of TdfGeometry
  • thisGeometry3D, of TdfGeometry, thisGeometry3D, of TdfGeometry
  • time, of TdfModifier
  • TMA, TMA
  • Top Classes
  • top classes
  • topology
  • translate, of TdfXform
  • Triangle, of TdfElement
  • triangleAppend, of TdfMeshElement
  • triangleReshape, of TdfMeshElement
  • triangles, of TdfMeshElement
  • Type of TdfValueData
  • Type, of TdfElement
  • type, of TdfField
  • Type, of TdfMesh
  • type, of TdfMesh
  • type, of TdfMeshElement
  • type, of TdfValue
  • u

  • Undefined of TdfValueData
  • uniform
  • uniform mesh
  • Uniform, of TdfMesh
  • v

  • v, of TdfGeometry1D::Edge, v, of TdfGeometry1D::Edge
  • value, of TdfAttributes
  • vector
  • vertex, of TdfGeometry0D
  • vertex, of TdfGeometry1D
  • vertexAppend, of TdfGeometry0D
  • vertexPoint, of TdfGeometry0D
  • vertexPoint, of TdfGeometry1D
  • vertices, of TdfGeometry1D
  • volume
  • Volume, of TdfGeometry3D
  • volume, of TdfGeometry3D, volume, of TdfGeometry3D
  • volumeAppend, of TdfGeometry3D
  • volumeFaceNVertices, of TdfGeometry3D
  • volumeFaceVertex, of TdfGeometry3D
  • volumeNFaces, of TdfGeometry3D
  • w

  • wafer, of TdfDataSet, wafer, of TdfDataSet
  • waferDataSet, of TdfWafer, waferDataSet, of TdfWafer
  • width (TdfGeomRect)
  • x

  • xform, of TdfGeomXform, xform, of TdfGeomXform, xform, of TdfGeomXform
  • xformVec, of TdfXform
  • XMat of TdfXform

  • This document was generated on 23 May 1997 using the texi2html translator version 1.51.