Overture  Version 25
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
CompositeTopology Class Reference

#include <CompositeTopology.h>

Collaboration diagram for CompositeTopology:
Collaboration graph
[legend]

Public Types

enum  EdgeCurveStatusEnum {
  edgeCurveIsNotMerged =0, edgeCurveIsSplit, edgeCurveIsMerged, edgeCurveIsRemoved,
  edgeCurveIsNotDefined
}
 

Public Member Functions

 CompositeTopology (CompositeSurface &cs)
 
 ~CompositeTopology ()
 Destroy a CompositeTopology.
 
int cleanup ()
 Cleanup temporary storage used while determining the connectivity and global triangulation.
 
CompositeTopologyoperator= (const CompositeTopology &X)
 
int update ()
 Interactively build the connectivity information for a CompositeSurface.
 
int getNumberOfEdgeCurves ()
 
EdgeCurveStatusEnum getEdgeCurveStatus (int number)
 Return the status of an edge curve.
 
MappinggetEdgeCurve (int number)
 Return a reference to an edge curve.
 
int getNearestEdge (real x[3])
 Return the number of the edge curve nearest to the point x.
 
int findBoundaryCurves (int &numberOfBoundaryCurves, Mapping **&boundaryCurves)
 
UnstructuredMappinggetTriangulation () const
 
int buildTriangulationForVisibleSurfaces ()
 Given a global triangulation for all surfaces, build a new triangulation for only visible surfaces.
 
bool topologyDetermined ()
 
const IntegerArraygetSignForNormal () const
 
int getEdgeFromEndPoints (real *x0, real *x1)
 Find an edge with the given end points.
 
virtual int get (const GenericDataBase &dir, const aString &name)
 Get from a data base file.
 
virtual int put (GenericDataBase &dir, const aString &name) const
 Put to a data-base.
 
UnstructuredMappinggetTriangulationSurface (int s)
 
void setMaximumArea (real maxa)
 
real getMaximumArea () const
 
void setDeltaS (real ds)
 
real getDeltaS () const
 
bool computeTopology (GenericGraphicsInterface &gi, int debug=0)
 
void invalidateTopology ()
 
EdgeInfoedgeFromNumber (int n)
 
int buildEdgeCurveSearchTree (int &debug)
 Split an edge curve at a given point.
 

Protected Member Functions

void setupAllEdges ()
 
void adjustEndPoints ()
 
bool checkConsistency (bool quiet=false)
 
int initializeTopology ()
 Initialize parameters such as the suggested deltaS and mergeTolerance.
 
int computeNumberOfGridPoints (real arcLength, realArray &x, real &maxCurvature)
 Determine the number of grid points to put on a curve.
 
int buildEdgeSegment (Mapping &trimCurve, Mapping &surface, NurbsMapping *&edge, int &numberOfGridPoints, real &arcLength, int &debug, GenericGraphicsInterface &gi)
 Build an edge curve by interpolation of points on the sub-surface.
 
int buildEdgeCurves (GenericGraphicsInterface &gi)
 Build edge curves for all sub-surfaces.
 
int buildEdgeCurveBoundaryNodes ()
 Build the boundary nodes on the edge curves (based on deltaS) that will be used in the triangulation.
 
int getAnotherEdge (EdgeInfo *&edgeChosen, GenericGraphicsInterface &gi, const aString &question, const aString &cancel)
 Prompt for another edge.
 
int merge (EdgeInfo *e, int debug)
 Attempt to merge the edgeCurve e with other edge curves.
 
int mergeEdgeCurves (EdgeInfo &e, EdgeInfo &e2, int debug=0)
 Attempt to force a merge between two edge curves. Double check that the merge make sense.
 
bool mergeTwoEdges (EdgeInfo *e, EdgeInfo *eMin, int orientation, real tolerance, int debug)
 
int joinEdgeCurves (EdgeInfo &e1, bool toNext, int debug=0)
 Attempt to join two adjacent edges curves (which normally will be on the same surface).
 
int splitAndMergeEdgeCurves (GenericGraphicsInterface &gi, int &debug)
 Split and merge edge curves.
 
int splitEdge (EdgeInfo **er, real rSplit, int &debug, bool mergeNewEdges=true)
 Split an edge curve into two.
 
int triangulateCompositeSurface (int &debug, GenericGraphicsInterface &gi, GraphicsParameters &params)
 Build a global triangulation for a CompositeSurface.
 
int buildSubSurfaceTriangulation (int s, IntegerArray &numberOfBoundaryNodes, realArray *rCoordinates, IntegerArray *edgeNodeInfop, IntegerArray *boundaryNodeInfop, int &totalNumberOfNodes, int &totalNumberOfFaces, int &totalNumberOfElements, real &totalTimeToBuildSeparateTriangulations, real &totalTriangleTime, real &totalNurbTime, real &totalResolutionTime, int &debug, GenericGraphicsInterface &gi, GraphicsParameters &params)
 Build a triangulation on a sub-surface using the merged edge curves.
 
int printEdgeCurveInfo (GenericGraphicsInterface &gi)
 Print a summary of the number of edge curves of the various types.
 
void printInfoForAnEdgeCurve (EdgeInfo *e)
 Print info about a particular edge curve.
 
void unMergeEdge (EdgeInfo &e)
 

Protected Attributes

CompositeSurfacecs
 
UnstructuredMappingglobalTriangulation
 Holds the global triangulation.
 
UnstructuredMappingglobalTriangulationForVisibleSurfaces
 Holds the triangulation when some surfaces are hidden.
 
EdgeInfo ** allEdges
 An array of pointers to edge curves (which has a pointer to the corresponding CurveSegment object).
 
int numberOfUniqueEdgeCurves
 
int numberOfEdgeCurves
 
real mergeTolerance
 tolerance for merging adjacent edge curves.
 
real splitToleranceFactor
 splitTolerance = mergeTolerance * splitToleranceFactor
 
real deltaS
 Suggested arclength distance between points on the edge curves of the global triangulation.
 
real curvatureTolerance
 
real curveResolutionTolerance
 
real boundingBoxExtension
 for increasing the size of bounding boxes when searching
 
real maximumArea
 
real maxDist
 
bool improveTri
 
int minNumberOfPointsOnAnEdge
 Minimum number of points to place on an edge curve (over-rides deltaS).
 
IntegerArray signForNormal
 
EdgeInfoADTsearchTree
 
ArraySimple< realboundingBox
 
UnstructuredMapping ** triangulationSurface
 An array of triangulations for each sub-surface.
 
bool triangulationIsValid
 True if the global triangulation has been built.
 
bool edgeCurvesAreBuilt
 
bool mergedCurvesAreValid
 
bool recomputeEdgeCurveBoundaryNodes
 
real maximumMergeDistance
 
real averageMergeDistance
 
real minimumUnmergedDistance
 
int numberOfEndPoints
 
EdgeInfoArray masterEdge
 
realArray endPoint
 
FaceInfofaceInfoArray
 
int numberOfFaces
 
EdgeInfoArray unusedEdges
 

Member Enumeration Documentation

Enumerator
edgeCurveIsNotMerged 
edgeCurveIsSplit 
edgeCurveIsMerged 
edgeCurveIsRemoved 
edgeCurveIsNotDefined 

Constructor & Destructor Documentation

CompositeTopology::CompositeTopology ( CompositeSurface cs_)

This Class can be used to determine the connectivity (topology) of a CompositeSurface by determining where adjacent sub-surfaces meet.

The CompositeTopology class can be used to build a global triangulation for the CompositeSurface. There are two steps in this process. First determine the connectivity of the CompositeSurface by matching edge curves on the sub-surface boundaries. Second build triangulations for each sub-surface using common nodes at the shared edges.

Parameters
cs(input): determine the topology for this surface.

References allEdges, boundingBox, boundingBox, boundingBoxExtension, curvatureTolerance, curveResolutionTolerance, deltaS, edgeCurvesAreBuilt, faceInfoArray, globalTriangulation, globalTriangulationForVisibleSurfaces, improveTri, initializeTopology(), maxDist, maximumArea, mergedCurvesAreValid, NULL, numberOfEdgeCurves, numberOfEndPoints, numberOfUniqueEdgeCurves, REAL_MAX, recomputeEdgeCurveBoundaryNodes, searchTree, splitToleranceFactor, and triangulationSurface.

CompositeTopology::~CompositeTopology ( )

Member Function Documentation

void CompositeTopology::adjustEndPoints ( )
protected
int CompositeTopology::buildEdgeCurveBoundaryNodes ( )
protected
int CompositeTopology::buildEdgeCurves ( GenericGraphicsInterface gi)
protected
int CompositeTopology::buildEdgeCurveSearchTree ( int &  debug)

Split an edge curve at a given point.

This function is called when the user wants to explicitly split an edge curve. /param e (input): split this edge curve /param xSplit (input): split curve at this point. /return: 0==success.Fill in the search tree with the bounding box for each edgeCurve

(input): debug level

References bb, boundingBox, boundingBoxExtension, cs, EdgeInfo::edgeCurveIsNotUsed, End, faceInfoArray, Loop::firstEdge, getCPU(), Mapping::getRangeBound(), Mapping::getRangeDimension(), FaceInfo::loop, max(), EdgeInfo::next, numberOfEdgeCurves, Loop::numberOfEdges(), FaceInfo::numberOfLoops, CompositeSurface::numberOfSubSurfaces(), searchTree, and Start.

Referenced by computeTopology(), get(), and update().

int CompositeTopology::buildEdgeSegment ( Mapping trimCurve,
Mapping surface,
NurbsMapping *&  edge,
int &  numberOfGridPoints,
real arcLength,
int &  debug,
GenericGraphicsInterface gi 
)
protected

Build an edge curve by interpolation of points on the sub-surface.

Here we build both the edgeCurve (saved in edge) and the set of points used in the triangulation of the edge.

Parameters
trimCurve(input) : this edge curve is from a trimming curve (or a boundary curve for untrimmed surfaces)
surface(input) : Mapping that defines the sub-surface.
edge(output) : If not NULL then an edge curve was built AND the referenceCount was incremented. If NULL no edge curve was built. since the arcLength of the curve was too small.
numberOfGridPoints(output) : number of points on the curve to use for the triangulation, based on the current value of deltaS
arcLength(output): the arc-length of the edge curve

References axis1, computeNumberOfGridPoints(), curveResolutionTolerance, Mapping::debug, deltaS, dr, GenericGraphicsInterface::erase(), fabs(), Mapping::getClassName(), NurbsMapping::getGrid(), Mapping::getGrid(), Mapping::getIsPeriodic(), GI_TOP_LABEL, improveTri, ReferenceCounting::incrementReferenceCount(), Mapping::inverseMap(), ip, Mapping::map(), max(), mergeTolerance, min(), minNumberOfPointsOnAnEdge, NULL, numberOfEdgeCurves, PlotIt::plot(), GenericGraphicsInterface::plotPoints(), pow(), r, GraphicsParameters::set(), Mapping::setGridDimensions(), Mapping::setIsPeriodic(), and x.

Referenced by buildEdgeCurves().

int CompositeTopology::buildSubSurfaceTriangulation ( int  s,
IntegerArray numberOfBoundaryNodes,
realArray rCoordinates,
IntegerArray edgeNodeInfop,
IntegerArray boundaryNodeInfop,
int &  totalNumberOfNodes,
int &  totalNumberOfFaces,
int &  totalNumberOfElements,
real totalTimeToBuildSeparateTriangulations,
real totalTriangleTime,
real totalNurbTime,
real totalResolutionTime,
int &  debug,
GenericGraphicsInterface gi,
GraphicsParameters params 
)
protected

Build a triangulation on a sub-surface using the merged edge curves.

References addInteriorNodes(), EdgeInfoArray::array, assert, aString, axis1, bb, cs, curvatureTolerance, EdgeInfo::curve, Mapping::determineResolution(), display(), E, EdgeInfo::edgeCurveIsNotUsed, EdgeInfo::edgeNumber, End, CurveSegment::endingPoint, GenericGraphicsInterface::erase(), fabs(), faceInfoArray, EdgeInfo::faceNumber, Loop::firstEdge, Mapping::functionPeriodic, TriangleWrapper::generate(), TriangleWrapper::generateElementList(), Mapping::getClassName(), getCPU(), Mapping::getDomainBound(), TriangleWrapperParameters::getFreezeSegments(), NurbsMapping::getGrid(), Mapping::getGridDimensions(), Mapping::getIsPeriodic(), GenericGraphicsInterface::getMenuItem(), Mapping::getName(), TriangleWrapper::getNeighbours(), UnstructuredMapping::getNodes(), TriangleWrapper::getNumberOfBoundaryEdges(), TriangleWrapper::getNumberOfEdges(), UnstructuredMapping::getNumberOfElements(), UnstructuredMapping::getNumberOfFaces(), UnstructuredMapping::getNumberOfNodes(), CurveSegment::getNURBS(), TriangleWrapper::getParameters(), TriangleWrapper::getPoints(), Mapping::getRangeBound(), GI_PLOT_THE_OBJECT_AND_EXIT, GI_POINT_COLOUR, GI_TOP_LABEL, improveTri, ReferenceCounting::incrementReferenceCount(), EdgeInfo::initialCurve, TriangleWrapper::initialize(), Mapping::inverseMap(), FaceInfo::loop, EdgeInfo::loopNumber, Mapping::map(), NurbsMapping::map(), Mapping::mappingName, EdgeInfo::master, masterEdge, EdgeInfo::masterEdgeNumber(), max(), maxDist, maximumArea, min(), EdgeInfo::next, Mapping::notPeriodic, NULL, Loop::numberOfEdges(), numberOfFaces, FaceInfo::numberOfLoops, EdgeInfo::orientation, PlotIt::plot(), GenericGraphicsInterface::plotLines(), GenericGraphicsInterface::plotPoints(), r, R, ra, REAL_EPSILON, REAL_MAX, REAL_MIN, refineCurve(), refineTriangulation(), Loop::removeEdge(), RR, s, TriangleWrapperParameters::saveNeighbourList(), TriangleWrapperParameters::saveVoronoi(), SCALE_TWO_SIDES, scaleNodes(), GraphicsParameters::set(), TriangleWrapper::setHoles(), TriangleWrapperParameters::setMaximumArea(), Mapping::setName(), UnstructuredMapping::setNodesElementsAndNeighbours(), TriangleWrapperParameters::setQuietMode(), TriangleWrapperParameters::setVerboseMode(), EdgeInfo::slave, sPrintF(), SQR, Start, CurveSegment::startingPoint, GenericGraphicsInterface::stopReadingCommandFile(), CurveSegment::subCurve, CurveSegment::surfaceNumber, TriangleWrapperParameters::toggleFreezeSegments(), triangleErrorDetected, triangulationSurface, Loop::trimOrientation, and XR.

Referenced by triangulateCompositeSurface().

int CompositeTopology::buildTriangulationForVisibleSurfaces ( )
bool CompositeTopology::checkConsistency ( bool  quiet = false)
protected
int CompositeTopology::cleanup ( )

Cleanup temporary storage used while determining the connectivity and global triangulation.

Call this next routine to cleanup objects that are only needed while the topology in the process of being computed or changed. For example, call this routine to release memory once you have computed a valid global triangulation.

References allEdges, faceInfoArray, NULL, numberOfEdgeCurves, numberOfFaces, EdgeInfoArray::pop(), CurveSegment::resetGlobalCount(), s, triangulationSurface, and unusedEdges.

Referenced by buildEdgeCurves(), and ~CompositeTopology().

int CompositeTopology::computeNumberOfGridPoints ( real  arcLength,
realArray x,
real maxCurvature 
)
protected

Determine the number of grid points to put on a curve.

Parameters
arcLength(input) : arcLength of the curve defined by the grid points x.
x(input) :
maxCurvature(output):
Returns
numberOfGridPoints : number of nodes that will appear on the curve when it is triangulated – this will be different from the number of points we use to approximate the curve with

References curvatureTolerance, deltaS, fabs(), max(), and minNumberOfPointsOnAnEdge.

Referenced by buildEdgeCurveBoundaryNodes(), and buildEdgeSegment().

bool CompositeTopology::computeTopology ( GenericGraphicsInterface gi,
int  debug = 0 
)
EdgeInfo * CompositeTopology::edgeFromNumber ( int  n)
int CompositeTopology::findBoundaryCurves ( int &  numberOfBoundaryCurves,
Mapping **&  boundaryCurves 
)

Locate boundary curves on a CompositeSurface. Merge boundary edge curves that form a smooth portion of the boundary.

Parameters
numberOfBoundaryCurves(output) : number of boundary curves found.
boundaryCurves(output) : Boundary curves.
Note
This routine will increment the reference count for you.

References bb, boundingBox, cs, delta, EdgeInfo::edgeCurveIsBoundary, End, fabs(), faceInfoArray, Loop::firstEdge, NurbsMapping::getGrid(), Mapping::getGrid(), Mapping::getGridDimensions(), Mapping::getRangeBound(), Mapping::getRangeDimension(), Bound::isFinite(), FaceInfo::loop, NurbsMapping::map(), max(), NurbsMapping::merge(), EdgeInfo::next, Loop::numberOfEdges(), FaceInfo::numberOfLoops, CompositeSurface::numberOfSubSurfaces(), r, Start, and x.

Referenced by CompositeSurface::findBoundaryCurves().

int CompositeTopology::get ( const GenericDataBase dir,
const aString name 
)
virtual
int CompositeTopology::getAnotherEdge ( EdgeInfo *&  edgeChosen,
GenericGraphicsInterface gi,
const aString question,
const aString cancel 
)
protected
real CompositeTopology::getDeltaS ( ) const

References deltaS.

Mapping & CompositeTopology::getEdgeCurve ( int  number)
CompositeTopology::EdgeCurveStatusEnum CompositeTopology::getEdgeCurveStatus ( int  number)
int CompositeTopology::getEdgeFromEndPoints ( real x0,
real x1 
)
real CompositeTopology::getMaximumArea ( ) const

References maximumArea.

int CompositeTopology::getNearestEdge ( real  x[3])

Return the number of the edge curve nearest to the point x.

Parameters
x[3](input): A point in physical space.
Returns
: Failure: -1. Success: Number of the edge curve. This number can be used as an argument to getEdgeCurve or getEdgeCurveStatus.

References allEdges, bb, EdgeInfo::curve, delta, EdgeInfo::edgeCurveIsBoundary, EdgeInfo::edgeCurveIsMaster, fabs(), CurveSegment::getNURBS(), Mapping::inverseMap(), NurbsMapping::map(), max(), mergeTolerance, min(), NULL, numberOfUniqueEdgeCurves, r, searchTree, and EdgeInfo::status.

Referenced by HyperbolicMapping::buildCurve().

int CompositeTopology::getNumberOfEdgeCurves ( )
const IntegerArray& CompositeTopology::getSignForNormal ( ) const
inline
UnstructuredMapping* CompositeTopology::getTriangulation ( ) const
inline
UnstructuredMapping* CompositeTopology::getTriangulationSurface ( int  s)
inline

References NULL, and triangulationSurface.

Referenced by refineVisibleSurfaces().

int CompositeTopology::initializeTopology ( )
protected
void CompositeTopology::invalidateTopology ( )
int CompositeTopology::joinEdgeCurves ( EdgeInfo eOrig,
bool  toNext,
int  debug = 0 
)
protected
int CompositeTopology::merge ( EdgeInfo e,
int  debug 
)
protected
int CompositeTopology::mergeEdgeCurves ( EdgeInfo e,
EdgeInfo e2,
int  debug = 0 
)
protected

Attempt to force a merge between two edge curves. Double check that the merge make sense.

Parameters
e,e2(input): try to merge these two edge curves.
Returns
0==success.

References averageMergeDistance, EdgeInfo::curve, EdgeInfo::edgeCurveIsBoundary, EdgeInfo::edgeNumber, endPoint, fabs(), EdgeInfo::faceNumber, EdgeInfo::getEndPoint(), CurveSegment::getNURBS(), EdgeInfo::getStartPoint(), Mapping::inverseMap(), Mapping::map(), max(), maximumMergeDistance, mergeTolerance, mergeTwoEdges(), min(), q, r, EdgeInfo::status, and x.

Referenced by update().

bool CompositeTopology::mergeTwoEdges ( EdgeInfo e,
EdgeInfo eMin,
int  orientation,
real  tolerance,
int  debug 
)
protected
CompositeTopology & CompositeTopology::operator= ( const CompositeTopology X)
int CompositeTopology::printEdgeCurveInfo ( GenericGraphicsInterface gi)
protected
void CompositeTopology::printInfoForAnEdgeCurve ( EdgeInfo e)
protected

Print info about a particular edge curve.

/param e (input): edge curve number

int CompositeTopology::put ( GenericDataBase dir,
const aString name 
) const
virtual
void CompositeTopology::setDeltaS ( real  ds)
void CompositeTopology::setMaximumArea ( real  maxa)

References maximumArea.

void CompositeTopology::setupAllEdges ( )
protected
int CompositeTopology::splitAndMergeEdgeCurves ( GenericGraphicsInterface gi,
int &  debug 
)
protected
int CompositeTopology::splitEdge ( EdgeInfo **  ePP,
real  rSplit,
int &  debug,
bool  mergeNewEdges = true 
)
protected
bool CompositeTopology::topologyDetermined ( )
inline
int CompositeTopology::triangulateCompositeSurface ( int &  debug,
GenericGraphicsInterface gi,
GraphicsParameters params 
)
protected
void CompositeTopology::unMergeEdge ( EdgeInfo e)
protected
int CompositeTopology::update ( )

Interactively build the connectivity information for a CompositeSurface.

References SelectionInfo::active, DialogData::addPulldownMenu(), DialogData::addRadioBox(), assert, aString, buildEdgeCurveBoundaryNodes(), buildEdgeCurves(), buildEdgeCurveSearchTree(), UnstructuredMapping::checkConnectivity(), checkConsistency(), GenericGraphicsInterface::createMessageDialog(), cs, GraphicsParameters::curveLineWidth, GenericGraphicsInterface::deleteList(), deltaS, EdgeInfo::edgeCurveIsBoundary, EdgeInfo::edgeCurveIsMaster, EdgeInfo::edgeCurveIsNotUsed, EdgeInfo::edgeCurveIsSlave, edgeCurvesAreBuilt, edgeFromNumber(), EdgeInfo::edgeNumber, MappingProjectionParameters::elementIndex, GenericGraphicsInterface::erase(), UnstructuredMapping::eraseUnstructuredMapping(), errorDialog, UnstructuredMapping::Face, faceInfoArray, Loop::firstEdge, GenericGraphicsInterface::generateNewDisplayList(), GraphicsParameters::get(), getAnotherEdge(), GenericGraphicsInterface::getAnswer(), getCPU(), Mapping::getDomainDimension(), UnstructuredMapping::getElementFaces(), UnstructuredMapping::getElements(), UnstructuredMapping::getFaceElements(), UnstructuredMapping::getFaces(), GenericGraphicsInterface::getGlobalBound(), Overture::getGraphicsInterface(), MappingProjectionParameters::getIntArray(), UnstructuredMapping::getNodes(), UnstructuredMapping::getNumberOfElements(), UnstructuredMapping::getNumberOfNodes(), DialogData::getRadioBox(), Mapping::getRangeDimension(), UnstructuredMapping::getTags(), getTriangulation(), GI_LINE_COLOUR, GI_MAPPING_COLOUR, GI_PLOT_BLOCK_BOUNDARIES, GI_PLOT_END_POINTS_ON_CURVES, GI_PLOT_GRID_POINTS_ON_CURVES, GI_PLOT_LINES_ON_MAPPING_BOUNDARIES, GI_PLOT_MAPPING_EDGES, GI_PLOT_MAPPING_NORMALS, GI_PLOT_SHADED_MAPPING_BOUNDARIES, GI_PLOT_THE_OBJECT_AND_EXIT, GI_PLOT_UNS_BOUNDARY_EDGES, GI_PLOT_UNS_EDGES, GI_PLOT_UNS_FACES, GI_POINT_COLOUR, GI_PUSHBUTTON, GI_UNS_FLAT_SHADING, globalTriangulation, MappingInformation::gp_, MappingInformation::graphXInterface, improveTri, informationDialog, GenericGraphicsInterface::inputFileName(), GenericGraphicsInterface::isGraphicsWindowOpen(), joinEdgeCurves(), FaceInfo::loop, maxDist, maximumArea, mergedCurvesAreValid, mergeEdgeCurves(), mergeTolerance, minNumberOfPointsOnAnEdge, EdgeInfo::next, SelectionInfo::nSelect, NULL, numberOfEdgeCurves, Loop::numberOfEdges(), FaceInfo::numberOfLoops, CompositeSurface::numberOfSubSurfaces(), EdgeInfo::orientation, GenericGraphicsInterface::outputString(), GenericGraphicsInterface::outputToCommandFile(), GenericGraphicsInterface::pause(), PlotIt::plot(), GenericGraphicsInterface::plotLines(), GenericGraphicsInterface::popGUI(), printEdgeCurveInfo(), printF(), UnstructuredMapping::project(), DialogData::pushButtonWidget, GenericGraphicsInterface::pushGUI(), UnstructuredMapping::put(), q, recomputeEdgeCurveBoundaryNodes, s, GenericGraphicsInterface::savePickCommands(), SC, searchTree, SelectionInfo::selection, GraphicsParameters::set(), UnstructuredMapping::setColour(), RadioBox::setCurrentChoice(), DialogData::setExitCommand(), GenericGraphicsInterface::setGlobalBound(), DialogData::setLastPullDownIsHelp(), GenericGraphicsInterface::setPlotDL(), DialogData::setPushButtons(), DialogData::setSensitive(), DialogData::setTextBoxes(), DialogData::setTextLabel(), DialogData::setToggleButtons(), DialogData::setToggleState(), DialogData::setWindowTitle(), UnstructuredMapping::specifyEntity(), splitAndMergeEdgeCurves(), splitEdge(), splitToleranceFactor, sPrintF(), sScanF(), EdgeInfo::status, GenericGraphicsInterface::stopReadingCommandFile(), MappingProjectionParameters::subSurfaceIndex, DialogData::toggleButtonWidget, triangulateCompositeSurface(), triangulationIsValid, triangulationSurface, unMergeEdge(), CompositeSurface::update(), UnstructuredMapping::update(), SelectionInfo::x, and x.

Referenced by CompositeSurface::updateTopology().

Member Data Documentation

EdgeInfo** CompositeTopology::allEdges
protected

An array of pointers to edge curves (which has a pointer to the corresponding CurveSegment object).

Referenced by cleanup(), CompositeTopology(), getEdgeCurve(), getEdgeCurveStatus(), getEdgeFromEndPoints(), getNearestEdge(), getNumberOfEdgeCurves(), and setupAllEdges().

real CompositeTopology::averageMergeDistance
protected
ArraySimple<real> CompositeTopology::boundingBox
protected
real CompositeTopology::boundingBoxExtension
protected

for increasing the size of bounding boxes when searching

Referenced by buildEdgeCurveSearchTree(), CompositeTopology(), initializeTopology(), and splitAndMergeEdgeCurves().

CompositeSurface& CompositeTopology::cs
protected
real CompositeTopology::curvatureTolerance
protected
real CompositeTopology::curveResolutionTolerance
protected
real CompositeTopology::deltaS
protected

Suggested arclength distance between points on the edge curves of the global triangulation.

Referenced by buildEdgeSegment(), CompositeTopology(), computeNumberOfGridPoints(), get(), getDeltaS(), initializeTopology(), setDeltaS(), and update().

bool CompositeTopology::edgeCurvesAreBuilt
protected
realArray CompositeTopology::endPoint
protected
FaceInfo* CompositeTopology::faceInfoArray
protected
UnstructuredMapping* CompositeTopology::globalTriangulation
protected
UnstructuredMapping* CompositeTopology::globalTriangulationForVisibleSurfaces
protected

Holds the triangulation when some surfaces are hidden.

Referenced by buildTriangulationForVisibleSurfaces(), CompositeTopology(), getTriangulation(), and ~CompositeTopology().

bool CompositeTopology::improveTri
protected
EdgeInfoArray CompositeTopology::masterEdge
protected
real CompositeTopology::maxDist
protected
real CompositeTopology::maximumArea
protected
real CompositeTopology::maximumMergeDistance
protected
bool CompositeTopology::mergedCurvesAreValid
protected
real CompositeTopology::mergeTolerance
protected
real CompositeTopology::minimumUnmergedDistance
protected
int CompositeTopology::minNumberOfPointsOnAnEdge
protected

Minimum number of points to place on an edge curve (over-rides deltaS).

Referenced by buildEdgeSegment(), computeNumberOfGridPoints(), get(), initializeTopology(), joinEdgeCurves(), splitEdge(), and update().

int CompositeTopology::numberOfEdgeCurves
protected
int CompositeTopology::numberOfEndPoints
protected
int CompositeTopology::numberOfFaces
protected
int CompositeTopology::numberOfUniqueEdgeCurves
protected
bool CompositeTopology::recomputeEdgeCurveBoundaryNodes
protected
EdgeInfoADT* CompositeTopology::searchTree
protected
IntegerArray CompositeTopology::signForNormal
protected
real CompositeTopology::splitToleranceFactor
protected

splitTolerance = mergeTolerance * splitToleranceFactor

Referenced by CompositeTopology(), get(), splitAndMergeEdgeCurves(), and update().

bool CompositeTopology::triangulationIsValid
protected

True if the global triangulation has been built.

Referenced by computeTopology(), get(), initializeTopology(), splitAndMergeEdgeCurves(), and update().

UnstructuredMapping** CompositeTopology::triangulationSurface
protected
EdgeInfoArray CompositeTopology::unusedEdges
protected

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