Class: TGSurface3D

Declaration: Surface3D.h

Taxonomy Categories:

Member Functions:


Interface Category:

API.

Inherits From:

None.

Inherited By:

None.

Purpose:

TGSurface3D is used to create curved surfaces. TGSurface3D defines a 3-D tensor product NURB surface of arbitrary order. Due to the NURB (Non-Uniform Rational B-Spline) representation, the boundaries for all popular quadric shapes--spheres, cones, cylinders, tori, and so on--can be exactly represented. (Such shapes can be easily constructed with the TSweep3D class.) A surface has two parameters, u and v. Think of one parameter defining an isoparametric line across the surface, and the second defining a point on that line. By manipulating the TGSurface3D's knot vector, arbitrary discontinuities can be introduced in either parametric direction. (Operations that work on a specific parametric direction use the enum ESurfaceDirection to specify which one to operate on.) A TGSurface3D is defined by a set of control points, which you can think of as a 2-D rectangular mesh that is deformed to approximate the 3-D surface. Although the mesh is actually stored as a one-dimensional array of TGPoint3Ds, various member functions let you access it as though it were a 2-D array, by specifying a row and a column. A TGSurface3D can be trimmed in parametric space with a 2-D TGLoop. For example, you can cut a hole in a surface by trimming it with an ellipse. You can trim a flat surface to create an end cap for an extruded letter, or a 3-D polygon. A trimming loop is specified as a constructor argument or with TGSurface3D::SetTrim.

Instantiation:

Allocate on the heap or the stack.

Deriving Classes:

None. Do not derive from this class.

Concurrency:

Not multithread safe.

Resource Use:

No special requirements.

Member Function: TGSurface3D::GetEmptyLoop

static TGLoop & GetEmptyLoop ()

Interface Category:

API.

Purpose:

Returns the value kEmptyLoop.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the value kEmptyLoop.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::TGSurface3D

  1. TGSurface3D ()
  2. TGSurface3D (unsigned long OrderU, unsigned long OrderV, unsigned long NumPointsU, unsigned long NumPointsV, const TGLoop & TrimCurve =GetEmptyLoop ())
  3. TGSurface3D (unsigned long OrderU, unsigned long OrderV, unsigned long NumPointsU, unsigned long NumPointsV, const TGRPoint3DArray & points, const TGLoop & TrimCurve =GetEmptyLoop ())
  4. TGSurface3D (unsigned long OrderU, unsigned long OrderV, unsigned long NumPointsU, unsigned long NumPointsV, const TGRPoint3DArray & points, const TRawArray < GParametric > & KnotsU, const TRawArray < GParametric > & KnotsV, const TGLoop & TrimCurve =GetEmptyLoop ())
  5. TGSurface3D (const TGSurface3D & surface)
  6. TGSurface3D (const TCurveList3D & crv, unsigned long orderV =2, ESurfaceDirection dir =kuDirection)
  7. TGSurface3D (const TGCurve3D & c1, const TGCurve3D & c2, ESurfaceDirection dir =kuDirection)
  8. TGSurface3D (const TGCurve3D & c0, const TGCurve3D & c1, const TGCurve3D & c2, const TGCurve3D & c3)
  9. TGSurface3D (const TGSurface3D & s0, const TGSurface3D & s1, GCoordinate tangent0 =0.0, GCoordinate tangent1 =0.0)

Interface Category:

API.

Purpose:

  1. Default constructor.
  2. Creates a TGSurface3D from the specified parameters. The control points are automatically generated along a rectilinear grid that ranges from (0, 0, 0) to (1, 1, 0). The knot vectors for each parametric direction are set to TGCurve3D::kPinned.
  3. Creates a TGSurface3D from the specified parameters. The knot vectors for each parametric direction are set to TGCurve3D::kPinned.
  4. Creates a TGSurface3D from the specified parameters.
  5. Copy constructor.
  6. Creates a lofted TGSurface3D from the specified parameters. This is similar to a ruled surface except that a number of curves in between the two boundary (edge) curves can be specified.
  7. Note: The surface does not generally interpolate the interior set of curves.
  8. Creates a ruled TGSurface3D from two specified curves and the specified parametric direction. The two curves become opposing boundary curves that are connected with straight lines in the other parametric direction. The curves are made compatible before forming the surface (that is, all orders are raised until they are equal, and the curves are refined so that their knot vectors are equivalent). The specified direction determines which parametric direction is connected with straight lines.
  9. Creates a Boolean sum TGSurface3D from the specified parameters. This is sometimes referred to as a Coons patch. The curves are assumed to meet at the corner points. (The surface shape is unpredictable if this condition is not met.) The four curves are made compatible before forming the surface (that is, all orders are raised until they are equal, and the curves are refined so that their knot vectors are equivalent).
  10. Creates a bounded TGSurface3D from the specified parameters.

Calling Context:

  1. Called by the stream-in operators and directly.
  2. Call this function directly.
  3. Call this function directly.
  4. Call this function directly.
  5. Called to copy an object.
  6. Call this function directly.
  7. Call this function directly.
  8. Call this function directly.
  9. Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

  1. Throws no exceptions, passes all exceptions through.
  2. Calls two parameter assertions. The first one fails if either of the two orders is less than 2. The second fails if either of the specified number of points is less than the order (in the same direction).
  3. Calls three parameter assertions. The first one fails if either of the two orders is less than 2. The second one fails if either of the specified number of points is less than the order (in the same direction). The third one fails if the number of control points in the specified point array does not equal the number of points for each direction multiplied by one another.
  4. Calls five parameter assertions. The first one fails if either of the two orders is less than 2. The second one fails if either of the specified number of points is less than the order (in the same direction). The third one fails if the number of control points in the specified point array does not equal the number of points for each direction multiplied by one another. The fourth one fails if the number of knots in the knot vector (for the U parametric direction) is not equal to the specified number of points (for the U parametric direction) plus the specified order (for the U parametric direction). Similarly, the fifth one fails if the number of knots in the knot vector (for the V parametric direction) is not equal to the specified number of points (for the V parametric direction) plus the specified order (for the V parametric direction).
  5. Throws no exceptions, passes all exceptions through.
  6. Throws no exceptions, passes all exceptions through.
  7. Throws no exceptions, passes all exceptions through.
  8. Throws no exceptions, passes all exceptions through.
  9. Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::~TGSurface3D

virtual ~ TGSurface3D ()

Interface Category:

API.

Purpose:

Destructor.

Calling Context:

Called to destroy an object.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::Evaluate

  1. TGPoint3D Evaluate (GParametric u, GParametric v) const
  2. TGPoint3D Evaluate (GParametric u, GParametric v, TGPoint3D & tangentU, TGPoint3D & tangentV) const

Interface Category:

API.

Purpose:

  1. Returns the point on this TGSurface3D at the specified parameter.
  2. Returns the point on the curve at the specified parameter and also returns (in the specified parameter) the curve's tangent.
  3. Returns the point on this TGSurface3D at the specified parameter and also returns (in the specified parameters) the curve's tangent and the curvature.

Calling Context:

  1. Call this function directly.
  2. Call this function directly.

Parameters:

Return Value:

Returns the point on the surface at the specified parametric value.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::IsEmpty

bool IsEmpty () const

Interface Category:

API.

Purpose:

Determines if this TGSurface3D is empty.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns true if the orders of the surface in both parametric directions are equal to 0.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetOrder

unsigned long GetOrder (ESurfaceDirection Dir) const

Interface Category:

API.

Purpose:

Gets the order of this TGSurface3D for the specified parametric direction.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the order of the surface for the direction.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetNumberOfPoints

unsigned long GetNumberOfPoints (ESurfaceDirection Dir) const

Interface Category:

API.

Purpose:

Gets the number of control points in this TGSurface3D for the specified parametric direction.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the number of control points for the direction.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetPoint

TGRPoint3D GetPoint (unsigned long row, unsigned long col) const

Interface Category:

API.

Purpose:

Gets this TGSurface3D's control point at the specified indexes.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the control point for the direction.

Exceptions:

Calls an parameter assertion that fails if either of the indexes is out of range.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetPoints

void GetPoints (TGRPoint3DArray & pts) const

Interface Category:

API.

Purpose:

Copies, into its parameter, the complete array of this TGSurface3D's control points.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetMinParameter

GParametric GetMinParameter (ESurfaceDirection dir) const

Interface Category:

API.

Purpose:

Gets the minimum value for this TGSurface3D's parametric range in the specified direction. (This is determined by the knot vectors.)

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the minimum parametric value of the surface.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetMaxParameter

GParametric GetMaxParameter (ESurfaceDirection dir) const

Interface Category:

API.

Purpose:

Gets the maximum value for this TGSurface3D's parametric range in the specified direction. (This is determined by the knot vectors.)

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the maximum parametric value of the surface.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetNumberOfKnots

unsigned long GetNumberOfKnots (ESurfaceDirection dir) const

Interface Category:

API.

Purpose:

Gets the size of the TGSurface3D's knot vector (that is, the order plus the number of control points) for the specified direction.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the size of the knot vector.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetKnot

GParametric GetKnot (ESurfaceDirection Dir, long i) const

Interface Category:

API.

Purpose:

Gets this TGSurface3D's parametric value corresponding to the specified knot in the specified direction.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the parametric value corresponding to the specified knot.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetKnots

void GetKnots (ESurfaceDirection dir, TRawArray < GParametric > & knots) const

Interface Category:

API.

Purpose:

Returns, by reference in its parameter, this TGSurface3D's knot vector in the specified direction.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::IsBezier

bool IsBezier (ESurfaceDirection dir) const

Interface Category:

API.

Purpose:

Determines whether this TGSurface3D's knot vector represents a Bezier surface in the specified direction.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns true if the knot vector defines a Bezier surface.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::IsPinned

bool IsPinned (ESurfaceDirection dir) const

Interface Category:

API.

Purpose:

Determines whether this TGSurface3D reaches the boundary curve defined by the edge of the control mesh in the specified direction.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns true if the surface reaches the boundary curve defined by the edge of the control mesh in the specified direction.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetNextDiscontinuity

unsigned long GetNextDiscontinuity (ESurfaceDirection dir, unsigned long startIndex, unsigned long discontinuity =0) const

Interface Category:

API.

Purpose:

Returns the knot vector index of the next discontinuity following the specified knot. The default is the next C0 discontinuity (a break in the curve), but you can specify discontinuities of a higher order. GetNextDiscontinuity returns the index of the first knot in a sequence of identical knots. (The order of the discontinuity determines how many identical knots are required.) Call GetKnot on the returned value to find the parameter of the curve at the discontinuity. Note that for a C0 break in the curve, the value returned by GetKnot(GetNextDiscontinuity()) is the start of the section of the curve after the break. Subtracting any amount from that parameter jumps to the section before the break. To find the control point associated with a C1 discontinuity, subtract 1 from the value returned by GetNextDiscontinuity. For a C0 discontinuity, GetNextDiscontinuity()-1 is the point before the break, and the following point is after the break. To skip from one discontinuity to the next, you can pass the value returned from the last call as the startIndex parameter.

Calling Context:

Call this function directly.

Parameters:

Return Value:

The index (into the knot vector) of the next discontinuity. If no more discontinuities are found, the return value is the index of the last knot (in other words, GetNumberOfKnots()-1).

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetBounds

TGBox3D GetBounds () const

Interface Category:

API.

Purpose:

Gets the box that bounds this TGSurface3D.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the box that bounds the surface.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetSectionOfSurface

void GetSectionOfSurface (GParametric Umin, GParametric Umax, GParametric Vmin, GParametric Vmax, TGSurface3D & surface) const

Interface Category:

API.

Purpose:

Gets a portion of this TGSurface3D that is bounded (in parametric space) by the specified parameters.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::ReverseDirection

void ReverseDirection (ESurfaceDirection dir =kvDirection)

Interface Category:

API.

Purpose:

Reverses the direction of this TGSurface3D's parameterization by reversing the order of the control points and the intervals in the knot vector in the specified parametric direction.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::TransformBy

void TransformBy (const TGrafMatrix3D & xform)

Interface Category:

API.

Purpose:

Transforms this TGSurface3D's shape and position by applying the specified transformation matrix.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetIsocurve

void GetIsocurve (ESurfaceDirection dir, GParametric u, TGCurve3D & curve) const

Interface Category:

API.

Purpose:

Gets the isocurve (in the parametric specified direction) on this TGSurface3D at the specified parametric location.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::SetOrder

void SetOrder (ESurfaceDirection dir, unsigned long Order)

Interface Category:

API.

Purpose:

Sets the order of this TGSurface3D in the specified parametric direction. This changes the surface's shape.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::RaiseOrder

void RaiseOrder (ESurfaceDirection dir, unsigned long newOrder)

Interface Category:

API.

Purpose:

Raises the order of this TGSurface3D in the specified parametric direction to a new order. The shape is preserved, but additional control points are added.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::SetPoint

void SetPoint (unsigned long iv, unsigned long iu, const TGRPoint3D & p)

Interface Category:

API.

Purpose:

Replaces the control point at the parametric location (specified by the row and column parameters) with a copy of the specified TGPoint3D.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::SetPoints

void SetPoints (const TGRPoint3DArray & ControlPoints)

Interface Category:

API.

Purpose:

Replaces all the control points with a copy of the specified TGRPoint3DArray.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Calls a parameter assertion that fails if the number of points in the parameter is not equal to the number of points in the surface.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::SetKnotScheme

void SetKnotScheme (ESurfaceDirection dir, TGCurve3D :: EndConditions endcond =TGCurve3D :: kPinned)

Interface Category:

API.

Purpose:

Resets the knot vector in the specified direction, using one of the following, common schemes: kPinned, kFloating, or kBezier, as specified.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::SetKnots

void SetKnots (ESurfaceDirection dir, const TRawArray < GParametric > & knots)

Interface Category:

API.

Purpose:

Resets the knot vector in the specified parametric direction to the specified knots. The data are copied into this TSurface3D and must have the same number of knots as the surface's current knot vector. No refinement or consistency checking is performed on the knot vector.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::MoveKnot

void MoveKnot (ESurfaceDirection dir, unsigned long index, GParametric u)

Interface Category:

API.

Purpose:

Moves the specified knot to the point that has the specified parametric value. If u < knot[index -1] or u >knot[index + 1], the knot vector is sorted to accommodate the new value. This changes the shape of the surface.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::MakeCompatible

  1. void MakeCompatible (ESurfaceDirection dir, TGCurve3D & Crv)
  2. static void MakeCompatible (TGSurface3D & surf1, TGSurface3D & surf2)

Interface Category:

API.

Purpose:

  1. Makes this TGSurface3D compatible with the specified TGCurve in the parametric direction specified. This means that the curve and the surface (in the specified direction) will have the same order and knot vectors.
  2. This makes two TGSurfaces compatible, so that their orders and knot vectors in both directions are the same.

Calling Context:

  1. Call this function directly.
  2. Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::SwapUandV

void SwapUandV ()

Interface Category:

API.

Purpose:

Swaps the column and row parameterizations.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::InsertKnot

void InsertKnot (ESurfaceDirection dir, GParametric u)

Interface Category:

API.

Purpose:

Inserts a single row or column of knots at the specified parametric value.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Calls a parameter assertion that fails if the specified parametric value is out of range (that is, it is less than the first knot in the vector or greater than the last one).

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::MakeDiscontinuity

void MakeDiscontinuity (ESurfaceDirection dir, GParametric u, TGCurve3D :: EDiscontinuity cont)

Interface Category:

API.

Purpose:

Adds a C0, C1, or C2 discontinuity to this TGSurface3D at the specified parametric value and in the specified direction.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::RefineUniform

void RefineUniform (ESurfaceDirection dir)

Interface Category:

API.

Purpose:

Adds a new knot at the midpoint of each non-zero interval in the knot vector. No knots are inserted between the first N or the last N knots in the vector, where N is the order of the curve. This function does not change the shape of the curve, nor does it change the continuity of the curve.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::RefineToBeziers

void RefineToBeziers (ESurfaceDirection dir)

Interface Category:

API.

Purpose:

Inserts additional knots into this TGSurface3D so that all knots have multiplicity order -1 in the specified parametric direction. This turns the surface into a piecewise Bezier definition. The shape of the surface is not changed.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::Refine

void Refine (ESurfaceDirection dir, const TRawArray < GParametric > & newKnots)

Interface Category:

API.

Purpose:

Inserts additional knots into this TGSurface3D, adding new control points without modifying the shape, though the control mesh can. This is used to increase the flexibility of a surface.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Calls two assertions: First, it calls an initialization parameter that fails if the order of the surface in the kuDirection is empty. Second, it calls a parameter assertion that fails if the number of knots in the specified parameter is less than the order of the surface (in the specified direction) plus the number of control points (in the specified direction).

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::RefineToPinned

void RefineToPinned (ESurfaceDirection dir)

Interface Category:

API.

Purpose:

Adds knots to the beginning and the end of the knot vector so that control mesh is pinned to the ends of the surface (in other words, so that the surface intersects the first and last control points). The shape of the surface is not changed. This only applies to floating end condition curves.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::GetTrim

void GetTrim (TGLoop & trimCurve) const

Interface Category:

API.

Purpose:

Returns, in the specified parameter, this TGSurface3D's trimming loop.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::ClearTrim

void ClearTrim ()

Interface Category:

API.

Purpose:

Sets this TGSurface3D's trimming loop to NIL.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::SetTrim

void SetTrim (const TGLoop & trim)

Interface Category:

API.

Purpose:

Sets this TGSurface3D's trimming loop.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::operator=

TGSurface3D & operator =(const TGSurface3D & surface)

Interface Category:

API.

Purpose:

Assignment operator.

Calling Context:

Called when an object is assigned to another compatible object.

Parameters:

Return Value:

A non-const reference to the left-hand side object.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::operator<<=

TStream & operator <<= (TStream & fromwhere)

Interface Category:

API.

Purpose:

Stream-in operator.

Calling Context:

Called to stream in data.

Parameters:

Return Value:

Returns a reference to the stream the object streams itself in from.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::operator>>=

TStream & operator >>=(TStream & towhere) const

Interface Category:

API.

Purpose:

Stream-out operator.

Calling Context:

Called to stream out data.

Parameters:

Return Value:

Returns a reference to the stream the object streams itself out to.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::operator==

bool operator ==(const TGSurface3D &) const

Interface Category:

API.

Purpose:

Tests the two TGSurface3Ds for equality.

Calling Context:

Call this operator directly.

Parameters:

Return Value:

Returns true if the number of points in both the parameterizations is the same, the points themselves are equal, and the orders and the knot vectors are equal.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::operator!=

bool operator != (const TGSurface3D &) const

Interface Category:

API.

Purpose:

Tests the two TGSurface3Ds for inequality.

Calling Context:

Call this operator directly.

Parameters:

Return Value:

Returns true if the number of points in both the parameterizations is not the same, the points themselves are unequal, the orders and the knot vectors are unequal.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.

Member Function: TGSurface3D::IsConsistent

bool IsConsistent () const

Interface Category:

API.

Purpose:

Checks this TGSurface3D for invalid knot vectors, nonpositive values of w, excessive values for the order of the curve, and too many or too few control points. If any offending condition is encountered, an error message is printed and the function returns false. Duplicate successive points cause a warning to be printed, but do not cause the function to return false.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns true if no offending condition is found.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Not multithread safe.

Other Considerations:

None.
Click the icon to mail questions or corrections about this material to Taligent personnel.
Copyright©1995 Taligent,Inc. All rights reserved.