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.
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.
Here are four Object Model Rumbaugh diagrams showing top-level classes.
Note, that actual C++ classes names are shown here without
the Tdf
Prefix.
see section 2.3.1 TdfFieldSet
and see section 2.4.1 TdfMesh
.
See see section 2.6.1 TdfGeometry
.
See see section 2.2.7 TdfAttributes
.
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.
Tdf
#include "Tdf.hh"
This class controls the global initialization of TDF library.
There are two static functions:
TDFLIB
has to be a UNIX-path that
includes a directory where these files are located.
It is safe to call more than once.
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.
TdfDataSet
#include "TdfDataSet.hh"
This is the "top most" class to access or generate a TDF file.
true
if success.
The writerName should be the name of the application,
it is appended to the Documentation vgroup
(TdfDocumentation
) of the file.
Returns true
if success.
TdfDocumentation
class member as
a constant (see section 2.2.3 TdfDocumentation
).
TdfDocumentation
class member
(see section 2.2.3 TdfDocumentation
).
TdfWafer
contained in this
TdfDataSet
class instance,i
'th TdfWafer
--- which is created if necessary ---
of this TdfDataSet
(see section 2.2.5 TdfWafer
).
const
reference and no
creation is made.
TdfDocumentation
#include "TdfDocumentation.hh"
The TdfDocumentation
class carries the history of writers/modifiers
of the TdfDataSet
it belongs to.
TdfWaferDataSet
.
TdfWaferDataSet
.
The first modifier is the original writer.
TdfModifier
).
TdfModifier
#include "TdfModifier.hh"
This class holds the "signature" of the writer or modifier of the data.
time
function).
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:
TdfAttributes
).
TdfAttributes
).
TdfWaferDataSet
). Typically, there's only one data-set,
but it may hold several data-sets;
for example representing the same device
at different times.
TdfAttributes
this TdfWafer
holds.
const
reference to the i-th
material
's attributes of this TdfWafer
.
TdfAttributes
reference to the
attributes of this TdfWafer
material mtrName --
which is created if necessary.
materialProperties(mtrName)
but if such TdfAttributes
does not exist a dummy reference is returned.
Analog to Material Properties.
TdfAttributes
this
TdfWafer
holds.
const
reference to the i-th
solution
's attributes of this TdfWafer
.
TdfAttributes
reference to the
attributes of this TdfWafer
solution solName --
which is created if necessary.
solutionProperties(solName)
but if such TdfAttributes
does not exist a dummy reference is returned.
TdfWaferDataSet
s contained in this TdfWafer
.
const
reference to the i-th TdfWaferDataSet
contained in this TdfWafer
(see section 2.2.6 TdfWaferDataSet
).
TdfWaferDataSet
--- which is created if necessary ---
contained in this TdfWafer
(see section 2.2.6 TdfWaferDataSet
).
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
).
TdfWaferDataSet
.
TdfWaferDataSet
.
TdfWaferDataSet
to d.
float
s and the flattened array of
coordinates. 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, ...
const
version of the above.
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
).
TdfRegion
s
pointed from this TdfWaferDataSet
.
nRegions(i)
instead.
Returns the number of instances of TdfFieldSet
s (or a sub-class)
pointed from this TdfWaferDataSet
.
const
pointer to the i-the TdfRegion
belonging to this TdfWaferDataSet
. Null is returned if such region
does not exist.
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
.
TdfRegion
of this TdfWaferDataSet
.
If any of the region(j)
, where
j <= i,
do not exist prior to the call then they are created.
TdfRegion
and names it rgnName.
It is similar to:
TdfRegion* rgn = region(nRegions()); rgn->objectName(rgnName); return(rgn);
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:
TdfFieldSet::gname
(see section 2.3.1 TdfFieldSet
).
TdfRegion::gname
(see section 2.3.2 TdfRegion
).
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
.
TdfGeometry
(or a sub-class)
pointed from this TdfWaferDataSet
.
const
pointer to the i-the TdfGeometry
(or a sub-class) belonging to this TdfWaferDataSet
(see section 2.6.1 TdfGeometry
).
TdfGeometry
belonging to this TdfWaferDataSet
.
If
subClassName != 0
Creates a new appropriate subclass of TdfGeometry
.
Recognized subclass-names are:
TdfGeometry0D::gname
(see section 2.6.2 TdfGeometry0D
).
TdfGeometry1D::gname
(see section 2.6.3 TdfGeometry1D
).
TdfGeometry2D::gname
(see section 2.6.6 TdfGeometry2D
).
TdfGeometry3D::gname
(see section 2.6.7 TdfGeometry3D
).
All previously uninitialized geometry(j)
(where 0<=j<i)
are created as the type of geometry(i)
(see section 2.6.1 TdfGeometry
).
TdfAttributes
#include "TdfAttributes.hh"
This class maps strings to values (see section 2.2.8 TdfValue
).
The values could be int
s, float
s, char
-strings and
(recursive) attributes-set -- TdfAttributes
.
TDF uses this class in every
subclass of TdfGroup
(see section 2.7.2 TdfGroup
).
true
if no value was assigned to keyStr before.
true
if indeed there was a deletion.
const
pointer the value assigned to keyStr
in this attributes-set. If no value is assigned, null is returned.
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.
reference to the value assigned to keyStr
in this attributes-set.
If necessary, a dummy value is created and assigned to keyStr.
TdfAttributes::KeyIter
)
to the beginning of the keys for which mapping are defined
in this attributes-set. STL-like.
TdfAttributes::KeyIter
)
to the past-end of the keys for which mapping are defined
in this attributes-set. STL-like.
TdfValue
#include "TdfValue.hh"
TdfValue
is a class that can hold:
int
or array of int
s (vector<int>
).
float
or array of float
s (vector<float>
).
TdfAttributes
) (see section 2.2.7 TdfAttributes
)
becomes a recursive
class, since it can contain values of its own type.
There are several classes involved in implementing TdfValue
,
Among them is TdfValueData
, from which applications needs to know
the following enum
eration, all of type TdfValueData::Type
:
TdfValueData::Undefined
TdfValueData::Int
TdfValueData::Float
TdfValueData::String
TdfValueData::Attributes
TdfValueData::Int
or TdfValueData::Float
.
TdfValueData::Int
type.
TdfValueData::Int
type value returns the value,
otherwise return 0.
TdfValueData::Int
value-type,
with the array int values of the STL-like range
[begin, end).
TdfValueData::Int
type value
then return a const
pointer to the vector of int
s.
otherwise return null-pointer.
TdfValueData::Float
type.
TdfValueData::Float
type value returns the value,
otherwise return 0.0.
TdfValueData::Float
value-type,
with the array of float
values of the STL-like range
[begin, end).
TdfValueData::Float
type value
then return a const
pointer to the vector of float
s.
otherwise return null-pointer.
TdfValueData::String
type.
TdfValueData::String
type.
TdfValueData::String
type value returns a const
pointer to the character-string array.
otherwise return empty string ""
.
Again, this is a recursion. A value of TdfAttribute
type
can map string to values.
TdfValueData::Attributes
type value
then return a const
pointer to the value,
otherwise return null-pointer.
TdfValueData::Attributes
type value
then return a pointer to the value,
otherwise return null-pointer.
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.
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.
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
.
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 TdfFieldSet
s.
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 TdfFieldSet
s and it may have specific node-data for
each
fsi
TdfFieldSet
.
const
pointer to this TdfFieldSet
's mesh (see section 2.4.1 TdfMesh
).
TdfFieldSet
's mesh (see section 2.4.1 TdfMesh
).
TdfMeshElement::gname
TdfMeshRectilinear::gname
TdfMeshUniform::gname
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.
TdfFieldSet
.
const
pointer of the i-th node-data TdfField
of this TdfFieldSet
(see section 2.5.2 TdfField
).
TdfFieldSet
belonging to this TdfFieldSet
.
If
subClassName != 0
then a new appropriate subclass of TdfFieldSet
is created.
Recognized subclass-names are:
TdfFieldNumeric::gname
(see section 2.5.3 TdfFieldNumeric
).
TdfFieldAnalytic::gname
(see section 2.5.4 TdfFieldAnalytic
).
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.
TdfFieldSet
.
const
reference to the i-th elementData-data
TdfFieldNumeric&
that belong to this TdfFieldSet
(see section 2.5.3 TdfFieldNumeric
).
TdfFieldNumeric&
that belong to this TdfFieldSet
(see section 2.5.3 TdfFieldNumeric
).
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
).
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).
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.
TdfRegion
.
TdfRegion
to mn.
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
const
TdfMeshElement* TdfMesh::thisMeshElement() const
const
TdfMeshRectilinear* TdfMesh::thisMeshRectilinear() const
const
TdfMeshUniform* TdfMesh::thisMeshUniform() const
TdfMesh
#include "TdfMesh.hh"
Here is the enum
eration TdfMesh::Type
of the mesh-types:
TdfMesh::dimension(int)
) set,
then the parent TdfWaferDataSet
's dimension is returned.
(see section 2.4.1.5 TdfMeshElement
)
TdfWaferDataSet
.
TdfWaferDataSet::nCoordNode
.
TdfMeshElement
).
TdfWaferDataSet
ancestor.
Returns coords for convenience .
TdfMesh
is of a subclass
TdfMeshElement
in which case it returns this
.
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:
float
pointer to this uniform mesh min vertex
of its major diagonal.
Note: For 2D only the first two numbers are meaningful.
float
pointer to this uniform mesh max vertex
of its major diagonal.
Note: For 2D only the first two numbers are meaningful.
unsigned
array
representing the numbers by which dimension is divided in the uniform mesh.
Note: For 2D only the first two numbers are meaningful.
float
array pointer v3.
Note: Must supply 3-sized arrays even in 2D case.
float
array pointer v3.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.
float
array ticks of sufficient size.
float
array ticks.
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.
The elements of the mesh defined by an instance of TdfMeshElement
can be of any of the enum
eration 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:
TdfMeshElement
TdfMeshElement:nTriangles()
.
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()
.
TdfMeshElement
,
where nv is well defined by foo.TdfMeshElement::triangleAppend(const unsigned *pu)
TdfMeshElement
, to hold nel foo elements. For example:TdfMeshElement::triangleAppend(unsigned 5)
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.
const
reference to the connection-list
of the elemType fixed-type element in this TdfMeshElement
.
TdfMeshElement
.
TdfMeshElement
.
TdfMeshElement
.
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.
TdfMeshElement
.
Note, the triangle or quad
specific connection lists are maintained separately.
TdfMeshElement
.@c
Note: the connection lists of:
tetrahedron,
pyramid,
prism,
hexahedron
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.
const
reference to the array of polygons sizes.
const
reference to the connection list of all polygons.
See explanation in the hard-copy.
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.
const
reference to the array of polygons sizes.
The polyhedron interface is not yet completed.
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.
TdfMeshElement
.
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
.
TdfMeshElement
.
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).
TdfGeometry1D
TdfGeometry2D
.
The first is the external and the rest are holes.
Notes:
vector<TdfGeometry*>
but we want to save on templates, so we use a super class as a pointer.
Safe Tdfgeometry
cast down functions are available
(see section 2.7.1 TdfVGDBase
).
new
of some subclass of TdfGeometry
.
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.
generateBoundary
and sets the resulting boundary.
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
enum
eration 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
TdfElement::Polygon
TdfElement::Polyhedron
TdfElement::nType
nFixedType
+ 2.
TdfFieldDef
#include "TdfFieldDef.hh"
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).
TdfFieldDef::Type
of the field
(see section 2.5.1 TdfFieldDef
).
Currently, only TdfFieldDef::Float
-- that corresponds to
C's float
-- is supported.
order()
.
The data is returned thru the supplied array fa that must be of
the order()
size.
For convenience, fa is returned.
order()
.
must hold.order()*nRows
size.
For convenience, fa is returned.
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.
TdfFieldNumeric
to reserve space for nRows rows.
TdfFieldNumeric
,
where n is the order of this field.
setData
nRows times: for (r=row0; r<row0+nr; setData(r, fa + r*order()), r++)
TdfFieldNumeric::getDataArray(.,.,.)
to be done more efficiently (see section 2.5.2 TdfField
).
const
reference to the (flattened) array of numerical data.
TdfFieldAnalytic
#include "TdfFieldAnalytic.hh"
TdfFieldAnalytic
is a subclass of TdfFieldNumeric
(see section 2.5.3 TdfFieldNumeric
).
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.
TdfGeometry
#include "TdfGeometry.hh"
The TdfGeometry
is an abstract class.
For each of the
d=0,1,2,3
dimensions there corresponds a class TdfGeometry
dD.
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::geometry
dD
()
return this
if this is class TdfGeometry
dD
and 0
otherwise.
TdfGeometry
instance belongs to an instance of
TdfWaferDataSet
using its coordinates (see section 2.2.6 TdfWaferDataSet
).
TdfGeometry
has.
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 TdfGeometry
dD
for
1<=d<3
TdfGeometry0D
has.
i
-th vertex
of this TdfGeometry0D
.
i
-th vertex
of this TdfGeometry0D
.
TdfGeometry0D
's i-th
vertex. Return coord.
TdfGeometry0D
's contains a vertex whose coordinates-index
is ci
.
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
).
TdfGeometry1D
.
TdfGeometry1D
.
TdfGeometry::point(...)
see section 2.6.1 TdfGeometry
).
TdfGeometry1D
.
TdfGeometry1D
has (see section 2.6.4 TdfGeometry1D::Edge
).
TdfGeometry1D
(see section 2.6.4 TdfGeometry1D::Edge
).
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.
true
if this TdfGeometry1D
has the edge
[v0, v1],
false
otherwise.
TdfGeometry1D::Edge
#include "TdfGeometry1D.hh"
The TdfGeometry1D::Edge
is a trivial
nested class of TdfGeometry1D
.
TdfGeometry1D::Edge
with vertices indices
v0 and v1.
TdfGeometry1D::Edge
to vi.
TdfGeometry1D::Edge
.
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
.
TdfGeometryFaces
TdfGeometryFaces
.
TdfGeometryFaces
.
Some convenient functions:
TdfGeometryFaces
.
TdfGeometryFaces
.
TdfGeometryFaces
.
Repeated vertices are counted. So cube-faces will give 24=6*4 (not 8).
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:
TdfGeometry2D
.
TdfGeometry2D
.
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) TdfGeometry3D
s.
The TdfGeometry3D
class contains volumes,
each of which is an array of face indices.
We typedef
TdfGeometry3D::Volume
to be simply,
vector<unsigned> Face
.
TdfGeometry3D
has.
TdfGeometry3D
.
const
reference to the vli-th volume of
this TdfGeometry3D
.
Note: that for (vli > 0) it means the (vli-1)-th hole.
const
reference to outer boundary which is the 1st volume
of this TdfGeometry3D
. Equivalent to volume(0)
.
const
reference to the bi-th hole's volume of
this TdfGeometry3D
. Equivalent to volume(bi-1)
.
TdfGeometry3D
.
See note about vli in TdfGeometry3D::volume(vli)
).
TdfGeometry3D
.
See note about vli in TdfGeometry3D::volume(vli)
).
TdfGeometry3D
.
See note about vli in TdfGeometry3D::volume(vli)
).
The motivation for specific geometries comes mainly from the
Raphael http://www.tmai.com/PRODUCT/raphael.html application.
TdfXform
#include "TdfXform.hh"
This class defines a 3D transformation.
typedef float Mat3x3[3][3]
-- for rotation.
typedef float XMat[4][3]
-- for rotation and translation.
TdfXform
represents identity transformation,
which is the default, and actually does not carry any float
data.
TdfXform
to represents identity transformation.
Actually it will delete internal float
data if it exists from previous
settings.
const
reference to the transformation matrix.
If it is an identity, the reference is to a static matrix.
TdfGeomXform
#include "TdfGeomXform.hh"
This class serves as a base class for other specific geometries that carry a transformation matrix with them.
const
reference to this TdfGeomXform
's transform
(see section 2.6.10 TdfGeomXform
).
TdfGeomXform
's transform
(see section 2.6.10 TdfGeomXform
).
const
reference to this TdfGeomXform
's transform matrix
(see section 2.6.10 TdfGeomXform
).
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
).
There are also queries for specific circle parameters:
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
).
The direction is given by a non zero vector -- (direction[0],direction[1],direction[2]).
The function returns true
if successfully set.
There are also queries for specific cylinder parameters:
float
array dir3.
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
).
There are also queries for specific rectangle parameters:
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
).
float
array center,
the radius thru r.
TdfVGDBase
#include "TdfVGDBase.hh"
Actually, the TdfVGDBase
should not be of the application's concern.
It is a base class for both
TdfGroup
(see section 2.7.2 TdfGroup
) that represents
HDF-vgroup.
TdfLeaf
(Not documented) that represents
HDF-vdata.
For the sake of reducing the number of internal template code,
the TDF library uses arrays (STL-vector
s) 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
.
TdfVGDBase
is Tdf
Foo or a subclass of Tdf
Foo,
cast this
to Tdf
Foo*
.
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; }
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.
TdfGroup
.
TdfGroup
.
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.
const
pointer to this class's (vgroup's) attributes.
It may be null.
The TDF library uses STL (Standard Template Library).
Most used STL template class is vector
.
Some recommeded STL references:
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 friend
ship relationships.
The following are repeated base-classes, and class members that the Tdf-API user is encouraged to ignore:
TdfClassDefVGroup
TdfClassDefVData
sGroupDef
groupDef
subNode
subNodeArrayItem
subNodeArrayLength
subNodeArrayReset
allNodes
, of TdfMeshElement
ang1
, of TdfGeomArcCircle
ang2
, of TdfGeomArcCircle
ang
, of TdfGeomRect
TdfGeomArcCircle
)
TdfValue
Attributes
of TdfValueData
attributes
, of TdfGroup
, attributes
, of TdfGroup
attributesClear
, of TdfGroup
attributesOpen
, of TdfGroup
boundary
, of TdfMeshElement
, boundary
, of TdfMeshElement
, boundary
, of TdfMeshElement
center
, of TdfGeomCylinder
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
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
TdfGeomCylinder
)
cz
, of TdfGeomSphere
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
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
Face
, of TdfGeometryFaces
face
, of TdfGeometryFaces
faceAppend
, of TdfGeometryFaces
faceNEdges
, of TdfGeometryFaces
faceVertex
, of TdfGeometryFaces
field
, of TdfFieldSet
, field
, of TdfFieldSet
fieldSet
, of TdfWaferDataSet
, fieldSet
, of TdfWaferDataSet
TdfValue
Float
of TdfValueData
generateBoundary
, of TdfMeshElement
generateSelfBoundary
, of TdfMeshElement
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
, of TdfGeomCylinder
h
, of TdfGeomRect
, h
, of TdfGeomRect
hasEdge
, of TdfGeometry1D
hasVertex
, of TdfGeometry0D
HDFread
, of TdfDataSet
HDFwrite
, of TdfDataSet
TdfGeomCylinder
)
TdfGeomRect
)
Hexahedron
, of TdfElement
hexahedronAppend
, of TdfMeshElement
hexahedronReshape
, of TdfMeshElement
hexahedrons
, of TdfMeshElement
id
, of TdfGroup
identityXform
, of TdfXform
init
, of Tdf
innerBoundary
, of TdfGeometry2D
innerBoundary
, of TdfGeometry3D
Int
of TdfValueData
TdfValue
Irregular
, of TdfMesh
isIdentityXform
, of TdfXform
keyBegin
, of TdfAttributes
keyEnd
, of TdfAttributes
KeyIter
of TdfAttributes
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
, of TdfFieldSet
, mesh
, of TdfFieldSet
meshElement
, of TdfMesh
min
, of TdfMeshUniform
minXYZ
, of TdfMeshUniform
, minXYZ
, of TdfMeshUniform
modifier
, of TdfDocumentation
modifierAppend
, of TdfDocumentation
n
, of TdfMeshUniform
name
, of TdfModifier
, name
, of TdfModifier
nAttributes
, of TdfAttributes
nBoundary
, of TdfMeshElement
nCoordFlat
, of TdfWaferDataSet
nCoordNode
, of TdfWaferDataSet
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
objectName
, of TdfGroup
operator*
, of KeyIter
operator++
, of KeyIter
, operator++
, of KeyIter
operator[]
, of TdfAttributes
, operator[]
, of TdfAttributes
order
, of TdfField
outerBoundary
, of TdfGeometry2D
point
, of TdfGeometry
Polygon
, of TdfElement
polygonConnectAppend
, of TdfMeshElement
, polygonConnectAppend
, of TdfMeshElement
polygonConnectList
, of TdfMeshElement
polygonNNodes
, of TdfMeshElement
, polygonNNodes
, of TdfMeshElement
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
Quad
, of TdfElement
quadAppend
, of TdfMeshElement
quadReshape
, of TdfMeshElement
quads
, of TdfMeshElement
r
, of TdfGeomArcCircle
r
, of TdfGeomCylinder
r
, of TdfGeomSphere
TdfGeomArcCircle
)
TdfGeomCylinder
)
TdfGeomSphere
)
TdfGeomRect
)
Rectilinear
, of TdfMesh
region
, of TdfWaferDataSet
, region
, of TdfWaferDataSet
reshape
, of TdfFieldNumeric
rotate2D
, of TdfXform
, rotate2D
, of TdfXform
rotate3D
, of TdfXform
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
TdfGeomSphere
)
STL
TdfValue
String
of TdfValueData
strValue
, of TdfAttributes
subNode
subNodeArrayItem
subNodeArrayLength
subNodeArrayReset
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
this
Foo, 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
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
Undefined
of TdfValueData
uniform
Uniform
, of TdfMesh
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
, of TdfGeometry3D
volume
, of TdfGeometry3D
, volume
, of TdfGeometry3D
volumeAppend
, of TdfGeometry3D
volumeFaceNVertices
, of TdfGeometry3D
volumeFaceVertex
, of TdfGeometry3D
volumeNFaces
, of TdfGeometry3D
wafer
, of TdfDataSet
, wafer
, of TdfDataSet
waferDataSet
, of TdfWafer
, waferDataSet
, of TdfWafer
TdfGeomRect
)
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.