(trng_der.c:165)
Prototype:
TrngTriangSrfStruct *TrngBspTriSrfDerive(const TrngTriangSrfStruct *TriSrf,
TrngTriSrfDirType Dir)
Description:
Given a Bspline triangular surface, computes its partial derivative
triangular surface in direction Dir.
Parameters:
| TriSrf: | Triangular Surface to differentiate.
|
|---|
| Dir: | Direction of differentiation. Either U or V or W.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: Differentiated triangular surface in direction
Dir. A Bspline triangular surface.
|
|---|
Keywords:
triangular surfaces
(trng_aux.c:196)
Prototype:
CagdBType TrngBspTriSrfHasOpenEC(const TrngTriangSrfStruct *TriSrf)
Description:
Returns TRUE iff the given triangular Bspline surface has open end
coditions.
Parameters:
| TriSrf: | To check for open end conditions.
|
|---|
Returned Value:
| CagdBType: TRUE, if given Bspline triangular surface has open end
conditions, FALSE otherwise.
|
|---|
Keywords:
open end conditions
(trng_gen.c:75)
Prototype:
TrngTriangSrfStruct *TrngBspTriSrfNew(int Length,
int Order,
CagdPointType PType)
Description:
Allocates the memory required for a new Bspline triangular surface.
Parameters:
| Length: | Number of control points along the edge of the triangle.
|
|---|
| Order: | Order of triangular surface in all U,V,W directions.
|
|---|
| PType: | Type of control points (E2, P3, etc.).
|
|---|
Returned Value:
| TrngTriangSrfStruct *: An uninitialized freeform triangular surface
Bspline.
|
|---|
Keywords:
triangular surfaces
allocation
(trng_aux.c:216)
Prototype:
TrngTriangSrfStruct *TrngBspTriSrfOpenEnd(const TrngTriangSrfStruct *TriSrf)
Description:
Returns TRUE iff the given triangular Bspline surface has open end
coditions.
Parameters:
| TriSrf: | To check for open end conditions.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: A triangular Bspline surface with open end cond.
|
|---|
Keywords:
open end conditions
(trng_der.c:67)
Prototype:
TrngTriangSrfStruct *TrngBzrTriSrfDerive(const TrngTriangSrfStruct *TriSrf,
TrngTriSrfDirType Dir)
Description:
Given a Bezier triangular surface, computes its principal derivative in
direction Dir.
Parameters:
| TriSrf: | Triangular Surface to differentiate.
|
|---|
| Dir: | Direction of differentiation. Either U or V or W.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: Differentiated triangular surface in direction
Dir. A Bezier triangular surface.
|
|---|
See Also:
TrngBzrTriSrfDerive
Keywords:
triangular surfaces
derivatives
(trng_der.c:115)
Prototype:
TrngTriangSrfStruct *TrngBzrTriSrfDirecDerive(const TrngTriangSrfStruct *TriSrf,
CagdVType DirecDeriv)
Description:
Given a Bezier triangular surface, computes its directional derivative in
parametric direction DirectionalDeriv.
Parameters:
| TriSrf: | Triangular Surface to differentiate.
|
|---|
| DirecDeriv: | erivative direction vector (coefficients must sum to zero!).
|
|---|
Returned Value:
| TrngTriangSrfStruct *: Differentiated triangular surface in direction
Dir. A Bezier triangular surface.
|
|---|
See Also:
TrngBzrTriSrfDerive
Keywords:
triangular surfaces
derivatives
(trng_gen.c:108)
Prototype:
TrngTriangSrfStruct *TrngBzrTriSrfNew(int Length, CagdPointType PType)
Description:
Allocates the memory required for a new Bezier triangular surface.
Parameters:
| Length: | Number of control points along the edge of the triangle.
|
|---|
| PType: | Type of control points (E2, P3, etc.).
|
|---|
Returned Value:
| TrngTriangSrfStruct *: An uninitialized freeform triangular surface
Bezier.
|
|---|
Keywords:
triangular surfaces
allocation
(trng_gen.c:452)
Prototype:
TrngTriangSrfStruct *TrngCnvrtBzr2BspTriSrf(const TrngTriangSrfStruct *TriSrf)
Description:
Converts a Bezier triangular surface into a Bspline triangular surface by
adding open end uniform knot vector to it.
Parameters:
| TriSrf: | A Bezier triangular surface to convert to a Bspline TriSrf.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: A Bspline triangular surface representing the
same geometry as the given Bezier TriSrf.
|
|---|
Keywords:
conversion
triangular surface
(trng_grg.c:31)
Prototype:
TrngTriangSrfStruct *TrngCnvrtGregory2BzrTriSrf(TrngTriangSrfStruct *TriSrf)
Description:
Converts a Gregory triangular surface into a rational Bezier triangular
surface.
Parameters:
| TriSrf: | A Gregory triangular surface to convert to a Bezier TriSrf.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: A Bezier triangular surface representing the
same geometry as the given Gregory TriSrf.
|
|---|
Keywords:
conversion
triangular surface
(trngcoer.c:55)
Prototype:
TrngTriangSrfStruct *TrngCoerceTriSrfTo(const TrngTriangSrfStruct *CTriSrf,
CagdPointType PType)
Description:
Coerces a triangular surface to point type PType.
Parameters:
| CTriSrf: | To coerce to a new point type PType.
|
|---|
| PType: | New point type for TriSrf.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: A new trngariate with PType as its point type.
|
|---|
Keywords:
coercion
(trngcoer.c:27)
Prototype:
TrngTriangSrfStruct *TrngCoerceTriSrfsTo(const TrngTriangSrfStruct *TriSrf,
CagdPointType PType)
Description:
Coerces a list of triangular surfaces to point type PType.
Parameters:
| TriSrf: | To coerce to a new point type PType.
|
|---|
| PType: | New point type for TriSrf.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: New triangular surfaces with PType as their
point type.
|
|---|
Keywords:
coercion
(trng_iso.c:306)
Prototype:
CagdCrvStruct *TrngCrvFromTriSrf(const TrngTriangSrfStruct *TriSrf,
CagdRType t,
TrngTriSrfDirType Dir)
Description:
Extracts an isoparametric curve from the triangular surface TriSrf in
direction Dir at the parameter value of t.
Parameters:
| TriSrf: | To extract an isoparametric curve from.
|
|---|
| t: | Parameter value of extracted isoparametric curve.
|
|---|
| Dir: | Direction of extracted isocurve. Either U or V or W.
|
|---|
Returned Value:
| CagdCrvStruct *: An isoparametric curve of TriSrf. This curve inherit
the order and continuity of TriSrf in direction Dir.
|
|---|
See Also:
BzrSrfCrvFromSrf
BspSrfCrvFromSrf
CagdCrvFromMesh
BzrSrfCrvFromMesh
BspSrfCrvFromMesh
CagdCrvFromSrf
TrngTriBzrSrf2Curves
Keywords:
isoparametric curves
curve from surface
(trng_dbg.c:26)
Prototype:
void TrngDbg(void *Obj)
Description:
Prints triangular surface to stderr. Should be linked to programs for
debugging purposes, so triangular surfaces may be inspected from a
debugger.
Parameters:
| Obj: | A triangular surface - to be printed to stderr.
|
|---|
Returned Value:
Keywords:
debugging
(trng_err.c:45)
Prototype:
const char *TrngDescribeError(TrngFatalErrorType ErrorNum)
Description:
Returns a string describing a the given error. Errors can be raised by
any member of this trng library as well as other users. Raised error will
cause an invokation of TrngFatalError function which decides how to handle
this error. TrngFatalError can for example, invoke this routine with the
error type, print the appropriate message and quit the program.
Parameters:
| ErrorNum: | Type of the error that was raised.
|
|---|
Returned Value:
| const char *: A string describing the error type.
|
|---|
Keywords:
error handling
(trng_ftl.c:56)
Prototype:
void TrngFatalError(TrngFatalErrorType ErrID)
Description:
Trap Trng_lib errors right here. Provides a default error handler for the
trng library. Gets an error description using TrngDescribeError, prints it
and exit the program using exit.
Parameters:
| ErrID: | Error type that was raised.
|
|---|
Returned Value:
Keywords:
error handling
(trng_grg.c:71)
Prototype:
void TrngGregory2Bezier4(CagdRType **Qt, CagdRType **Pt)
Description:
Converts a Gregory triangular surface into a Bezier triangular surface
Parameters:
| Qt: | The resulting Bezier control points
|
|---|
| Pt: | The Gregory control points
|
|---|
Returned Value:
Keywords:
conversion
triangular surface
(trng_grg.c:234)
Prototype:
void TrngGregory2Bezier5(CagdRType **Qt, CagdRType **Pt)
Description:
Converts a Gregory triangular surface into a Bezier triangular surface
Parameters:
| Qt: | The resulting Bezier control points
|
|---|
| Pt: | The Gregory control points
|
|---|
Returned Value:
Keywords:
conversion
triangular surface
(trng_grg.c:422)
Prototype:
void TrngGregory2Bezier6(CagdRType **Qt, CagdRType **Pt)
Description:
Converts a Gregory triangular surface into a Bezier triangular surface
Parameters:
| Qt: | The resulting Bezier control points
|
|---|
| Pt: | The Gregory control points
|
|---|
Returned Value:
Keywords:
conversion
triangular surface
(trng_gen.c:135)
Prototype:
TrngTriangSrfStruct *TrngGrgTriSrfNew(int Length, CagdPointType PType)
Description:
Allocates the memory required for a new Gregory triangular surface.
Parameters:
| Length: | Number of control points along the edge of the triangle.
|
|---|
| PType: | Type of control points (E2, P3, etc.).
|
|---|
Returned Value:
| TrngTriangSrfStruct *: An uninitialized freeform triangular surface
Gregory.
|
|---|
Keywords:
triangular surfaces
allocation
(trng_aux.c:82)
Prototype:
CagdBType TrngParamInDomain(TrngTriangSrfStruct *TriSrf,
CagdRType t,
TrngTriSrfDirType Dir)
Description:
Given a triangular surface and a domain - validate it.
Parameters:
| TriSrf: | To make sure t is in its Dir domain.
|
|---|
| t: | Parameter value to verify.
|
|---|
| Dir: | Direction. Either U or V or W.
|
|---|
Returned Value:
| CagdBType: TRUE if in domain, FALSE otherwise.
|
|---|
Keywords:
triangular surfaces
(trng_aux.c:118)
Prototype:
CagdBType TrngParamsInDomain(const TrngTriangSrfStruct *TriSrf,
CagdRType u,
CagdRType v,
CagdRType w)
Description:
Given a triangular surface and a domain - validate it.
Parameters:
| TriSrf: | To make sure (u, v, w) is in its domain.
|
|---|
| u, v, w: | To verify if it is in TriSrf's parametric domain.
|
|---|
Returned Value:
| CagdBType: TRUE if in domain, FALSE otherwise.
|
|---|
Keywords:
triangular surfaces
(trng_ftl.c:28)
Prototype:
TrngSetErrorFuncType TrngSetFatalErrorFunc(TrngSetErrorFuncType ErrorFunc)
Description:
Sets the error function to be used by Trng_lib.
Parameters:
| ErrorFunc: | New error function to use.
|
|---|
Returned Value:
| TrngSetErrorFuncType: Old error function reference.
|
|---|
Keywords:
error handling
(trng_sub.c:33)
Prototype:
TrngTriangSrfStruct *TrngSrfSubdivAtParam(TrngTriangSrfStruct *TrngSrf,
CagdRType t,
CagdSrfDirType Dir)
Description:
Given a triangulare surface - subdivides it into two three sub-surfaces at
given parametric values u, v, w.
Returns pointer to a list of two trngmed surfaces, at most. It can very
well may happen that the subdivided surface is completely trimmed out and
hence nothing is returned for it.
Parameters:
| TrngSrf: | To subdivide at the prescibed parameter value t.
|
|---|
| t: | The parameter to subdivide the curve Crv at.
|
|---|
| Dir: | Direction of subdivision. Either U or V.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: The subdivided surfaces. Usually two, but can
have only one, if other is totally trimmed away.
|
|---|
Keywords:
subdivision
(trng_iso.c:175)
Prototype:
CagdCrvStruct *TrngTriBzrSrf2Curves(const TrngTriangSrfStruct *TriSrf,
int NumOfIsocurves[3],
IrtRType Val)
Description:
Routine to extract from a triangular surface NumOfIsoline isocurve list
in each param. direction.
Iso parametric curves are sampled equally spaced in parametric space.
If, however, oout of the three NumOfIsocurves values, two are zero and
one NumOfIsocurves values equals to one, extarct one isocurve at that
direction, at value Val.
NULL is returned in case of an error, otherwise list of CagdCrvStruct.
Consider isoparametric curve of Bezier triangular surface at fixed u = u0:
__
\ n! i j n-i-j
/ ------------------- u0 v (1 - u0 - v) b =
-- i! j! (n - i - j)! ijk
__ __
\ n! i \ (n - i)! j n-i-j
/ ------- u0 / ---------------- v (1 - u0 - v) b =
-- i!(n-i)! -- j! (n - i - j)! ijk
__ __
\ n! i n-i \ (n - i)! v j v n-i-j
/ ------- u0 (1-u0) / --------------- (----) (1 - ----) b
-- i!(n-i)! -- j! (n - i - j)! 1-u0 1-u0 ijk
Hence, the isoparametric curve of u = u0 is a weighted sum of a sequence
of Bezier curves of degree 1 to n-1, each defined over a row of the
triangular mesh, over the domain of v = [0, 1-u0].
Parameters:
| TriSrf: | To extract isoparametric curves from.
|
|---|
| NumOfIsocurves: | In each (U or V or W) direction.
|
|---|
| Val: | If only one isocurve to extract - do so at value Val.
|
|---|
Returned Value:
| CagdCrvStruct *: List of extracted isoparametric curves. These curves
inherit the order and continuity of the original Srf.
NULL is returned in case of an error.
|
|---|
See Also:
TrngTriSrf2Curves
TrngCrvFromTriSrf
Keywords:
curves
isoparametric curves
(trngmesh.c:25)
Prototype:
CagdPolylineStruct *TrngTriSrf2CtrlMesh(const TrngTriangSrfStruct *TriSrf)
Description:
Computes a polyline representation to the control mesh of the triangular
surface in E3.
Parameters:
| TriSrf: | To compute a polyline representation for its control mesh.
|
|---|
Returned Value:
| CagdPolylineStruct *: A polyline representing TriSrf's control mesh.
|
|---|
Keywords:
bbox
bounding box
(trng_iso.c:354)
Prototype:
CagdCrvStruct *TrngTriSrf2Curves(const TrngTriangSrfStruct *TriSrf,
int NumOfIsocurves[3])
Description:
Routine to extract from a triangular surface NumOfIsoline isocurve list
in each param. direction.
Iso parametric curves are sampled equally spaced in parametric space.
NULL is returned in case of an error, otherwise list of CagdCrvStruct.
Parameters:
| TriSrf: | To extract isoparametric curves from.
|
|---|
| NumOfIsocurves: | In each (U or V or W) direction.
|
|---|
Returned Value:
| CagdCrvStruct *: List of extracted isoparametric curves. These curves
inherit the order and continuity of the original Srf.
NULL is returned in case of an error.
|
|---|
See Also:
TrngTriBzrSrf2Curves
TrngCrvFromTriSrf
Keywords:
curves
isoparametric curves
(trng2ply.c:41)
Prototype:
IPPolygonStruct *TrngTriSrf2Polygons(const TrngTriangSrfStruct *TriSrf,
int FineNess,
CagdBType ComputeNormals,
CagdBType ComputeUV)
Description:
Routine to convert a single triangular surface to a set of triangles
approximating it.
FineNess is a fineness control on result and the larger it is more
triangles may result.
A value of 10 is a good starting value.
NULL is returned in case of an error, otherwise list of IPPolygonStruct.
Parameters:
| TriSrf: | To approximate into triangles.
|
|---|
| FineNess: | Control on accuracy, the higher the finer.
|
|---|
| ComputeNormals: | If TRUE, normal information is also computed.
|
|---|
| ComputeUV: | If TRUE, UV values are stored and returned as well.
|
|---|
Returned Value:
| IPPolygonStruct *: A list of polygons with optional normal and/or
UV parametric information.
NULL is returned in case of an error.
|
|---|
Keywords:
polygonization
surface approximation
(trng_iso.c:44)
Prototype:
CagdPolylineStruct *TrngTriSrf2Polylines(const TrngTriangSrfStruct *TriSrf,
int NumOfIsocurves[3],
CagdRType TolSamples,
SymbCrvApproxMethodType Method)
Description:
Routine to convert a single triangular surface to NumOfIsolines
polylines in each parametric direction with SamplesPerCurve in each
isoparametric curve in E3.
Polyline are always E3 of CagdPolylineStruct type.
Iso parametric curves are sampled equally spaced in parametric space.
NULL is returned in case of an error, otherwise list of
CagdPolylineStruct. Attempt is made to extract isolines along C1
discontinuities first.
Parameters:
| TriSrf: | To extract isoparametric curves from.
|
|---|
| NumOfIsocurves: | n each (U or V or W) direction.
|
|---|
| TolSamples: | Tolerance of approximation error (Method = 2) or
Number of samples to compute on polyline (Method = 0, 1).
|
|---|
| Method: | 0 - TolSamples are set uniformly in parametric space,
1 - TolSamples are set optimally, considering the
isocurve's curvature.
2 - TolSamples sets the maximum error allowed between the
piecewise linear approximation and original curve.
|
|---|
Returned Value:
| CagdPolylineStruct *: List of polylines representing a piecewise linear
approximation of the extracted isoparamteric
curves or NULL is case of an error.
|
|---|
Keywords:
isoparametric curves
(trng_aux.c:144)
Prototype:
CagdBBoxStruct *TrngTriSrfBBox(const TrngTriangSrfStruct *TriSrf,
CagdBBoxStruct *BBox)
Description:
Computes a bounding box for a triangular surfaces.
Parameters:
| TriSrf: | To compute a bounding box for.
|
|---|
| BBox: | Where bounding information is to be saved.
|
|---|
Returned Value:
Keywords:
bbox
bounding box
(trng_gen.c:160)
Prototype:
TrngTriangSrfStruct *TrngTriSrfCopy(const TrngTriangSrfStruct *TriSrf)
Description:
Allocates and duplicates all slots of a triangular surface structure.
Parameters:
| TriSrf: | triangular surface to duplicate
|
|---|
Returned Value:
| TrngTriangSrfStruct *: Duplicated triangular surface.
|
|---|
Keywords:
triangular surfaces
(trng_gen.c:208)
Prototype:
TrngTriangSrfStruct *TrngTriSrfCopyList(const TrngTriangSrfStruct *TriSrfList)
Description:
Duplicates a list of triangular surface structures.
Parameters:
| TriSrfList: | List of triangular surfaces to duplicate.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: Duplicated list of triangular surfaces.
|
|---|
Keywords:
triangular surfaces
(trng_der.c:31)
Prototype:
TrngTriangSrfStruct *TrngTriSrfDerive(const TrngTriangSrfStruct *TriSrf,
TrngTriSrfDirType Dir)
Description:
Given a triangular surface, computes its partial derivative triangular
surface in direction Dir.
Parameters:
| TriSrf: | Triangular Surface to differentiate.
|
|---|
| Dir: | Direction of differentiation. Either U or V or W.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: Differentiated triangular surface in direction
Dir.
|
|---|
Keywords:
triangular surfaces.
(trng_aux.c:34)
Prototype:
void TrngTriSrfDomain(const TrngTriangSrfStruct *TriSrf,
CagdRType *UMin,
CagdRType *UMax,
CagdRType *VMin,
CagdRType *VMax,
CagdRType *WMin,
CagdRType *WMax)
Description:
Given a triangular surface, returns its parametric domain.
Parameters:
| TriSrf: | Triangular surface function to consider.
|
|---|
| UMin, UMax: | U Domain of TriSrf will be placed herein.
|
|---|
| VMin, VMax: | V Domain of TriSrf will be placed herein.
|
|---|
| WMin, WMax: | W Domain of TriSrf will be placed herein.
|
|---|
Returned Value:
Keywords:
triangular surfaces
(trngeval.c:161)
Prototype:
CagdRType *TrngTriSrfEval2ToData(const TrngTriangSrfStruct *TriSrf,
CagdRType u,
CagdRType v,
CagdRType *Pt)
Description:
Evaluates the given triangular surface at a given point. Same as function
TrngTriSrfEval with w computed using 'w = 1 - u - v' for Bezier triangular
surfaces.
Parameters:
| TriSrf: | To evaluate at given (u, v) parametric location.
|
|---|
| u, v: | Parametric location to evaluate TriSrf at.
|
|---|
| Pt: | A vector holding all the coefficients of all components
of the triangualr surface's point type. If for example
point type is P2, the W, X, and Y will be saved in the
first three locations of the returned vector. The first
location (index 0) of the returned vector is reserved for
the rational coefficient W and XYZ always starts at second
location of the returned vector (index 1).
|
|---|
Returned Value:
| CagdRType *: A vector holding all the coefficients of all components
of the triangualr surface's point type. If for example
point type is P2, the W, X, and Y will be saved in the
first three locations of the returned vector. The first
location (index 0) of the returned vector is reserved for
the rational coefficient W and XYZ always starts at second
location of the returned vector (index 1).
|
|---|
Keywords:
evaluation
triangular surfaces
(trngeval.c:91)
Prototype:
CagdRType *TrngTriSrfEvalToData(const TrngTriangSrfStruct *TriSrf,
CagdRType u,
CagdRType v,
CagdRType w,
CagdRType *Pt)
Description:
Evaluates the given triangular surface at a given point.
Parameters:
| TriSrf: | To evaluate at given (u, v, w) parametric location.
|
|---|
| u, v, w: | Parametric location to evaluate TriSrf at.
|
|---|
| Pt: | A vector holding all the coefficients of all components
of the triangualr surface's point type. If for example
point type is P2, the W, X, and Y will be saved in the
first three locations of the returned vector. The first
location (index 0) of the returned vector is reserved for
the rational coefficient W and XYZ always starts at second
location of the returned vector (index 1).
|
|---|
Returned Value:
| CagdRType *: A vector holding all the coefficients of all components
of the triangualr surface's point type. If for example
point type is P2, the W, X, and Y will be saved in the
first three locations of the returned vector. The first
location (index 0) of the returned vector is reserved for
the rational coefficient W and XYZ always starts at second
location of the returned vector (index 1).
|
|---|
Keywords:
evaluation
triangular surfaces
(trng_gen.c:237)
Prototype:
void TrngTriSrfFree(TrngTriangSrfStruct *TriSrf)
Description:
Deallocates and frees all slots of a triangular surface structure.
Parameters:
| TriSrf: | triangular surface to free.
|
|---|
Returned Value:
Keywords:
triangular surfaces
(trng_gen.c:269)
Prototype:
void TrngTriSrfFreeList(TrngTriangSrfStruct *TriSrfList)
Description:
Deallocates and frees a list of triangular surface structures.
Parameters:
| TriSrfList: | triangular surface list to free.
|
|---|
Returned Value:
Keywords:
triangular surfaces
(trng_aux.c:168)
Prototype:
CagdBBoxStruct * TrngTriSrfListBBox(const TrngTriangSrfStruct *TriSrfs,
CagdBBoxStruct *BBox)
Description:
Computes a bounding box for a list of triangular surfaces.
Parameters:
| TriSrfs: | To compute a bounding box for.
|
|---|
| BBox: | Where bounding information is to be saved.
|
|---|
Returned Value:
Keywords:
bbox
bounding box
(trng_gen.c:382)
Prototype:
TrngTriangSrfStruct *TrngTriSrfListMatTransform(const TrngTriangSrfStruct
*TriSrfs,
CagdMType Mat)
Description:
Transforms the given list of triangular surfaces as specified by
homogeneous matrix Mat.
Parameters:
| TriSrfs: | To be transformed.
|
|---|
| Mat: | Defining the transformation.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: Transformed triangular surface.
|
|---|
See Also:
TrngTriSrfMatTransform
CagdSrfListMatTransform
Keywords:
scaling
rotation
translation
transforms
(trng_gen.c:333)
Prototype:
TrngTriangSrfStruct *TrngTriSrfMatTransform(const TrngTriangSrfStruct *TriSrf,
CagdMType Mat)
Description:
Transforms the given triangular surface as specified by homogeneous
matrix Mat.
Parameters:
| TriSrf: | Multi-variate to transform.
|
|---|
| Mat: | Homogeneous transformation to apply to TV.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: Transformed triangular surface.
|
|---|
Keywords:
triangular surfaces.
(trng_gen.c:413)
Prototype:
void TrngTriSrfMatTransform2(TrngTriangSrfStruct *TriSrf, CagdMType Mat)
Description:
Transforms, in place, the given triangular surface as specified by
homogeneous matrix Mat.
Parameters:
| TriSrf: | Triangular surface to transform.
|
|---|
| Mat: | Homogeneous transformation to apply to TriSrf.
|
|---|
Returned Value:
See Also:
TrngTriSrfMatTransform
TrngTriSrfListMatTransform
Keywords:
triangular surfaces
(trng_gen.c:31)
Prototype:
TrngTriangSrfStruct *TrngTriSrfNew(TrngGeomType GType,
CagdPointType PType,
int Length)
Description:
Allocates the memory required for a new triangular surface.
Parameters:
| GType: | Type of geometry the curve should be - Bspline, Bezier etc.
|
|---|
| PType: | Type of control points (E2, P3, etc.).
|
|---|
| Length: | Number of control points along the edge of the triangle.
|
|---|
Returned Value:
| TrngTriangSrfStruct *: An uninitialized freeform triangular surface.
|
|---|
Keywords:
triangular surfaces
allocation
(trngeval.c:197)
Prototype:
CagdVecStruct *TrngTriSrfNrmlToData(const TrngTriangSrfStruct *TriSrf,
CagdRType u,
CagdRType v,
CagdVecStruct *Normal)
Description:
Evaluates the normal of the given triangular surface at a given point.
Parameters:
| TriSrf: | To evaluate at given (u, v, w) parametric location.
|
|---|
| u, v: | Parametric location to evaluate normal of TriSrf at.
|
|---|
| Normal: | A pointer to a vector holding the unit normal
information.
|
|---|
Returned Value:
| CagdVecStruct *: A pointer to a vector holding the unit normal
information.
|
|---|
See Also:
CagdSrfNormal
BzrSrfNormal
BspSrfNormal
SymbSrfNormalSrf
Keywords:
evaluation
triangular surfaces
(trng_gen.c:298)
Prototype:
void TrngTriSrfTransform(TrngTriangSrfStruct *TriSrf,
CagdRType *Translate,
CagdRType Scale)
Description:
Linearly transforms, in place, given TriSrf as specified by Translate and
Scale.
Parameters:
| TriSrf: | Triangular surface to transform.
|
|---|
| Translate: | Translation factor.
|
|---|
| Scale: | Scaling factor.
|
|---|
Returned Value:
Keywords:
triangular surfaces
(trng_gen.c:489)
Prototype:
CagdBType TrngTriSrfsSame(const TrngTriangSrfStruct *Srf1,
const TrngTriangSrfStruct *Srf2,
CagdRType Eps)
Description:
Compare the two surfaces for similarity.
Parameters:
| Srf1, Srf2: | The two surfaces to compare.
|
|---|
| Eps: | Tolerance of equality.
|
|---|
Returned Value:
| CagdBType: TRUE if surfaces are the same, FALSE otehrwise.
|
|---|
See Also:
CagdSrfsSame
Keywords: