(vmdl_bool.c:3563)
Prototype:
void VMdlAddTrimSrfToVMdl(VMdlVModelStruct *VMdl,
const TrimSrfStruct *TSrf,
CagdRType Tol)
Description:
Appends the given trim-surface to the given V-model, inplace. The input
trim-surface is assumed to be correctly oriented. The Euclidean trim-
curves of the input trim-surfaces are assumed to be present. The input
V-model is assumed to have a single volume element.
Parameters:
| VMdl: | Input V-model to append trim-surface to, in place.
|
|---|
| TSrf: | Input trim-surface to append. Assumed to also hold Euclidean
trimming curves.
|
|---|
| Tol: | The tolerance for matching points and curves.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:126)
Prototype:
VMdlInterTrimCurveSegStruct *VMdlAllocInterTrimCurveSeg()
Description:
Allocated new V-curve.
Parameters:
Returned Value:
| VMdlInterTrimCurveSegStruct *: New empty V-curve.
|
|---|
Keywords:
(vmdl_gen.c:226)
Prototype:
VMdlInterTrimCurveSegLoopInSrfStruct *VMdlAllocInterTrimCurveSegLoopInSrf()
Description:
Allocated new trimming curve in a half-V-surface trimming loop.
Parameters:
Returned Value:
| VMdlInterTrimCurveSegLoopInSrfStruct *: New empty half-V-surface loop
trimming curve.
|
|---|
Keywords:
(vmdl_gen.c:168)
Prototype:
VMdlInterTrimCurveSegRefStruct *VMdlAllocInterTrimCurveSegRef()
Description:
Allocated new reference to a V-curve.
Parameters:
Returned Value:
| VMdlInterTrimCurveSegRefStruct *: New empty V-curve reference.
|
|---|
Keywords:
(vmdl_gen.c:245)
Prototype:
VMdlInterTrimPointRefStruct *VMdlAllocInterTrimPointRef()
Description:
Allocated new reference to a V-point.
Parameters:
Returned Value:
| VMdlInterTrimPointRefStruct *: New empty V-point reference.
|
|---|
Keywords:
(vmdl_gen.c:102)
Prototype:
VMdlInterTrimSrfStruct *VMdlAllocInterTrimSrf()
Description:
Allocated new half-V-surface.
Parameters:
Returned Value:
| VMdlInterTrimSrfStruct *: New empty half-V-surface.
|
|---|
Keywords:
(vmdl_gen.c:206)
Prototype:
VMdlInterTrimSrfRefStruct *VMdlAllocInterTrimSrfRef()
Description:
Allocated new reference to a half-V-surface.
Parameters:
Returned Value:
| VMdlInterTrimSrfRefStruct *: New empty half-V-surface reference.
|
|---|
Keywords:
(vmdl_gen.c:187)
Prototype:
VMdlInterTrivTVRefStruct *VMdlAllocInterTrivTVRef()
Description:
Allocated new reference to a trivariate.
Parameters:
Returned Value:
| VMdlInterTrivTVRefStruct *: New empty trivariate reference.
|
|---|
Keywords:
(vmdl_gen.c:81)
Prototype:
VMdlInterTrimPointStruct *VMdlAllocTrimInterPoint()
Description:
Allocated new V-point.
Parameters:
Returned Value:
| VMdlInterTrimPointStruct *: New empty V-point.
|
|---|
Keywords:
(vmdl_gen.c:58)
Prototype:
VMdlVolumeElementStruct *VMdlAllocTrimVolumeElem()
Description:
Allocated new V-cell.
Parameters:
Returned Value:
| VMdlVolumeElementStruct *: New empty V-cell.
|
|---|
Keywords:
(vmdl_gen.c:149)
Prototype:
VMdlVolumeElementRefStruct *VMdlAllocTrimVolumeElemRef()
Description:
Allocated new reference to a V-cell.
Parameters:
Returned Value:
| VMdlVolumeElementRefStruct *: New empty V-cell reference.
|
|---|
Keywords:
(vmdl_gen.c:33)
Prototype:
VMdlVModelStruct *VMdlAllocVModel()
Description:
Allocated new empty V-model.
Parameters:
Returned Value:
| VMdlVModelStruct *: New empty V-model.
|
|---|
Keywords:
(vmdl_aux.c:707)
Prototype:
TrimSrfStruct *VMdlApplyVSrfTrimmedLoopsOnSrf(
const VMdlInterTrimSrfStruct *VSrf,
const CagdSrfStruct *Srf)
Description:
Creates trimmed surface from a given surface (Srf) using the trimming
curves of a given V-surface (VSrf). If Srf is the surface of VSrf then
this function will convert from a V-surface to a trimmed surface.
Parameters:
| VSrf: | The V-surface to convert.
|
|---|
| Srf: | urface to apply to th trimming curves of VSrf on.
|
|---|
Returned Value:
| TrimSrfStruct *: Trimmed surface structure converted from VSrf.
|
|---|
See Also:
VMdlCnvrtVSrf2TrimmedSrf
Keywords:
(vmdl_aux.c:671)
Prototype:
TrimSrfStruct *VMdlApplyVSrfTrimmedLoopsOnSrfEps(
const VMdlInterTrimSrfStruct *VSrf,
const CagdSrfStruct *Srf,
CagdRType Tol)
Description:
Creates trimmed surface from a given surface (Srf) using the trimming
curves of a given V-surface (VSrf). If Srf is the surface of VSrf then
this function will convert from a V-surface to a trimmed surface.
Parameters:
| VSrf: | The V-surface to convert.
|
|---|
| Srf: | Surface to apply to the trimming curves of VSrf on.
|
|---|
| Tol: | Tolerance for the conversion.
|
|---|
Returned Value:
| TrimSrfStruct *: Trimmed surface structure converted from VSrf.
|
|---|
See Also:
VMdlCnvrtVSrf2TrimmedSrf
Keywords:
(vmdl_blnd_field.c:452)
Prototype:
void VMdlBlendBoolTrivariates(VMdlBlendPrepStruct *BlendCoordPrep,
const IrtRType Pt[3],
CagdBType UseRayCasting)
Description:
Given the VMdlBlendPrepStruct of a V-model and a point, fills the
VMdlBlendPointStruct in the VMdlBlendPrepStruct with the data relative
to point Pt. Ray-tracing can be used to check the inclusion of the point
in the V-model.
Parameters:
| BlendCoordPrep: | The VMdlBlendPrepStruct containing the topology of the
V-model.
|
|---|
| Pt: | Point of which we need to compute the barycentric
coordinates.
|
|---|
| UseRayCasting: | TRUE to use ray casting in the inclusion test.
|
|---|
Returned Value:
See Also:
VMdlBlendPrepStruct
VMdlBlendPointStruct
VMdlBlendBoolTrivariatesVElem
Keywords:
(vmdl_blnd_field.c:1726)
Prototype:
void VMdlBlendBoolTrivariatesVElem(VMdlBlendPrepStruct *BlendCoordPrep,
IrtRType Pt[3],
VMdlBlendVolElemStruct *VElem)
Description:
Given the VMdlBlendPrepStruct of a V-model, a point, and the V-cell
holding the point, fills VMdlBlendPointStruct in the VMdlBlendPrepStruct
with the data relative to point Pt. The method assumes the V-cell to be
holding the point.
Parameters:
| BlendCoordPrep: | he VMdlBlendPrepStruct containing the topology of the
V-model.
|
|---|
| Pt: | Point of which we need to compute the barycentric
coordinates.
|
|---|
| VElem: | Pointer to the V-cell holding Pt.
|
|---|
Returned Value:
See Also:
VMdlBlendPrepStruct
VMdlBlendPointStruct
VMdlBlendBoolTrivariates
Keywords:
(vmdl_blnd_field.c:353)
Prototype:
void VMdlBlendComputeDistCoordinates(VMdlBlendPrepStruct *BlendCoordPrep,
const CagdRType Pt[3])
Description:
Given a VMdlBlendPrepStruct and a point, computes its
coordinates with respect to the boundary surfaces of the union
intersection and stores them in the corresponding structure.
Parameters:
| BlendCoordPrep: | VMdlBlendPrepStruct of the V-model.
|
|---|
| Pt: | Point of which we need to compute the barycentric
coordinates.
|
|---|
Returned Value:
See Also:
VMdlBlendPrepStruct
ENDWEIGHTS:
distance-based
Keywords:
(vmdl_blnd_field.c:139)
Prototype:
VMdlBlendPrepStruct *VMdlBlendCoordPrep(const VMdlParamsStruct *Params,
VMdlVModelStruct *VMdl)
Description:
Given a V-model, creates an auxiliary structure for the computation of
the blending.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | The V-model for which the topology is needed.
|
|---|
Returned Value:
| VMdlBlendPrepStruct *: VMdlBlendPrepStruct for the computation of the
blend.
|
|---|
See Also:
VMdlBlendCoordPrep
VMdlBlendPrepStruct
Keywords:
(vmdl_blnd_field.c:1206)
Prototype:
void VMdlBlendCoordPrepFree(VMdlBlendPrepStruct *Item)
Description:
Given a VMdlBlendPrepStruct, it frees its memory.
Parameters:
| Item: | pointer to the structure that needs to be freed.
|
|---|
Returned Value:
See Also:
VMdlBlendPrepStruct
Keywords:
(vmdl_blnd_field.c:2821)
Prototype:
CagdPointType VMdlBlendDflt1DPropertyFunction(VMdlBlendPrepStruct
*BlendCoordPrep,
const int ObjIndex,
void *Output)
Description:
Given a VMdlBlendPrepStruct, an ObjIndex and a pointer to an object
returns the scalar value stored in the corresponding
trivariate.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities regarding
the V-model.
|
|---|
| ObjIndex: | Index of the relevant V-primitive.
|
|---|
| Output: | Pointer to the output.
|
|---|
Returned Value:
| CagdPointType: Dimension of the property function.
|
|---|
See Also:
distance-based coordinates
attributes
VMdlBlendPrepStruct
VMdlBlendCoordinatesFuncType
Keywords:
barycentric weights
blending
Boolean operations
(vmdl_blnd_field.c:2689)
Prototype:
CagdPointType VMdlBlendDflt3DPropertyFunction(VMdlBlendPrepStruct
*BlendCoordPrep,
const int ObjIndex,
void *Output)
Description:
Given a VMdlBlendPrepStruct, an ObjIndex and a pointer to an object
returns the (three dimensional) value stored in the corresponding
trivariate.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities regarding
the V-model.
|
|---|
| ObjIndex: | Index of the relevant V-primitive.
|
|---|
| Output: | Pointer to the output.
|
|---|
Returned Value:
| CagdPointType: Dimension of the property function.
|
|---|
See Also:
distance-based coordinates
attributes
VMdlBlendPrepStruct
VMdlBlendCoordinatesFuncType
Keywords:
barycentric weights
blending
Boolean operations
(vmdl_blnd_field.c:2558)
Prototype:
CagdPointType VMdlBlendDfltRGBPropertyFunction(VMdlBlendPrepStruct
*BlendCoordPrep,
const int ObjIndex,
void *Output)
Description:
Given a VMdlBlendPrepStruct, an ObjIndex and a pointer to an object
returns the RGB of the corresponding V-primitive.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities regarding
the V-model.
|
|---|
| ObjIndex: | Index of the relevant V-primitive.
|
|---|
| Output: | Pointer to the output.
|
|---|
Returned Value:
| CagdPointType: Dimension of the property function.
|
|---|
See Also:
distance-based coordinates
attributes
VMdlBlendPrepStruct
VMdlBlendCoordinatesFuncType
Keywords:
barycentric weights
blending
Boolean operations
(vmdl_blnd_field.c:2277)
Prototype:
void VMdlBlendFilletComputeCoordinates(VMdlBlendPrepStruct *BlendCoordPrep,
const CagdRType *Pt)
Description:
Given a VMdlBlendPrepStruct and a point, computes its Shepard-like
coordinates with respect to the boundary surfaces of the fillet and
stores them in the corresponding structure.
Parameters:
| BlendCoordPrep: | VMdlBlendPrepStruct of the V-model, contains
information of the fillet.
|
|---|
| Pt: | Point of which we need to compute the barycentric
coordinates.
|
|---|
Returned Value:
See Also:
VMdlBlendPrepStruct
Shepard
ENDWEIGHTS:
Shepard
Keywords:
(vmdl_blnd_field.c:2885)
Prototype:
VMdlBlendPrepStruct *VMdlBlendFilletCoordPrep(const VMdlParamsStruct *Params,
VMdlVModelStruct *VMdl,
TrivTVStruct *FilletTV,
CagdSrfStruct *BndrSrf1,
CagdSrfStruct *BndrSrf2)
Description:
Given a V-model, a trivariate and two surfaces, it creates a
VMdlBlendPrepStruct for the computation of the blending including a
fillet.
Parameters:
| Params: | The common parameters to VModel operations. If
NULL, default values are used.
|
|---|
| VMdl: | The V-model for which the topology is needed.
|
|---|
| FilletTV: | The fillet trivariate.
|
|---|
| BndrSrf1, BndrSrf2: | he (internal) boundary surfaces of the fillet.
|
|---|
Returned Value:
| VMdlBlendPrepStruct *: VMdlBlendPrepStruct for the computation of the
blend.
|
|---|
See Also:
VMdlBlendCoordPrep
VMdlBlendPrepStruct
VMdlBlendFilletStruct
Keywords:
(vmdl_blnd_field.c:2751)
Prototype:
CagdPointType VMdlBlendFilletDflt1DPropertyFunction(VMdlBlendPrepStruct
*BlendCoordPrep,
const int ObjIndex,
void *Output)
Description:
Given a VMdlBlendPrepStruct, an ObjIndex and a pointer to an object
returns the scalar value stored in the boundary surfaces of a fillet.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities regarding
the V-model.
|
|---|
| ObjIndex: | Index of the relevant V-primitive.
|
|---|
| Output: | Pointer to the output.
|
|---|
Returned Value:
| CagdPointType: Dimension of the property function.
|
|---|
See Also:
Shepard coordinates
attributes
VMdlBlendPrepStruct
VMdlBlendCoordinatesFuncType
Keywords:
barycentric weights
blending
Boolean operations
(vmdl_blnd_field.c:2618)
Prototype:
CagdPointType VMdlBlendFilletDflt3DPropertyFunction(VMdlBlendPrepStruct
*BlendCoordPrep,
const int ObjIndex,
void *Output)
Description:
Given a VMdlBlendPrepStruct, an ObjIndex and a pointer to an object
returns the (three dimensional) value stored in the boundary surfaces of
a fillet.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities regarding
the V-model.
|
|---|
| ObjIndex: | Index of the relevant V-primitive.
|
|---|
| Output: | Pointer to the output.
|
|---|
Returned Value:
| CagdPointType: Dimension of the property function.
|
|---|
See Also:
Shepard coordinates
attributes
VMdlBlendPrepStruct
VMdlBlendCoordinatesFuncType
Keywords:
barycentric weights
blending
Boolean operations
(vmdl_blnd_field.c:2493)
Prototype:
CagdPointType VMdlBlendFilletDfltRGBPropertyFunction(VMdlBlendPrepStruct
*BlendCoordPrep,
const int ObjIndex,
void *Output)
Description:
Given a VMdlBlendPrepStruct, an ObjIndex and a pointer to an object
returns the RGB of the corresponding V-primitive, taken from the
boundary surfaces of a fillet.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities regarding
the V-model.
|
|---|
| ObjIndex: | Index of the relevant V-primitive.
|
|---|
| Output: | Pointer to the output.
|
|---|
Returned Value:
| CagdPointType: Dimension of the property function.
|
|---|
See Also:
Shepard coordinates
attributes
VMdlBlendPrepStruct
VMdlBlendCoordinatesFuncType
Keywords:
barycentric weights
blending
Boolean operations
(vmdl_blnd_field.c:1234)
Prototype:
void VMdlBlendFilletFree(VMdlBlendFilletStruct *Item)
Description:
Given a VMdlBlendFilletStruct, it frees its memory.
Parameters:
| Item: | pointer to the structure that needs to be freed.
|
|---|
Returned Value:
See Also:
VMdlBlendFilletStruct
Keywords:
(vmdl_blnd_field.c:2373)
Prototype:
void *VMdlBlendFilletPropertiesPerPoint(
VMdlBlendPrepStruct *BlendCoordPrep,
const IrtRType Pt[3],
void *OutputPtr,
VMdlBlendCoordinatesFuncType Coordinates,
VMdlBlendPropertyFuncType PropertyFunction)
Description:
Given a VMdlBlendPrepStruct, a point and two a call-back functions, it
blends a 3 dimensional vector of attributes coordinate-wise. Standard
function for fillet blend, if nothing is specified.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities
regarding the V-model.
|
|---|
| Pt: | Euclidean coordinates of the point for which we
need to compute the blend.
|
|---|
| OutputPtr: | Pointer to the output.
|
|---|
| Coordinates: | Call-back function for the chosen coordinates.
|
|---|
| PropertyFunction: | Specified property function for each V-primitive.
|
|---|
Returned Value:
| void *: Value of the property in the point.
|
|---|
See Also:
Shepard coordinates
attributes
VMdlBlendPrepStruct
VMdlBlendCoordinatesFuncType
Keywords:
barycentric weights
blending
Boolean operations
(vmdl_blnd_field.c:2159)
Prototype:
VMdlSlicerOutputImageStruct *VMdlBlendFilletPropertiesSlice(
const VMdlParamsStruct *VMdlParams,
VMdlBlendPrepStruct *BlendCoordPrep,
const double z,
int Resolution[2],
VMdlBlendCoordinatesFuncType Coordinates,
VMdlBlendPropertyFuncType PropertyFunction,
VMdlBlendRuleFuncType BlendingRule,
unsigned int SizePixelProperty)
Description:
Given a TrivTVStruct containing trivariates arising from filleting of
two surfaces, extrapolates the value of the properties in the filleting
area.
Parameters:
| VMdlParams: | General params of the VMOdel library.
|
|---|
| BlendCoordPrep: | A structure containing the blending properties.
|
|---|
| z: | Z coordinate of the slice of the fillet.
|
|---|
| Resolution: | Size of the output image.
|
|---|
| Coordinates: | Call-back function for the chosen coordinates.
|
|---|
| PropertyFunction: | User specified call-back function to define
the property to be blended.
|
|---|
| BlendingRule: | User specified call-back function to specify
how to blend the specified property.
|
|---|
| SizePixelProperty: | Size of pixel property.
|
|---|
Returned Value:
| VMdlSlicerOutputImageStruct *: Output array containing the property
values for every point in the fillet.
|
|---|
See Also:
VMdlBlendComputeDistCoordinates
Keywords:
(vmdl_blnd_field.c:100)
Prototype:
int VMdlBlendInIntersection(VMdlBlendPrepStruct *BlendCoordPrep,
int *VPrimIndex)
Description:
Given a VMdlBlendPrepStruct and the pointer to an integer, returns an
integer that corresponds to how many trivariates the point belongs.
Parameters:
| BlendCoordPrep: | rep struct of the VMdl.
|
|---|
| VPrimIndex: | If the point belongs to only one VMdl, its index is
saved here.
|
|---|
Returned Value:
| int: 1 if the point belongs to an intersection; 0 if it
belongs to only one trivariate; -1 if it is outside
the V-model.
|
|---|
See Also:
VMdlBlendPrepStruct
Keywords:
(vmdl_blnd_field.c:1270)
Prototype:
void VMdlBlendPointFree(VMdlBlendPointStruct *Item)
Description:
Given a VMdlBlendPointStruct, it frees its memory.
Parameters:
| Item: | pointer to the structure that needs to be freed.
|
|---|
Returned Value:
See Also:
VMdlBlendPointStruct
Keywords:
(vmdl_blnd_field.c:1300)
Prototype:
void VMdlBlendPointListFree(VMdlBlendPointStruct *Item)
Description:
Given a list of VMdlBlendPointStruct, it frees its memory.
Parameters:
| Item: | pointer to the structure list that needs to be freed.
|
|---|
Returned Value:
See Also:
VMdlBlendPointStruct
VMdlBlendPointFree
Keywords:
(vmdl_blnd_field.c:211)
Prototype:
VMdlBlendPointStruct *VMdlBlendPointStructInit(const int SizeTopology,
const int NumTVs)
Description:
Given the number of V-primitives in the V-model and the number of
trivariates, initializes a point structure related to a
BlendCoordPrep.
Parameters:
| SizeTopology: | Size of the topology structure of BlendCoordPrep.
|
|---|
| NumTVs: | Number of TVs in BlendCoordPrep.
|
|---|
Returned Value:
| VMdlBlendPointStruct *: The point structure.
|
|---|
See Also:
VMdlBlendCoordPrep
VMdlBlendPrepStruct
Keywords:
(vmdl_blnd_field.c:1400)
Prototype:
void *VMdlBlendPropertiesPerPoint(VMdlBlendPrepStruct *BlendCoordPrep,
const IrtRType Pt[4],
void *OutputPtr,
VMdlBlendCoordinatesFuncType Coordinates,
VMdlBlendPropertyFuncType PropertyFunction)
Description:
Given a VMdlBlendPrepStruct, a point and two call-back functions, it
blends a 3 dimensional vector of attributes coordinate-wise. Standard
function, if nothing is specified.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities
regarding the V-model.
|
|---|
| Pt: | Euclidean coordinates of the point for which we
need to compute the blend.
|
|---|
| OutputPtr: | Pointer to the output.
|
|---|
| Coordinates: | Call-back function for the chosen coordinates.
|
|---|
| PropertyFunction: | Specified property function for each V-primitive.
|
|---|
Returned Value:
| void *: Value of the property in the point.
|
|---|
See Also:
attributes
VMdlBlendPrepStruct
VMdlBlendPropertyFuncType
VMdlBlendCoordinatesFuncType
Keywords:
barycentric weights
blending
Boolean operations
(vmdl_blnd_field.c:965)
Prototype:
VMdlSlicerOutputImageStruct *VMdlBlendPropertiesSlice(
VMdlBlendPrepStruct *BlendCoordPrep,
const double z,
int Resolution[2],
VMdlBlendCoordinatesFuncType Coordinates,
VMdlBlendPropertyFuncType PropertyFunction,
VMdlBlendRuleFuncType BlendingRule,
unsigned int SizePixelProperty)
Description:
Given a VMdlBlendPrepStruct, a 'z' value, an image resolution, and the
pointer to two functions for the computation of the coordinates and the
user specified one, blends the specified attributes according to the
chosen coordinates.
Parameters:
| BlendCoordPrep: | The prep structure for the blend.
|
|---|
| z: | Z coordinate of the slice of the V-model.
|
|---|
| Resolution: | Resolution of the image, will be modified by
VMdlSlicer, to a near-by actual saved size.
|
|---|
| Coordinates: | Call-back function for the chosen blending
functions.
|
|---|
| PropertyFunction: | User specified call-back function to define
the property to be blended.
|
|---|
| BlendingRule: | User specified call-back functions to define how
to blend the property.
|
|---|
| SizePixelProperty: | Size of the property in each pixel.
|
|---|
Returned Value:
| VMdlSlicerOutputImageStruct *: Output array containing the property
values for every point.
|
|---|
See Also:
VMdlBlendPrepStruct
VMdlBlendCoordinatesFuncType
VMdlBlendAttributesPerPointFuncType
VMdlSlicerInitVModel
Keywords:
(vmdl_blnd_field.c:1031)
Prototype:
VMdlSlicerOutputImageStruct *VMdlBlendPropertiesSliceOneBatch(
VMdlBlendPrepStruct *BlendCoordPrep,
int BatchSz,
const double *ZVals,
const int Resolution[2],
VMdlBlendCoordinatesFuncType Coordinates,
VMdlBlendPropertyFuncType PropertyFunction,
VMdlBlendRuleFuncType BlendingRule,
unsigned int SizePixelProperty)
Description:
Given a VMdlBlendPrepStruct, an array of 'z' values, an image
resolution, and the pointer to two functions for the computation of the
coordinates and the user specified one, blends the specified attributes
according to the chosen coordinates for a batch of slices.
The slicing is performed in parallel, if enabled.
Parameters:
| BlendCoordPrep: | The prep structure for the blend.
|
|---|
| BatchSz: | The size of the batch of slices to compute.
|
|---|
| ZVals: | An array of size BatchSz of Z coordinate of the
slices of the V-model.
|
|---|
| Resolution: | Resolution of the image, will be modified by
VMdlSlicer, to a near-by actual saved size.
|
|---|
| Coordinates: | Call-back function for the chosen blending
functions.
|
|---|
| PropertyFunction: | User specified call-back function to define
the property to be blended.
|
|---|
| BlendingRule: | User specified call-back functions to define how
to blend the property.
|
|---|
| SizePixelProperty: | Size of the property in each pixel.
|
|---|
Returned Value:
| VMdlSlicerOutputImageStruct *: Output array containing the images of
the slices for the required Z values.
|
|---|
See Also:
VMdlBlendPropertiesSlice
VMdlBlendPrepStruct
VMdlBlendCoordinatesFuncType
VMdlBlendAttributesPerPointFuncType
VMdlSlicerInitVModel
Keywords:
(vmdl_blnd_field.c:2060)
Prototype:
VMdlSlicerPropertyStruct *VMdlBlendVCellPropertiesPerPoint(
VMdlBlendPrepStruct *BlendCoordPrep,
IrtRType Pt[3],
VMdlSlicerPropertyStruct *OutputProperty)
Description:
Given a V-model and a point blends the attributes of the V-model
accordingly, using V-cells.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities
regarding the V-model.
|
|---|
| Pt: | Euclidean coordinates of the point for which we
need to compute the blend.
|
|---|
| OutputProperty: | Pointer to be filled with the output.
|
|---|
Returned Value:
| VMdlSlicerPropertyStruct *: Pointer to the output.
|
|---|
Keywords:
(vmdl_blnd_field.c:1994)
Prototype:
VMdlSlicerOutputImageStruct *VMdlBlendVCellPropertiesSlice(VMdlBlendPrepStruct
*BlendCoordPrep,
const double z,
const int *Resolution)
Description:
Given a VMdl, a z value and a resolution outcomes the result of the
blending with coordinates based on V-cells.
Parameters:
| BlendCoordPrep: | Prep structure of the V-model.
|
|---|
| z: | Slice.
|
|---|
| Resolution: | Vector containing the size of the image.
|
|---|
Returned Value:
| VMdlSlicerOutputImageStruct *: Image structure.
|
|---|
See Also:
VMdlBlendPrepStruct
distance-based
Keywords:
(vmdl_blnd_field.c:1878)
Prototype:
void VMdlBlendVElemComputeDistCoordinates(VMdlBlendPrepStruct *BlendCoordPrep,
const CagdRType Pt[3])
Description:
Given a VMdl and a point, computes its barycentric coordinates with
respect to the boundary surfaces of the union intersection using
V-cells.
Parameters:
| BlendCoordPrep: | Prep structure of the V-model.
|
|---|
| Pt: | Point of which we need to compute the barycentric
coordinates.
|
|---|
Returned Value:
See Also:
VMdlBlendPrepStruct
distance-based coordinates
VMdlVolumeElementStruct
Keywords:
(vmdl_bool.c:3872)
Prototype:
VMdlBoolParamsStruct VMdlBoolDefaultParams()
Description:
Creates a params struct with default values for boolean operations.
Parameters:
Returned Value:
| VMdlBoolParamsStruct: The default parameters for boolean operations.
|
|---|
Keywords:
(vmdl_cnst.c:88)
Prototype:
VMdlVModelStruct *VMdlBuildFinalVModel(TrivTVStruct *TV,
TrimSrfStruct *TrimSrfs,
CagdRType Tol,
void *Context)
Description:
Build a VModel from the given TV and trimming surface.
Parameters:
| TV: | TV to convert into VModel, in place.
|
|---|
| TrimSrfs: | The trimming surfaces, in place.
|
|---|
| Tol: | Tolerance used for stitching etc.
|
|---|
| Context: | Any extra data needed for building the VModel.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed VModel, or NULL if error.
|
|---|
Keywords:
(vmdl_bool.c:1237)
Prototype:
MdlModelStruct *VMdlBuildMdlFromSurfaces(const VMdlParamsStruct *Params,
const MdlModelStruct *BSrfs)
Description:
Builds a new Model object by merging a list of surfaces represented each
as a model object.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| BSrfs: | Surfaces models to merge.
|
|---|
Returned Value:
| MdlModelStruct *: New Model object.
|
|---|
Keywords:
(vmslicer.c:239)
Prototype:
MdlModelStruct *VMdlBuildModelFromTVBndries(const TrivTVStruct *Trivar)
Description:
Builds a closed MODEL from the surfaces of a trivariate.
Parameters:
| Trivar: | The trivariate to build a (6 faces) MODEL from its boundaries.
|
|---|
Returned Value:
| MdlModelStruct *: The created model.
|
|---|
See Also:
MdlAddSrf2Mdl
MdlCnvrtSrf2Mdl
Keywords:
(vmdl_bool.c:2612)
Prototype:
void VMdlCalcMdlEuclCrvs(const VMdlParamsStruct *Params,
MdlModelStruct *BMdl)
Description:
Computes the Euclidean curves of a given Model object.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| BMdl: | The Model object.
|
|---|
Returned Value:
Keywords:
(vmdl_dbg.c:213)
Prototype:
CagdBType VMdlCheckVElementConnectivity(const VMdlVolumeElementStruct
*VMdlElement)
Description:
Tests connectivity validity of a V-cell (V-Element).
Parameters:
Returned Value:
| CagdBType: Success iff the connectivity of the V-cell is valid.
|
|---|
Keywords:
(vmdl_bool.c:3729)
Prototype:
VMdlVModelStruct *VMdlClipVModelByPlane(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl,
const IrtPlnType Pln,
VMdlBoolOpType BoolOp)
Description:
Clips the given vmodel, VMdl, to the portion that is in the positive
side of plane Pln.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | VModel to clip against plane Pln.
|
|---|
| Pln: | Clipping plane.
|
|---|
| BoolOp: | One of INTERSECTION, SUBTRACTION.
|
|---|
Returned Value:
| VMdlVModelStruct *: Portion of VMdl, as a new vmodel, in the positive
side of plane Pln. NULL if nothing.
|
|---|
See Also:
MdlClipSrfByPlane
MdlClipTrimmedSrfByPlane
MdlClipModelByPlane
Keywords:
(vmdl_aux.c:137)
Prototype:
VMdlVModelStruct *VMdlCnvrtSrf2VMdl(const CagdSrfStruct *Srf)
Description:
Converts a list of surfaces forming a closed shape into a V-model,
having the surface as its boundary.
Parameters:
| Srf: | ist of boundary surfaces.
|
|---|
Returned Value:
| VMdlVModelStruct *: New V-model.
|
|---|
Keywords:
(vmdl_aux.c:157)
Prototype:
VMdlVModelStruct *VMdlCnvrtTrimmedSrf2VMdl(const TrimSrfStruct *TSrf)
Description:
Converts a list of trimmed surfaces forming a closed shape into a
V-model having the surface as its boundary.
Parameters:
| TSrf: | ist of boundary trimmed surfaces.
|
|---|
Returned Value:
| VMdlVModelStruct *: New V-model.
|
|---|
Keywords:
(vmdl_bool.c:813)
Prototype:
VMdlVModelStruct *VMdlCnvrtTrivar2VMdl(const VMdlParamsStruct *Params,
const TrivTVStruct *TV,
int PrimID)
Description:
Builds a V-model from a given trivariate. Having one V-cell, and six
boundary V-surfaces, which are the boundary surfaces of the trivariate.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| TV: | The trivariate to convert to VModel.
|
|---|
| PrimID: | ID to use for this "VPrimitiveID" attribute, or 0 to assign a
whole new ID.
|
|---|
Returned Value:
| VMdlVModelStruct *: The constructed V-model.
|
|---|
Keywords:
(vmdl_bool.c:744)
Prototype:
VMdlVModelStruct *VMdlCnvrtTrivarList2VMdl(const VMdlParamsStruct *Params,
TrivTVStruct *TVList,
int PrimID)
Description:
Creates a V-model from several trivariates. The function assumes that
trivariates don't overlap. A V-cell is constructed for each trivariate
that are glued together then.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| TVList: | List of trivariates.
|
|---|
| PrimID: | ID to use for this "VPrimitiveID" attribute, or 0 to assign a
whole new ID.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
Keywords:
(vmdl_aux.c:313)
Prototype:
MdlModelStruct *VMdlCnvrtVMdl2Mdl(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl)
Description:
Converts all the V-cells of a given V-model into a list of boundary
Models.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | The V-model.
|
|---|
Returned Value:
| MdlModelStruct *: List of boundry Models of the V-cells.
|
|---|
See Also:
VMdlCnvrtVMdls2Mdls
Keywords:
(vmdl_aux.c:231)
Prototype:
TrimSrfStruct *VMdlCnvrtVMdl2TrimmedSrfs(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl)
Description:
Extracts the boundary half-surfaces of all the V-cells in a given
V-model into a list of trimmed surfaces.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | The V-model.
|
|---|
Returned Value:
| TrimSrfStruct *: List of trimmed surfaces representing all the half
V-surfaces.
|
|---|
See Also:
VMdlCnvrtVMdls2TrimmedSrfs
Keywords:
(vmdl_aux.c:274)
Prototype:
MdlModelStruct *VMdlCnvrtVMdls2Mdls(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdls)
Description:
Converts all the V-cells of a given list of V-models into a list of
boundary Models.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdls: | The linked list of V-models.
|
|---|
Returned Value:
| MdlModelStruct *: List of boundry Models of the V-cells.
|
|---|
See Also:
VMdlCnvrtVMdl2Mdl
Keywords:
(vmdl_aux.c:184)
Prototype:
TrimSrfStruct *VMdlCnvrtVMdls2TrimmedSrfs(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdls)
Description:
Extracts the boundary half-surfaces of all the V-cells in a given
list of V-models into a list of trimmed surfaces.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdls: | The linked list of V-models.
|
|---|
Returned Value:
| TrimSrfStruct *: List of trimmed surfaces representing all the half
V-surfaces.
|
|---|
See Also:
VMdlCnvrtVMdl2TrimmedSrfs
Keywords:
(vmdl_aux.c:643)
Prototype:
TrimSrfStruct *VMdlCnvrtVSrf2TrimmedSrf(const VMdlInterTrimSrfStruct *VSrf)
Description:
Converts a V-surface to trimmed surface.
Parameters:
| VSrf: | The V-surface to convert.
|
|---|
Returned Value:
| TrimSrfStruct *: Trimmed surface structure converted from VSrf.
|
|---|
See Also:
VMdlApplyVSrfTrimmedLoopsOnSrf
Keywords:
(vmdl_fillet.c:792)
Prototype:
void VMdlCreateFillet(const VMdlParamsStruct *Params,
const CagdSrfStruct *Srf1List,
const CagdSrfStruct *Srf2List,
CagdRType RailDist,
int R1Orient,
int R2Orient,
CagdRType TanScale,
int ApproxCrvsCtlPts,
TrivFilletingMethodType FilletingMethod,
CagdBType PreciseFillet,
TrivTVStruct **FilletTVs,
MdlModelStruct **FilletMdls,
CagdSrfStruct **SubSrfs1,
CagdSrfStruct **SubSrfs2)
Description:
Constructs a (list of) fillet trivariate(s) between the two given
boundary surfaces, and creates a (list of) model(s) representing the
trivariate(s) boundary surfaces.
The fillet meets with the surfaces with G1 continuity, and its boundary
curves are the intersection curve of Srf1 and Srf2, and two rail curves
that are computed as an approximate Euclidean offest of the intersection
curve on each of the surfaces.
Parameters:
| Params: | The common parameters to VModel operations. If
NULL, default values are used.
|
|---|
| Srf1List, Srf2List: | Two list of surfaces to construct a fillet in
between each pair of them. *
|
|---|
| RailDist: | The distance of the rail curves from the
intersection curve of Srf1 and Srf2
|
|---|
| R1Orient, R2Orient: | +/-1 for left/right orientation of the
corresponding rail curve. 0 to choose the option
that results with a longer rail curve.
|
|---|
| TanScale: | The desired magnitude of the fillet's tangents
that connect it with Srf1 and Srf2.
|
|---|
| ApproxCrvsCtlPts: | The number of control points used to approximate
the curves used for fillet construction.
|
|---|
| FilletingMethod: | The required filleting method
|
|---|
| PreciseFillet: | If true, the primary surfaces of the fillet are
computed precisely, using surface-surface
composition. Otherwise, the primary surafces are
approximated, using least square fitting.
|
|---|
| FilletTVs: | If not NULL, the list of fillet trivariates
will be stored here.
|
|---|
| FilletMdls: | If not NULL, a list of models representing the
fillets' boundary surfaces will be stored here
|
|---|
| SubSrfs1: | If not NULL, a list of the fillets' shared
boundaries with TV1 will be stored here.
|
|---|
| SubSrfs2: | If not NULL, a list of the fillets' shared
boundaries with TV1 will be stored here.
|
|---|
Returned Value:
See Also:
TrivTVFillet
Keywords:
trivariates
blending
filleting
(vmdl_fillet.c:862)
Prototype:
VMdlVModelStruct *VMdlCreateFillet2(const VMdlParamsStruct *Params,
const CagdSrfStruct *Srf1List,
const CagdSrfStruct *Srf2List,
CagdRType RailDist,
int R1Orient,
int R2Orient,
CagdRType TanScale,
int ApproxCrvsCtlPts,
TrivFilletingMethodType FilletingMethod,
CagdBType PreciseFillet)
Description:
Constructs a VModel representing a volumetric fillet between the two
given boundary surfaces.
Parameters:
| Params: | The common parameters to VModel operations. If
NULL, default values are used.
|
|---|
| Srf1List, Srf2List: | Two list of surfaces to construct a fillet in
between each pair of them. *
|
|---|
| RailDist: | The distance of the rail curves from the
intersection curve of Srf1 and Srf2
|
|---|
| R1Orient, R2Orient: | +/-1 for left/right orientation of the
corresponding rail curve. 0 to choose the option
that results with a longer rail curve.
|
|---|
| TanScale: | The desired magnitude of the fillet's tangents
that connect it with Srf1 and Srf2.
|
|---|
| ApproxCrvsCtlPts: | The number of control points used to approximate
the curves used for fillet construction.
|
|---|
| FilletingMethod: | The required filleting method
|
|---|
| PreciseFillet: | If true, the primary surfaces of the fillet are
computed precisely, using surface-surface
composition. Otherwise, the primary surafces are
approximated, using least square fitting.
|
|---|
Returned Value:
| VMdlVModelStruct *: A VModel representing the volumetric fillet.
|
|---|
See Also:
VMdlCreateFillet
TrivTVFillet
Keywords:
VModels
blending
filleting
(vmdl_dbg.c:97)
Prototype:
void VMdlDbg(void *Obj)
Description:
Prints vmodel objects to stderr. Should be linked to programs for
debugging purposes, so model objects may be inspected from a debugger.
Parameters:
| Obj: | A model object - to be printed to stderr.
|
|---|
Returned Value:
Keywords:
debugging
(vmdl_dbg.c:273)
Prototype:
CagdBType VMdlDebugVerify(const VMdlVModelStruct *VMdl)
Description:
Verifies the validity of the pointers of a VModel.
Parameters:
| VMdl: | The VModel to verify.
|
|---|
Returned Value:
| CagdBType: TRUE if the the data structure is valid, FALSE otherwise.
|
|---|
Keywords:
(vmdl_dbg.c:324)
Prototype:
void VMdlDebugVerifyPrint(const VMdlVModelStruct *VMdl)
Description:
Verifies the validity of the pointers of a VModel. Prints an error
message if any issues are found.
Parameters:
| VMdl: | The VModel to verify.
|
|---|
Returned Value:
See Also:
VMdlDebugVerify
Keywords:
(vmdl_aux.c:1202)
Prototype:
void VMdlDefaultParams(VMdlParamsStruct *Params)
Description:
Sets default values for VModel operation parameters.
Parameters:
| Params: | A pointer to a parameters struct. The values in theis struct
will be filled with default values.
|
|---|
Returned Value:
See Also:
Keywords:
(vmdl_enc_field.c:1187)
Prototype:
size_t VMdlEncDflt1DVectorField(VMdlBlendPrepStruct *BlendCoordPrep,
VMdlBlendPointStruct *Pt,
VMdlSlicerPropertyStruct *PropertyOut)
Description:
Given a VMdlBlendPrepStruct and a point structure, returns the vector
field (1D - gray scale) associated to a V-model and its dimensional
size.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities
regarding the V-model.
|
|---|
| Pt: | Euclidean coordinates of the point for which we
need to compute the blend.
|
|---|
| PropertyOut: | Property to be filled with the output.
|
|---|
Returned Value:
| size_t: Dimension of the property function.
|
|---|
See Also:
VMdlBlendPrepStruct
VMdlBlendPointStruct
VMdlBlendDfltPropertiesPerPoint
Keywords:
(vmdl_enc_field.c:1139)
Prototype:
size_t VMdlEncDflt3DVectorField(VMdlBlendPrepStruct *BlendCoordPrep,
VMdlBlendPointStruct *Pt,
VMdlSlicerPropertyStruct *PropertyOut)
Description:
Given a VMdlBlendPrepStruct and a point structure, returns the vector
field (3D) associated to a V-model and its dimensional size.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities
regarding the V-model.
|
|---|
| Pt: | Euclidean coordinates of the point for which we
need to compute the blend.
|
|---|
| PropertyOut: | Property to be filled with the output.
|
|---|
Returned Value:
| size_t: Dimension of the property function.
|
|---|
See Also:
VMdlBlendPrepStruct
VMdlBlendPointStruct
VMdlBlendDfltPropertiesPerPoint
Keywords:
(vmdl_enc_field.c:1092)
Prototype:
size_t VMdlEncDfltRGBVectorField(VMdlBlendPrepStruct *BlendCoordPrep,
VMdlBlendPointStruct *Pt,
VMdlSlicerPropertyStruct *PropertyOut)
Description:
Given a VMdlBlendPrepStruct and a point structure, returns the vector
field (RGB colors) associated to a V-model and its dimensional size.
Parameters:
| BlendCoordPrep: | A structure containing useful quantities
regarding the V-model.
|
|---|
| Pt: | Euclidean coordinates of the point for which we
need to compute the blend.
|
|---|
| PropertyOut: | Property to be filled with the output.
|
|---|
Returned Value:
| size_t: Dimension of the property function.
|
|---|
See Also:
VMdlBlendPrepStruct
VMdlBlendPointStruct
VMdlBlendDfltPropertiesPerPoint
Keywords:
(vmdl_enc_field.c:1901)
Prototype:
IrtRType VMdlEncPropertyFunctionError(
const VMdlParamsStruct *Params,
VMdlBlendPrepStruct *BlendCoordPrep,
const int Resolution[3],
VMdlBlendPropertyFuncType PropertyFunction,
VMdlBlendPropertyFuncType ReconPropertyFunction,
VMdlBlendCoordinatesFuncType Coordinates)
Description:
Routine to compute the RMSE of all the property functions in a V-model.
Parameters:
| Params: | The common parameters to VModel operations. If
NULL, default values are used.
|
|---|
| BlendCoordPrep: | Prep handle for blending.
|
|---|
| Resolution: | Resolution of the 3D grid over which computing
the RMSE.
|
|---|
| PropertyFunction: | Original property function.
|
|---|
| ReconPropertyFunction: | Reconstructed property functions.
|
|---|
| Coordinates: | Coordinates function for blending.
|
|---|
Returned Value:
| IrtRType: weighted average of the RMSE of the reconstruction.
|
|---|
Keywords:
(vmdl_enc_field.c:771)
Prototype:
TrivTVStruct *VMdlEncRetrieveProperties(
VMdlBlendPrepStruct *BlendCoordPrep,
const int NumSamplePoints,
CagdBType CreateNewTriv,
const int AddedRefinedKnots,
VMdlEncVectorFieldFuncType F,
VMdlBlendCoordinatesFuncType Coordinates)
Description:
Outputs the result of the least square for retrieving the original
properties, before the blend. The output is given as a TrivTVStruct or
encoded into the geometry, depending on user specifications.
Parameters:
| BlendCoordPrep: | Prep structure of the V-model.
|
|---|
| NumSamplePoints: | Of the discretization of the parametric spaces
of TVs in BlendCoordPrep.
|
|---|
| CreateNewTriv: | If TRUE outputs a trivariate struct, otherwise
saves the output in the original TVs.
|
|---|
| AddedRefinedKnots: | If positive, knows to added to the property.
|
|---|
| F: | Vector field over the V-model.
|
|---|
| Coordinates: | Optional call back function to compute distance.
|
|---|
Returned Value:
| TrivTVStruct *: TVs interpolating the original properties.
|
|---|
See Also:
TrivTVStruct
VMdlBlendPropertyFunctionFuncType
VMdlBlendPrepStruct
ConstructPointStruct
VMdlBlendAssembleLstSqrInverseMatrix
Keywords:
Least square approximation
(vmdl_enc_field.c:1971)
Prototype:
IrtRType VMdlEncVModelVectorFieldError(
VMdlBlendPrepStruct *BlendCoordPrep,
const int Resolution[3],
VMdlEncVectorFieldFuncType VectorField,
VMdlBlendPropertyFuncType ReconPropertyFunction,
VMdlBlendCoordinatesFuncType Coordinates,
VMdlBlendRuleFuncType BlendingRule)
Description:
Routine to compute the RMSE of reconstructed vector field over a
V-model.
Parameters:
| BlendCoordPrep: | Prep handle for blending.
|
|---|
| Resolution: | Resolution of the 3D grid over which computing
the RMSE.
|
|---|
| VectorField: | Original vector field.
|
|---|
| ReconPropertyFunction: | Reconstructed property functions.
|
|---|
| Coordinates: | Coordinates function for blending.
|
|---|
| BlendingRule: | User specified call-back functions to define
how to blend the properties.
|
|---|
Returned Value:
| IrtRType: weighted average of the RMSE of the reconstruction.
|
|---|
Keywords:
(vmdl_cnst.c:40)
Prototype:
void VMdlEvalEuclidCrvsForTrimCrvs(TrimSrfStruct *TrSrf)
Description:
Evaluates and populates the Euclidean trim-curves of the input trim-
surface from its UV curves, in place.
Parameters:
| TrSrf: | Trim-surface to populate trim-curves of, in place.
|
|---|
Returned Value:
Keywords:
(vmdl_bool.c:1340)
Prototype:
CagdCrvStruct **VMdlExtractTrimCrvLoop(const VMdlInterTrimSrfStruct
*VTrimSrfStruct,
int *NumLoops)
Description:
Returns an array (copied) of trimming curves of a given V-surface.
Parameters:
| VTrimSrfStruct: | -surface.
|
|---|
| NumLoops: | utput parameter, which holds the number of trimming curves.
|
|---|
Returned Value:
| CagdCrvStruct **: Array of trimming curves.
|
|---|
Keywords:
(vmdl_aux.c:411)
Prototype:
VMdlVModelStruct *VMdlExtractVElements(const VMdlVModelStruct *VMdl)
Description:
Extracts the V-elements of a given V-model into a list of V-models. each
V-element is wrapped by a new V-model. (The V-elements are copied).
Parameters:
| VMdl: | The V-model to divide into its individual V-elements, each in
one V-Model.
|
|---|
Returned Value:
| VMdlVModelStruct *: List of V-models, one V-model for each V-element.
|
|---|
Keywords:
(vmdl_cnst.c:283)
Prototype:
VMdlVModelStruct *VMdlExtrudeTrimSrf(const TrimSrfStruct *Section,
CagdVecStruct *Dir)
Description:
Computes an extruded V-model from input trim surface, in the given
direction.
Parameters:
| Section: | Input trim surface to extrude.
|
|---|
| Dir: | Direction to extrude along.
|
|---|
Returned Value:
| VMdlVModelStruct *: The extruded V-model.
|
|---|
Keywords:
(vmdl_cnst.c:310)
Prototype:
VMdlVModelStruct *VMdlExtrudeTrimSrfExtra(const VMdlParamsStruct *Params,
const TrimSrfStruct *Section,
CagdVecStruct *Dir,
void *ExtraData)
Description:
Computes an extruded V-model from input trim surface, in the given
direction. This function allows passing extra data to the stitching
function.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Section: | Input trim surface to extrude.
|
|---|
| Dir: | Direction to extrude along.
|
|---|
| ExtraData: | Extra data to pass to the stitching function.
|
|---|
Returned Value:
| VMdlVModelStruct *: The extruded V-model.
|
|---|
Keywords:
(vmdl_fillet.c:1004)
Prototype:
VMdlFilletParamsStruct VMdlFilletDefaultParams()
Description:
Creates a params struct with default values for filleting.
Parameters:
Returned Value:
| VMdlFilletParamsStruct: The default parameters for for filleting.
|
|---|
See Also:
Keywords:
sweep
trivariate constructors
(vmdl_gen.c:414)
Prototype:
void VMdlFreeInterTrimCurveSeg(VMdlInterTrimCurveSegStruct *VTrimCrv)
Description:
Frees a V-curve.
Parameters:
| VTrimCrv: | -curve to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:508)
Prototype:
void VMdlFreeInterTrimCurveSegLoopInSrf(
VMdlInterTrimCurveSegLoopInSrfStruct *CrvSegLoop)
Description:
Frees a trimming loop of a half-V-surface.
Parameters:
| CrvSegLoop: | trimming loop of a half-V-surface to free.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:453)
Prototype:
void VMdlFreeInterTrimCurveSegRef(VMdlInterTrimCurveSegRefStruct *CrvSegRef)
Description:
Frees a reference to a V-curve.
Parameters:
| CrvSegRef: | eference to V-curve to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:368)
Prototype:
void VMdlFreeInterTrimPnt(VMdlInterTrimPointStruct *VTrimPnt)
Description:
Frees a V-point.
Parameters:
Returned Value:
Keywords:
(vmdl_gen.c:538)
Prototype:
void VMdlFreeInterTrimPointRef(VMdlInterTrimPointRefStruct *PntRef)
Description:
Frees a reference to a V-point.
Parameters:
| PntRef: | eference to a V-point to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:386)
Prototype:
void VMdlFreeInterTrimSrf(VMdlInterTrimSrfStruct *VTrimSrf)
Description:
Frees a half-V-surface.
Parameters:
| VTrimSrf: | alf-V-surface to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:489)
Prototype:
void VMdlFreeInterTrimSrfRef(VMdlInterTrimSrfRefStruct *SrfRef)
Description:
Frees a reference to a half-V-surface.
Parameters:
| SrfRef: | Reference to a half-V-surface to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:471)
Prototype:
void VMdlFreeInterTrivTVRef(VMdlInterTrivTVRefStruct *TrivTVRef)
Description:
Frees a reference to a trivariate.
Parameters:
| TrivTVRef: | eference to a trivariate to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:264)
Prototype:
static void VMdlFreeOneModel(VMdlVModelStruct *Mdl)
Description:
Frees a V-model.
Parameters:
| Mdl: | -model to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:345)
Prototype:
void VMdlFreeTrimVolElem(VMdlVolumeElementStruct *VCell)
Description:
Frees a V-cell.
Parameters:
| VCell: | -cell to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:435)
Prototype:
void VMdlFreeTrimVolumeElemRef(VMdlVolumeElementRefStruct *TrimVolElemRef)
Description:
Frees a reference to a V-cell.
Parameters:
| TrimVolElemRef: | eference to V-cell to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_bool.c:2542)
Prototype:
VMdlVModelStruct *VMdlFromBoundaryModel(const VMdlParamsStruct *Params,
const MdlModelStruct *BMdl,
const TrivTVStruct *TV)
Description:
A constructore f or a VModel from a trivariate and a (boundary) model.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| BMdl: | Boundary model to serve as a set of trimming surfaces of the
VModel.
|
|---|
| TV: | The trivariate volume of the VModel.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed VModel.
|
|---|
See Also:
VMdlVolElementFromBoundaryModel
Keywords:
(vmdl_bool.c:1469)
Prototype:
MdlModelStruct *VMdlGetBndryVElement(const VMdlParamsStruct *Params,
VMdlVolumeElementStruct *VCell)
Description:
Return a boundary Model of a given V-cell. The Model object is created
if it was not created before.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VCell: | The V-cell.
|
|---|
Returned Value:
| MdlModelStruct *: Boundary Model of the V-cell.
|
|---|
Keywords:
(vmdl_bool.c:1589)
Prototype:
CagdCrvStruct *VMdlGetBoundaryCurves(const VMdlVModelStruct *Mdl)
Description:
Returns a list of all the V-curves geometry copies in a given V-model.
Parameters:
Returned Value:
| CagdCrvStruct *: List of curves.
|
|---|
Keywords:
(vmdl_bool.c:1540)
Prototype:
IPObjectStruct *VMdlGetBoundarySurfaces2(const VMdlParamsStruct *Params,
const VMdlVModelStruct *Mdl)
Description:
Returns the boundary surfaces of each V-cell in a given V-model as a
trimmed surfaces object struct.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Mdl: | The V-model.
|
|---|
Returned Value:
| IPObjectStruct *:Object of trimmed surfaces list.
|
|---|
Keywords:
(vmdl_bool.c:1156)
Prototype:
MdlModelStruct *VMdlGetBoundaryVModel(const VMdlParamsStruct *Params,
const VMdlVModelStruct *Mdl)
Description:
Converts each V-cell of a given V-model into a Model object.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Mdl: | A V-model to convert to a model (B-rep) only.
|
|---|
Returned Value:
| MdlModelStruct *: List of Model objects of the boundaries of the
V-model's V-cells.
|
|---|
Keywords:
(vmdl_bool.c:1389)
Prototype:
MdlModelStruct *VMdlGetOuterBoundarySurfacesVModel(
const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl)
Description:
Constructs the outer boundary composed of the boundary half-V-surfaces
of a given V-model as a Model object.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | The V-model.
|
|---|
Returned Value:
| MdlModelStruct *: Boundary Model.
|
|---|
Keywords:
(vmdl_aux.c:1135)
Prototype:
VMdlTSrfs2StitchedTSrfsFuncType VMdlGetStitchCallback(void)
Description:
Returns the callback function for stitching trimmed surfaces into the
boundary of a V-element.
Parameters:
Returned Value:
| VMdlTSrfs2StitchedTSrfsFuncType: The stitching function reference.
|
|---|
Keywords:
(vmdl_aux.c:907)
Prototype:
const TrivTVStruct *VMdlGetTVBoundarySrf(const VMdlVModelStruct *VMdl,
const CagdSrfStruct *Srf,
TrivTVBndryType *TVBndry,
int *Reversed)
Description:
Finds, if any, the trivariate that Srf is a boundary surface of, in the
given VModel. This function does the search geometrically and does not
take into account the topological information in VMdl.
Parameters:
| VMdl: | VModel to search the trivariate in.
|
|---|
| Srf: | The surface to seek its trivariate, for which Srf is a boundary.
|
|---|
| TVBndry: | oundary specification of Srf in the trivariate, if found.
|
|---|
| Reversed: | Optional parameter to state how the UV parameters of Srf were
flipped/reversed in the match as the following bits,
1 - U was reversed,
2 - V was reversed,
4 - if U and V were flipped.
|
|---|
Returned Value:
| const TrivTVStruct *: The found trivariate or NULL if none.
|
|---|
See Also:
VMdlGetTVBoundarySrfEps
Keywords:
(vmdl_aux.c:789)
Prototype:
const TrivTVStruct *VMdlGetTVBoundarySrfEps(const VMdlVModelStruct *VMdl,
const CagdSrfStruct *Srf,
TrivTVBndryType *TVBndry,
int *Reversed,
CagdRType Tol)
Description:
Finds, if any, the trivariate that Srf is a boundary surface of, in the
given VModel. This function does the search geometrically and does not
take into account the topological information in VMdl.
Parameters:
| VMdl: | VModel to search the trivariate in.
|
|---|
| Srf: | The surface to seek its trivariate, for which Srf is a boundary.
|
|---|
| TVBndry: | oundary specification of Srf in the trivariate, if found.
|
|---|
| Reversed: | Optional parameter to state how the UV parameters of Srf were
flipped/reversed in the match as the following bits,
1 - U was reversed,
2 - V was reversed,
4 - if U and V were flipped.
|
|---|
| Tol: | The tolerance.
|
|---|
Returned Value:
| const TrivTVStruct *: The found trivariate or NULL if none.
|
|---|
Keywords:
(vmdl_bool.c:1860)
Prototype:
void VMdlGlueVModels2(VMdlVModelStruct **ResVMdl,
VMdlVModelStruct **OtherVMdls,
int NumVMdls,
CagdRType SrfDiffEps,
CagdBType CalculateConnectivity)
Description:
This function glues list of V-models. The result is saved in ResVMdl
input/output parameter.
Parameters:
| ResVMdl: | he result glued V-model.
|
|---|
| OtherVMdls: | rray of V-models to Glue.
|
|---|
| NumVMdls: | umber of V-models in OtherVMdls.
|
|---|
| SrfDiffEps: | urface comparison tolerance.
|
|---|
| CalculateConnectivity: | f True, topological connectivity is computed.
|
|---|
Returned Value:
Keywords:
(vmdl_bool.c:1917)
Prototype:
CagdBType VMdlGlueVModelsAppend(VMdlVModelStruct **Mdl1,
const VMdlVModelStruct *Mdl2,
CagdRType SrfDiffEps,
CagdBType CalculateConnectivity,
MiscPHashMap TVHMap)
Description:
This function glues two V-models. The result is saved in the first one.
Parameters:
| Mdl1: | First V-model.
|
|---|
| Mdl2: | Second V-model.
|
|---|
| SrfDiffEps: | urface comparison tolerance.
|
|---|
| CalculateConnectivity: | f True, topological connectivity is computed.
|
|---|
| TVHMap: | The Hashing map.
|
|---|
Returned Value:
| CagdBType: TRUE in success, and FALSE otherwise.
|
|---|
Keywords:
(vmdl_gen.c:557)
Prototype:
VMdlInterTrimCurveSegStruct *VMdlInterTrimCurveSegCopy(
VMdlInterTrimCurveSegStruct *CurveSeg)
Description:
Copies a V-curve.
Parameters:
| CurveSeg: | V-curve to copy.
|
|---|
Returned Value:
| VMdlInterTrimCurveSegStruct *: New copy of the given V-curve.
|
|---|
Keywords:
(vmdl_gen.c:889)
Prototype:
VMdlInterTrimCurveSegLoopInSrfStruct *VMdlInterTrimCurveSegLoopInSrfCopy(
VMdlInterTrimCurveSegLoopInSrfStruct *CrvInLoop)
Description:
Copies a trimming curve in a trimming loop in a half-V-surface.
Parameters:
| CrvInLoop: | curve of a loop in a half-V-surface to copy.
|
|---|
Returned Value:
| VMdlInterTrimCurveSegLoopInSrfStruct *: New copy of the given curve in
loop.
|
|---|
Keywords:
(vmdl_gen.c:995)
Prototype:
VMdlInterTrimPointStruct *VMdlInterTrimPointCopy(VMdlInterTrimPointStruct
*VMdlPnt)
Description:
Copies a V-point.
Parameters:
| VMdlPnt: | A V-point to copy.
|
|---|
Returned Value:
| VMdlInterTrimPointStruct *: New copy of the given V-point.
|
|---|
Keywords:
(vmdl_gen.c:923)
Prototype:
VMdlInterTrimSrfStruct *VMdlInterTrimSrfSCopy(VMdlInterTrimSrfStruct *VMdlSrf)
Description:
Copies a half-V-surface.
Parameters:
| VMdlSrf: | half-V-surface to copy.
|
|---|
Returned Value:
| VMdlInterTrimSrfStruct *: New copy of the given half-V-surface.
|
|---|
Keywords:
(vmdl_aux.c:579)
Prototype:
TrivTVStruct *VMdlIsNonTrimmedVCell(const VMdlParamsStruct *Params,
const VMdlVolumeElementStruct *VElem)
Description:
Checks if the given V-element (V-cell) is non-trimmed in the parametric
domain of one of its associated (containing) trivariates.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VElem: | The V-element.
|
|---|
Returned Value:
| TrivTVStruct *: If the V-element is in a non-trimmed box a sub-domain of
one of its trivariates, the trivariate is returned, and
NULL otherwise.
|
|---|
Keywords:
(vmdl_aux.c:508)
Prototype:
CagdBType VMdlIsNonTrimmedVCellOfTV(const VMdlParamsStruct *Params,
const VMdlVolumeElementStruct *VElem,
const TrivTVStruct *TV)
Description:
Checks if the given V-element (V-cell) is non-trimmed in the parametric
domain of a given trivariate.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VElem: | The V-element.
|
|---|
| TV: | The trivariate.
|
|---|
Returned Value:
| CagdBType: TRUE iff the V-element is in a non-trimmed box a sub-domain
of the trivariate, and NULL otherwise.
|
|---|
Keywords:
(vmdl_aux.c:615)
Prototype:
TrivTVStruct *VMdlIsNonTrimmedVModel(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl)
Description:
Checks if the given V-model is non-trimmed in the parametric domain of
one of its associated (containing) trivariates.
The V-model should contain only one V-element.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | The V-model.
|
|---|
Returned Value:
| TrivTVStruct *: If the V-model is in a non-trimmed box a sub-domain of
one of its trivariates, the trivariate is returned, and
NULL otherwise.
|
|---|
Keywords:
(vmdl_aux.c:733)
Prototype:
CagdBType VMdlIsTVBoundaryVSrf(const VMdlInterTrimSrfStruct *VSrf,
const TrivTVStruct *TV,
TrivTVDirType *IsoDir,
CagdRType *IsoVal)
Description:
Checks if the surface of a given V-surface is an iso parametric surface
of a given trivariate, by examining special attributes saved in the both
trivariate and V-surface.
Parameters:
| VSrf: | The V-surface to check.
|
|---|
| TV: | The trivariate.
|
|---|
| IsoDir, IsoVal: | ill hold the iso parametric direction and value, if
VSrf lies on iso-parametric surface of TV.
|
|---|
Returned Value:
| CagdBType: TRUE iff VSrf lies on iso-parametric surface of TV.
|
|---|
Keywords:
(vmdl_cnst.c:575)
Prototype:
VMdlVModelStruct *VMdlOfRevAxisTrimSrf(const TrimSrfStruct *Section,
const TrivV4DType AxisPoint,
const TrivV4DType AxisVector,
CagdRType StartAngle,
CagdRType EndAngle,
CagdBType Rational)
Description:
Computes an revolved V-model from the input trim surface, around the
specified axis.
Parameters:
| Section: | Input trim surface to revolve.
|
|---|
| AxisPoint: | Of axis of rotation of Srf.
|
|---|
| AxisVector: | f axis of rotation of Srf.
|
|---|
| StartAngle: | tarting angle of revolution, in degrees.
|
|---|
| EndAngle: | Ending angle of revolution, in degrees.
|
|---|
| Rational: | TRUE for precise rational computation, FALSE for a
polynomial approximation.
|
|---|
Returned Value:
| VMdlVModelStruct *: The revolved V-model.
|
|---|
See Also:
VMdlOfRevTrimSrf
Keywords:
trivariate of revolution
trivariate constructors
(vmdl_cnst.c:615)
Prototype:
VMdlVModelStruct *VMdlOfRevAxisTrimSrfExtra(const VMdlParamsStruct *Params,
const TrimSrfStruct *Section,
const TrivV4DType AxisPoint,
const TrivV4DType AxisVector,
CagdRType StartAngle,
CagdRType EndAngle,
CagdBType Rational,
void *ExtraData)
Description:
Computes an revolved V-model from the input trim surface, around the
specified axis.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Section: | Input trim surface to revolve.
|
|---|
| AxisPoint: | Of axis of rotation of Srf.
|
|---|
| AxisVector: | f axis of rotation of Srf.
|
|---|
| StartAngle: | tarting angle of revolution, in degrees.
|
|---|
| EndAngle: | Ending angle of revolution, in degrees.
|
|---|
| Rational: | TRUE for precise rational computation, FALSE for a
polynomial approximation.
|
|---|
| ExtraData: | Extra data to pass to the stitching function.
|
|---|
Returned Value:
| VMdlVModelStruct *: The revolved V-model.
|
|---|
See Also:
VMdlOfRevTrimSrf
VMdlOfRevAxisTrimSrf
Keywords:
trivariate of revolution
trivariate constructors
(vmdl_cnst.c:405)
Prototype:
VMdlVModelStruct *VMdlOfRevTrimSrf(const TrimSrfStruct *Section,
CagdRType StartAngle,
CagdRType EndAngle,
CagdBType Rational)
Description:
Computes a revolved V-model, around the z-axis of the trim surface.
Parameters:
| Section: | Input trim surface to revolve.
|
|---|
| StartAngle: | tarting angle of revolution, in degrees.
|
|---|
| EndAngle: | Ending angle of revolution, in degrees.
|
|---|
| Rational: | TRUE for precise rational computation, FALSE for a
polynomial approximation.
|
|---|
Returned Value:
| VMdlVModelStruct *: The revolved V-model.
|
|---|
See Also:
VMdlOfRevAxisTrimSrf
Keywords:
(vmdl_cnst.c:439)
Prototype:
VMdlVModelStruct *VMdlOfRevTrimSrfExtra(const VMdlParamsStruct *Params,
const TrimSrfStruct *Section,
CagdRType StartAngle,
CagdRType EndAngle,
CagdBType Rational,
void *ExtraData)
Description:
Computes a revolved V-model, around the z-axis of the trim surface.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Section: | Input trim surface to revolve.
|
|---|
| StartAngle: | tarting angle of revolution, in degrees.
|
|---|
| EndAngle: | Ending angle of revolution, in degrees.
|
|---|
| Rational: | TRUE for precise rational computation, FALSE for a
polynomial approximation.
|
|---|
| ExtraData: | Extra data to pass to the stitching function.
|
|---|
Returned Value:
| VMdlVModelStruct *: The revolved V-model.
|
|---|
See Also:
VMdlOfRevTrimSrf
VMdlOfRevAxisTrimSrf
Keywords:
(vmdl_prim.c:76)
Prototype:
VMdlVModelStruct *VMdlPrimBoxVMdl(CagdRType MinX,
CagdRType MinY,
CagdRType MinZ,
CagdRType MaxX,
CagdRType MaxY,
CagdRType MaxZ)
Description:
Constructs V-model of a box
Parameters:
| MinX, MinY, MinZ: | inimal coordinates of the box.
|
|---|
| MaxX, MaxY, MaxZ: | aximal coordinates of the box.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimBoxVMdl2
Keywords:
(vmdl_prim.c:36)
Prototype:
VMdlVModelStruct *VMdlPrimBoxVMdl2(const VMdlParamsStruct *Params,
CagdRType MinX,
CagdRType MinY,
CagdRType MinZ,
CagdRType MaxX,
CagdRType MaxY,
CagdRType MaxZ)
Description:
Constructs V-model of a box
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| MinX, MinY, MinZ: | inimal coordinates of the box.
|
|---|
| MaxX, MaxY, MaxZ: | aximal coordinates of the box.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimBoxVMdl
Keywords:
(vmdl_prim.c:417)
Prototype:
VMdlVModelStruct *VMdlPrimCone2VMdl(const CagdVType Center,
CagdRType MajorRadius,
CagdRType MinorRadius,
CagdRType Height,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a generalized cone, composed of five extruded
V-cells, an inner cube, and four outer V-cells all glued together into
one V-model.
Parameters:
| Center: | enter of the cone.
|
|---|
| MajorRadius: | ajorRadius of the bottom base.
|
|---|
| MinorRadius: | ajorRadius of the bottom base.
|
|---|
| Height: | eight of the cone.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimCone2VMdl2
Keywords:
(vmdl_prim.c:365)
Prototype:
VMdlVModelStruct *VMdlPrimCone2VMdl2(const VMdlParamsStruct *Params,
const CagdVType Center,
CagdRType MajorRadius,
CagdRType MinorRadius,
CagdRType Height,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a generalized cone, composed of five extruded
V-cells, an inner cube, and four outer V-cells all glued together into
one V-model.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Center: | enter of the cone.
|
|---|
| MajorRadius: | ajorRadius of the bottom base.
|
|---|
| MinorRadius: | ajorRadius of the bottom base.
|
|---|
| Height: | eight of the cone.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimCone2VMdl
Keywords:
(vmdl_prim.c:326)
Prototype:
VMdlVModelStruct *VMdlPrimConeVMdl(const CagdVType Center,
CagdRType Radius,
CagdRType Height,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a cone, composed of five extruded V-cells, an
inner cube, and four outer V-cells all glued together into one V-model.
Parameters:
| Center: | enter of the cone.
|
|---|
| Radius: | adius of the base.
|
|---|
| Height: | eight of the cone.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimConeVMdl2
Keywords:
(vmdl_prim.c:278)
Prototype:
VMdlVModelStruct *VMdlPrimConeVMdl2(const VMdlParamsStruct *Params,
const CagdVType Center,
CagdRType Radius,
CagdRType Height,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a cone, composed of five extruded V-cells, an
inner cube, and four outer V-cells all glued together into one V-model.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Center: | enter of the cone.
|
|---|
| Radius: | adius of the base.
|
|---|
| Height: | eight of the cone.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimConeVMdl
Keywords:
(vmdl_prim.c:156)
Prototype:
VMdlVModelStruct *VMdlPrimCubeSphereVMdl(const CagdVType Center,
CagdRType Radius,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a sphere, composed of seven V-cells, a cube in
inside and other six spherical non-singular V-cells.
Parameters:
| Center: | enter of the sphere.
|
|---|
| Radius: | adius of the sphere.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimCubeSphereVMdl2
Keywords:
(vmdl_prim.c:111)
Prototype:
VMdlVModelStruct *VMdlPrimCubeSphereVMdl2(const VMdlParamsStruct *Params,
const CagdVType Center,
CagdRType Radius,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a sphere, composed of seven V-cells, a cube in
inside and other six spherical non-singular V-cells.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Center: | enter of the sphere.
|
|---|
| Radius: | adius of the sphere.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimCubeSphereVMdl
Keywords:
(vmdl_prim.c:501)
Prototype:
VMdlVModelStruct *VMdlPrimCylinderVMdl(const CagdVType Center,
CagdRType Radius,
CagdRType Height,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a cylinder, composed of five extruded V-cells, an
inner cube, and four outer V-cells all glued together into one V-model.
Parameters:
| Center: | enter of the cylinder.
|
|---|
| Radius: | adius of the base.
|
|---|
| Height: | eight of the cylinder.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimCylinderVMdl2
Keywords:
(vmdl_prim.c:453)
Prototype:
VMdlVModelStruct *VMdlPrimCylinderVMdl2(const VMdlParamsStruct *Params,
const CagdVType Center,
CagdRType Radius,
CagdRType Height,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a cylinder, composed of five extruded V-cells, an
inner cube, and four outer V-cells all glued together into one V-model.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Center: | enter of the cylinder.
|
|---|
| Radius: | adius of the base.
|
|---|
| Height: | eight of the cylinder.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimCylinderVMdl
Keywords:
(vmdl_prim.c:242)
Prototype:
VMdlVModelStruct *VMdlPrimTorusVMdl(const CagdVType Center,
CagdRType MajorRadius,
CagdRType MinorRadius,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a torus, composed of five V-cells of revolution,
an inner cube, and four outer V-cells all glued together into one
V-model. *
Parameters:
| Center: | enter of the torus.
|
|---|
| MajorRadius: | ajor radius.
|
|---|
| MinorRadius: | inor radius.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimTorusVMdl2
Keywords:
(vmdl_prim.c:193)
Prototype:
VMdlVModelStruct *VMdlPrimTorusVMdl2(const VMdlParamsStruct *Params,
const CagdVType Center,
CagdRType MajorRadius,
CagdRType MinorRadius,
CagdBType Rational,
CagdRType InternalCubeEdge)
Description:
Constructs V-model of a torus, composed of five V-cells of revolution,
an inner cube, and four outer V-cells all glued together into one
V-model. *
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Center: | enter of the torus.
|
|---|
| MajorRadius: | ajor radius.
|
|---|
| MinorRadius: | inor radius.
|
|---|
| Rational: | ndicates a rational or polynomial spline of the result.
|
|---|
| InternalCubeEdge: | nternal cube edge length.
If zero, a single trivariate is constructed that is
singular only on the boundary.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed V-model.
|
|---|
See Also:
VMdlPrimTorusVMdl
Keywords:
(vmdl_cnst.c:260)
Prototype:
VMdlVModelStruct *VMdlRuledTrimSrf(const TrimSrfStruct *TSrf1,
const CagdSrfStruct *Srf2,
int OtherOrder,
int OtherLen)
Description:
Computes a ruled V-model from an input trim surface and a surface.
Parameters:
| TSrf1: | Input trim surface.
|
|---|
| Srf2: | Input surface.
|
|---|
| OtherOrder: | sually two, but one can specify higher orders in the ruled
direction. OtherOrder must never be larger than OrderLen.
|
|---|
| OtherLen: | Usually two control points in the ruled direction which
necessitates a linear interpolation.
|
|---|
Returned Value:
| VMdlVModelStruct *: The ruled V-model.
|
|---|
Keywords:
(vmdl_cnst.c:151)
Prototype:
VMdlVModelStruct *VMdlRuledTrimSrfExtra(const VMdlParamsStruct *Params,
const TrimSrfStruct *TSrf1,
const CagdSrfStruct *Srf2,
int OtherOrder,
int OtherLen,
void *ExtraData)
Description:
Computes a ruled V-model from an input trim surface and a surface.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| TSrf1: | Input trim surface.
|
|---|
| Srf2: | Input surface.
|
|---|
| OtherOrder: | sually two, but one can specify higher orders in the ruled
direction. OtherOrder must never be larger than OrderLen.
|
|---|
| OtherLen: | Usually two control points in the ruled direction which
necessitates a linear interpolation.
|
|---|
| ExtraData: | Extra data to pass to the stitching function.
|
|---|
Returned Value:
| VMdlVModelStruct *: The ruled V-model.
|
|---|
Keywords:
(vmdl_bool.c:3846)
Prototype:
VMdlVModelBoolOpCBFuncType VMdlSetBoolOpCBFunc(
VMdlVModelBoolOpCBFuncType CBFunc)
Description:
Set global variable that controls a call back function to be invoked
at the end of each VModel Boolean operation with the two input VModel and
the resulting VModel.
Parameters:
| CBFunc: | The new (pointer to) function to use or NULl to disable.
|
|---|
Returned Value:
| VMdlVModelBoolOpCBFuncType: The previous (pointer to) function.
|
|---|
Keywords:
(vmdl_bool.c:3817)
Prototype:
CagdBType VMdlSetSplitPeriodicTV(CagdBType Split)
Description:
Set global variable that controls splitting periodic trivariates into
several non-periodic ones when converted to V-models.
Parameters:
| Split: | TRUE iff Split periodic TV when converted to V-model.
|
|---|
Returned Value:
| CagdBType: The current value.
|
|---|
Keywords:
(vmdl_aux.c:1111)
Prototype:
VMdlTSrfs2StitchedTSrfsFuncType VMdlSetStitchCallback(
VMdlTSrfs2StitchedTSrfsFuncType Func)
Description:
Sets the callback function for stitching trimmed surfaces into the
boundary of a V-element.
Parameters:
| Func: | New error stitching callback function.
|
|---|
Returned Value:
| VMdlTSrfs2StitchedTSrfsFuncType: Old stitching function reference.
|
|---|
Keywords:
(vmslicer.c:1065)
Prototype:
int VMdlSlicerAddGeom(const VMdlParamsStruct *Params,
VMdlSlicerInfoStruct *Info,
const IPObjectStruct *Geom,
int Priority)
Description:
Adds an (optional) container to the model to be sliced. This
container is assumed to hold the initialized model and serves as an
aquarium holding the model. Indeed, the container will typically be
transparent.
This function can only be invoked after the geometry was initialized and
before slicing has been commenced.
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| Info: | Initialized already slicing information.
|
|---|
| Geom: | additional geometry to initialize for the slicing.
|
|---|
| Priority: | The slicing priority of the geometry. The higher the value
wins - like closer to a viewer in a regular Z buffer.
|
|---|
Returned Value:
| int: TRUE if successful, FALSE otherwise.
|
|---|
See Also:
VMdlSlicerInitTrivMdl
VMdlSlicerAddGeom
VMdlSlicerInitVModel
VMdlSlicerInitVModelVElement
VMdlSlicerInitVElement
Keywords:
(vmslicer.c:1474)
Prototype:
void VMdlSlicerAssignValueToDataXY(VMdlSlicerInfoStruct *Info,
int x,
int y,
CagdRType *ValueBuf)
Description:
Given a VMdlSlicerInfoStruct, assign the value of the X,Y coordinates in
the slice image.
Parameters:
| Info: | The slicer info.
|
|---|
| x, y: | The coordinates in the images.
|
|---|
| ValueBuf: | The buffer into which the value will be assigned. Should
be able to contain at least four CagdBType.
|
|---|
Returned Value:
See Also:
VMdlSlicerSliceAtZLevel
Keywords:
(vmslicer.c:1579)
Prototype:
void VMdlSlicerAssignValueToImgXY(VMdlSlicerInfoStruct *Info,
int x,
int y,
VMdlSlicerOutputImageStruct *Img)
Description:
Given a VMdlSlicerInfoStruct, assign the value of the X,Y coordinates in
the slice image.
Parameters:
| Info: | The slicer info.
|
|---|
| x, y: | The coordinates in the images.
|
|---|
| Img: | The image struct, representing the slice.
|
|---|
Returned Value:
See Also:
VMdlSlicerSliceAtZLevel
Keywords:
(vmslicer.c:2857)
Prototype:
VMdlSlicerParamsStruct VMdlSlicerDefaultParams()
Description:
Creates a params struct with default values for the slicer.
Parameters:
Returned Value:
| VMdlSlicerParamsStruct: The default parameters for the slicer.
|
|---|
See Also:
Keywords:
(vmslicer.c:1252)
Prototype:
void VMdlSlicerFree(VMdlSlicerInfoStruct *Info)
Description:
Free the given slicer info.
Parameters:
| Info: | The slicing info to free.
|
|---|
Returned Value:
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerSliceAtZLevel
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
VMdlSlicerFree
Keywords:
(vmslicer.c:2783)
Prototype:
int VMdlSlicerGetCurrSliceXY(VMdlSlicerInfoStruct *Info,
int x,
int y,
CagdRType *Params,
CagdRType *Pos,
TrivTVStruct **TV)
Description:
Get the information for a single pixel in the slice.
Parameters:
| Info: | The slicer info.
|
|---|
| x: | X coordinate of slice pixel to get.
|
|---|
| y: | Y coordinate of slice pixel to get.
|
|---|
| Params: | The UVW parameter values for the pixel.
|
|---|
| Pos: | The position (of the center) of the pixel.
|
|---|
| TV: | The trivariate that covered this position, if any. If TV is
NULL, this parameter is ignored and not updated.
|
|---|
Returned Value:
| int: If in heterogeneous slicing mode (VMDL_SLICE_HETEROGENEOUS)
returns TRUE if the pixel is not empty, FALSE otherwise.
Otherwise, returns the TV index under this pixel if covered, or
-IRIT_MAX_INT if not covered.
|
|---|
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerSliceAtZLevel
VMdlSlicerFree
VMdlSlicerGeSliceSize
Keywords:
(vmslicer.c:2836)
Prototype:
void VMdlSlicerGetSliceSize(VMdlSlicerInfoStruct *Info, int *Size)
Description:
Returns the size (in pixels) of all slices.
Parameters:
| Info: | The slicer info.
|
|---|
| Size: | The size of the slices.
|
|---|
Returned Value:
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerSliceAtZLevel
VMdlSlicerGetCurrSliceXY
VMdlSlicerFree
Keywords:
(vmslicer.c:1667)
Prototype:
void VMdlSlicerImageGetPixel(const VMdlSlicerOutputImageStruct *Img,
int x,
int y,
void *PixelData)
Description:
Get the value of the pixel at the x, y coordinates from a given image,
and assign it to a given buffer. The buffer must be able to contain the
pixel struct of the image.
Parameters:
| Img: | The image struct.
|
|---|
| x, y: | The coordinates in the images.
|
|---|
| PixelData: | The data to assign to the pixel.
|
|---|
Returned Value:
See Also:
VMdlSlicerImageSetPixel
VMdlSlicerImageGetPixelPtr
VMdlSlicerImageGetPixelConstPtr
Keywords:
(vmslicer.c:1733)
Prototype:
const void *VMdlSlicerImageGetPixelConstPtr(
const VMdlSlicerOutputImageStruct *Img,
int x,
int y)
Description:
Get a pointer to the pixel at the x, y coordinates from a given image.
The returned pointer is const, so it cannot be used to assign data to the
image.
Parameters:
| Img: | The image struct.
|
|---|
| x, y: | The coordinates in the images.
|
|---|
Returned Value:
| const void *: A const pointer to the pixel at the x, y coordinates
of the image.
|
|---|
See Also:
VMdlSlicerImageGetPixelPtr
VMdlSlicerImageGetPixel
VMdlSlicerImageSetPixel
Keywords:
(vmslicer.c:1698)
Prototype:
void *VMdlSlicerImageGetPixelPtr(VMdlSlicerOutputImageStruct *Img,
int x,
int y)
Description:
Get a pointer to the pixel at the x, y coordinates from a given image.
The returned pointer is not const, so it can be used to assign data to the
image.
Parameters:
| Img: | The image struct.
|
|---|
| x, y: | The coordinates in the images.
|
|---|
Returned Value:
| void *: A pointer to the pixel at the x, y coordinates of the image.
|
|---|
See Also:
VMdlSlicerImageGetPixelConstPtr
VMdlSlicerImageGetPixel
VMdlSlicerImageSetPixel
Keywords:
(vmslicer.c:1634)
Prototype:
void VMdlSlicerImageSetPixel(VMdlSlicerOutputImageStruct *Img,
int x,
int y,
void *PixelData)
Description:
Assign a value to a pixel at the x, y coordinates in a given image. The
value must be the same data structure as the pixel type of the image.
Parameters:
| Img: | The image struct.
|
|---|
| x, y: | The coordinates in the images.
|
|---|
| PixelData: | The data to assign to the pixel.
|
|---|
Returned Value:
See Also:
VMdlSlicerImageGetPixel
VMdlSlicerImageGetPixelPtr
VMdlSlicerImageGetPixelConstPtr
Keywords:
(vmslicer.c:956)
Prototype:
VMdlSlicerInfoStruct *VMdlSlicerInitModel(
const MdlModelStruct *BMdl,
const VMdlSlicerParamsStruct *Params)
Description:
Init the parametric slicer info that can then be used to get the slices,
using only a model for boundaries (no heterogeneity here).
Parameters:
| BMdl: | Model for the boundary of the volume.
|
|---|
| Params: | The parameters for slicing operations.
|
|---|
Returned Value:
| VMdlSlicerInfoStruct *: The handle to the slicer information.
|
|---|
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitVModel
VMdlSlicerInitVModelVElement
VMdlSlicerFree
VMdlSlicerAddGeom
VMdlSlicerSliceAtZLevel
VMdlSlicerGetCurrSliceXY
VMdlSlicerInitTrivMdl
VMdlSlicerGeSliceSize
Keywords:
(vmslicer.c:918)
Prototype:
VMdlSlicerInfoStruct *VMdlSlicerInitTrivMdl(
const TrivTVStruct *Trivar,
const MdlModelStruct *BMdl,
const VMdlSlicerParamsStruct *Params)
Description:
Init the parametric slicer info that can then be used to get the slices,
using as a trivariate for the covering field, and a model for boundaries.
Parameters:
| Trivar: | The trivar.
|
|---|
| BMdl: | Model for the boundary of the volume.
|
|---|
| Params: | The parameters for slicing operations.
|
|---|
Returned Value:
| VMdlSlicerInfoStruct *: The handle to the slicer information.
|
|---|
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitVModel
VMdlSlicerInitVModelVElement
VMdlSlicerFree
VMdlSlicerAddGeom
VMdlSlicerSliceAtZLevel
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
Keywords:
(vmslicer.c:863)
Prototype:
VMdlSlicerInfoStruct *VMdlSlicerInitTrivar(
const TrivTVStruct *Trivars,
const VMdlSlicerParamsStruct *Params)
Description:
Init the parametric slicer info that can then be used to get the slices,
using trivariate(s), with the boundary surfaces used for boundaries.
Parameters:
| Trivars: | The trivars. One or more in a linked list.
|
|---|
| Params: | The parameters for slicing operations.
|
|---|
Returned Value:
| VMdlSlicerInfoStruct *: The handle to the slicer information.
|
|---|
See Also:
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerInitVModel
VMdlSlicerInitVModelVElement
VMdlSlicerFree
VMdlSlicerAddGeom
VMdlSlicerSliceAtZLevel
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
Keywords:
(vmslicer.c:635)
Prototype:
VMdlSlicerInfoStruct *VMdlSlicerInitVElement(
const VMdlParamsStruct *Params,
VMdlVolumeElementStruct *VolumeElement)
Description:
Init the parametric slicer info that can then be used to get the slices,
using a VCell.
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| VolumeElement: | The volume element.
|
|---|
Returned Value:
| VMdlSlicerInfoStruct *: The handle to the slicer information.
|
|---|
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitTrivMdl
VMdlSlicerInitVModel
VMdlSlicerInitVModelVElement
VMdlSlicerFree
VMdlSlicerAddGeom
VMdlSlicerSliceAtZLevel
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
Keywords:
(vmslicer.c:787)
Prototype:
VMdlSlicerInfoStruct *VMdlSlicerInitVModel(
const VMdlParamsStruct *Params,
const VMdlVModelStruct *VModel)
Description:
Init the parametric slicer info that can then be used to get the slices,
using all VCells in a VModel, simultaneously.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VModel: | The volume model.
|
|---|
Returned Value:
| VMdlSlicerInfoStruct *: The handle to the slicer information.
|
|---|
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitTrivMdl
VMdlSlicerInitVElement
VMdlSlicerInitVModelVElement
VMdlSlicerFree
VMdlSlicerAddGeom
VMdlSlicerSliceAtZLevel
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
Keywords:
(vmslicer.c:683)
Prototype:
VMdlSlicerInfoStruct *VMdlSlicerInitVModelVElement(
const VMdlParamsStruct *Params,
VMdlSlicerInfoStruct *RetIn,
const VMdlVModelStruct *VModel,
VMdlVolumeElementStruct *VolumeElement)
Description:
Init the parametric slicer info that can then be used to get the slices,
using all VCells in a VModel, one VCell at a time.
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| RetIn: | If provided, updates this info, instead of creating one.
|
|---|
| VModel: | The volume model.
|
|---|
| VolumeElement: | he volume element. NULL for first global initialization.
|
|---|
Returned Value:
| VMdlSlicerInfoStruct *: The handle to the slicer information.
|
|---|
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitTrivMdl
VMdlSlicerInitVElement
VMdlSlicerInitVModel
MVMdlSlicerFree
VMdlSlicerAddGeom
VMdlSlicerSliceAtZLevel
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
Keywords:
(vmslicer.c:2977)
Prototype:
void VMdlSlicerOutputImageFree(VMdlSlicerOutputImageStruct *Item)
Description:
Given a VMdlSlicerOutputImageStruct, it frees its memory.
Parameters:
| Item: | Pointer to the structure that needs to be freed.
|
|---|
Returned Value:
See Also:
VMdlSlicerOutputImageStruct
Keywords:
(vmslicer.c:2891)
Prototype:
void VMdlSlicerSaveImage(VMdlSlicerOutputImageStruct *Image,
const char *Output)
Description:
Given a VMdlSlicerOutputImageStruct, a file name for the output and the
resolution of the image, it prints the image at the address.
Parameters:
| Image: | Matrix storing the RGB values at each point.
|
|---|
| Output: | File name for saving the image.
|
|---|
Returned Value:
See Also:
VMdlSlicerOutputImageStruct
Keywords:
(vmslicer.c:1779)
Prototype:
VMdlSlicerOutputImageStruct *VMdlSlicerSliceAtZBatch(
const VMdlParamsStruct *Params,
VMdlSliceOpType SliceOper,
VMdlSlicerInfoStruct *Info,
CagdRType *ZVals,
int BatchSz)
Description:
Compute the slices at the given batch of Z heights. This function will
use parallel computation, if enabled.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| SliceOper: | for full (heterogeneous) slicing as an image.
This mode is not supported by this function.
1 for outline of slice as curves (Image name is ignored).
2 for outline of slice as an image.
3 for a cover set as linear curves.
4 for all covered pixels in the slice as an image.
|
|---|
| Info: | The slicer info.
|
|---|
| ZVals: | Z coordinate of slices.
|
|---|
| BatchSz: | The number of Z-values in the batch.
|
|---|
Returned Value:
| VMdlSlicerOutputImageStruct *: The images that result from the slicing
(array of size BatchSz).
|
|---|
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerFree
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
VMdlSlicerSliceAtZLevel
VMdlSlicerSliceAtZBatchToFiles
Keywords:
(vmslicer.c:1873)
Prototype:
VMdlSlicerOutputImageStruct *VMdlSlicerSliceAtZBatch2(
const VMdlParamsStruct *Params,
VMdlSliceOpType SliceOper,
VMdlSlicerInfoStruct *Info,
CagdRType ZMin,
CagdRType ZMax,
CagdRType ZStep)
Description:
Compute the slices at the given batch of Z heights. This function will
use parallel computation, if enabled.
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| SliceOper: | 0 for full (heterogeneous) slicing as an image.
This mode is not supported by this function.
1 for outline of slice as curves (Image name is ignored).
2 for outline of slice as an image.
3 for a cover set as linear curves.
4 for all covered pixels in the slice as an image.
|
|---|
| Info: | The slicer info.
|
|---|
| ZMin, ZMax, ZStep: | The Z coordinate to iterate along, of slices.
|
|---|
Returned Value:
| VMdlSlicerOutputImageStruct *: The images that result from the slicing.
is array is allocated dynamically and terminates with a zero size image:
Imgs[Last].Resolution[0] = Imgs[Last].Resolution[1] = 0.
|
|---|
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerFree
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
VMdlSlicerSliceAtZLevel
VMdlSlicerSliceAtZBatch
VMdlSlicerSliceAtZBatchToFiles
Keywords:
(vmslicer.c:1956)
Prototype:
void VMdlSlicerSliceAtZBatchToFiles(const VMdlParamsStruct *Params,
VMdlSliceOpType SliceOper,
VMdlSlicerInfoStruct *Info,
CagdRType *ZVals,
int BatchSz,
const char *FileNameBase)
Description:
Compute the slices at the given batch of Z heights, and save the images
to files. The file names follow a pattern based on FileNameBase, with a
number inserted before the extension.
This function will use parallel computation for slicing, if enabled, but
not for saving the files.
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| SliceOper: | 0 for full (heterogeneous) slicing as an image.
This mode is not supported by this function.
1 for outline of slice as curves (Image name is ignored).
2 for outline of slice as an image.
3 for a cover set as linear curves.
4 for all covered pixels in the slice as an image.
|
|---|
| Info: | The slicer info.
|
|---|
| ZVals: | Z coordinate of slices.
|
|---|
| BatchSz: | The number of Z-values in the batch.
|
|---|
| FileNameBase: | The base for the image file names.
|
|---|
Returned Value:
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerFree
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
VMdlSlicerSliceAtZLevel
VMdlSlicerSliceAtZBatch
VMdlSlicerSliceAtZBatchToFiles2
Keywords:
(vmslicer.c:2063)
Prototype:
void VMdlSlicerSliceAtZBatchToFiles2(const VMdlParamsStruct *Params,
VMdlSliceOpType SliceOper,
VMdlSlicerInfoStruct *Info,
CagdRType ZMin,
CagdRType ZMax,
CagdRType ZStep,
const char *FileNameBase)
Description:
Compute the slices at the given batch of Z heights, and save the images
to files. The file names follow a pattern based on FileNameBase, with a
number inserted before the extension.
This function will use parallel computation for slicing, if enabled, but
not for saving the files.
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| SliceOper: | 0 for full (heterogeneous) slicing as an image.
This mode is not supported by this function.
1 for outline of slice as curves (Image name is ignored).
2 for outline of slice as an image.
3 for a cover set as linear curves.
4 for all covered pixels in the slice as an image.
|
|---|
| Info: | The slicer info.
|
|---|
| ZMin, ZMax, ZStep: | The Z coordinate to iterate along, of slices.
|
|---|
| FileNameBase: | The base for the image file names.
|
|---|
Returned Value:
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerFree
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
VMdlSlicerSliceAtZLevel
VMdlSlicerSliceAtZBatch
VMdlSlicerSliceAtZBatchToFiles
Keywords:
(vmslicer.c:1300)
Prototype:
void VMdlSlicerSliceAtZLevel(const VMdlParamsStruct *Params,
VMdlSlicerInfoStruct *Info,
CagdRType z)
Description:
Compute the current slice at the given Z height.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Info: | The slicer info.
|
|---|
| z: | Z coordinate of slice.
|
|---|
Returned Value:
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerFree
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
VMdlSlicerSliceAtZLevel2
Keywords:
(vmslicer.c:2150)
Prototype:
IPObjectStruct *VMdlSlicerSliceAtZLevelCoverage(const VMdlParamsStruct *Params,
VMdlSliceOpType SliceOper,
VMdlSlicerInfoStruct *Info,
CagdRType z)
Description:
Compute the current outline or covering pixels of the slice at the given
Z height.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| SliceOper: | 0 for full (heterogeneous) slicing as an image.
This mode is not supported by this function.
1 for outline of slice as curves (Image name is ignored).
2 for outline of slice as an image.
3 for a cover set as linear curves.
4 for all covered pixels in the slice as an image.
|
|---|
| Info: | The slicer info.
|
|---|
| z: | Z coordinate of slice.
|
|---|
Returned Value:
| IPObjectStruct *: Sliced geometry or NULL if an image is computed.
|
|---|
See Also:
VMdlSlicerInitTrivar
VMdlSlicerInitVElement
VMdlSlicerInitTrivMdl
VMdlSlicerFree
VMdlSlicerGetCurrSliceXY
VMdlSlicerGeSliceSize
VMdlSlicerSliceAtZLevel
Keywords:
(vmdl_aux.c:360)
Prototype:
void VMdlSplitVModelInDir(const VMdlParamsStruct *Params,
VMdlVModelStruct *VM,
CagdRType Dx,
CagdRType Dy,
CagdRType Dz)
Description:
Explodes a given V-model in a given direction relative to its center,
in place.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VM: | V-model.
|
|---|
| Dx, Dy, Dz: | xplosion direction (Dx,Dy,Dz).
|
|---|
Returned Value:
Keywords:
(vmdl_bool.c:377)
Prototype:
int VMdlStitchMdlModel(const VMdlParamsStruct *Params, MdlModelStruct *Mdl)
Description:
Scans the given model for trimming curves that could be stitched
together. A pair of trimming curves can be stitched together if they
have the same Euclidean representation and they now have no neighbors.
Two trimming curves are considered with "same Euclidean representation"
if their end points are the same upto given tolerance (should probably do
somewhat better here).
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Mdl: | Model to seek trimming curves to stitch together, in place.
|
|---|
Returned Value:
| int: Number of trimming curves stitched together, in place.
|
|---|
See Also:
MdlStitchModel
Keywords:
(vmdl_subdv.c:3924)
Prototype:
VMdlSubdivParamsStruct VMdlSubdivDefaultParams()
Description:
Creates a params struct with default values for subdivision operations.
Parameters:
Returned Value:
| VMdlSubdivParamsStruct: The default parameters for subdivision
operations.
|
|---|
See Also:
Keywords:
(vmdl_subdv.c:2109)
Prototype:
VMdlVModelStruct *VMdlSubdivideVElemToBezierVElements(
const VMdlParamsStruct *Params,
const VMdlVolumeElementStruct *VElem,
const TrivTVStruct *InpTV)
Description:
Subdivide a given VElement into (trimmed) Bezier VModels by dividing at
all internal knots of a given trivariate TV. The result if a list of
VModels each containing one V-element.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VElem: | Input VElement.
|
|---|
| InpTV: | One of the trivariates enclosing VElem (If NULL, the first
TV will be used).
|
|---|
Returned Value:
| VMdlVModelStruct *: List of VModels, each contains one VElement with
trimmed Bezier trivariate, and associated with the
appropriate Bezier portion of TV, as well as the
a copy of the other original trivariates associated
with the given V-element (VElem).
|
|---|
Keywords:
(vmdl_subdv.c:1658)
Prototype:
VMdlVModelStruct *VMdlSubdivideVElement(const VMdlParamsStruct *Params,
VMdlVolumeElementStruct *VElem,
const TrivTVStruct *TV,
TrivTVDirType Dir,
IrtRType t,
IrtRType *OtherParamAttribVals,
CagdBType HandleKnotLineIntersections)
Description:
Subdivide a given VElement at a parametric value of one of its TVs.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VElem: | Input VElement.
|
|---|
| TV: | One of the trivariates enclosing VElem (If NULL, the first TV
will be used.
|
|---|
| Dir: | Direction of the subdivision.
|
|---|
| t: | Parametric value in the domain of TV to subdivide at.
|
|---|
| OtherParamAttribVals: | f not null, passed as UV attributes to the
subdivision iso-surface.
|
|---|
| HandleKnotLineIntersections: | f the subdivision can be at knot lines,
A different Srf-Srf intersection is used.
|
|---|
Returned Value:
| VMdlVModelStruct *: List of two VModels VElements after subdivision.
|
|---|
Keywords:
(vmdl_subdv.c:2224)
Prototype:
VMdlVModelStruct *VMdlSubdivideVMdlToBezierVElements(
const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl)
Description:
Subdivide a given V-model, assuming it contains only one V-element,
into (trimmed) Bezier VModels by dividing at all internal knots of a
given trivariate TV. The result is a list of VModels each containing
one V-element.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | Input V-model.
|
|---|
Returned Value:
| VMdlVModelStruct *: List of VModels, each contains one VElement
with trimmed Bezier trivariate, and associated with
the appropriate Bezier portion of TV, as well as the
a copy of the other original trivariates associated
with the given V-element (VElem).
|
|---|
Keywords:
(vmdl_subdv.c:2009)
Prototype:
VMdlVModelStruct *VMdlSubdivideVModel(const VMdlParamsStruct *Params,
VMdlVModelStruct *VMdl,
TrivTVDirType Dir,
IrtRType t)
Description:
Subdivide a given V-model, assuming having only one V-element, at a
parametric value of its first trivariate.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | V-model to subdivide.
|
|---|
| Dir: | Parametric direction of subdivision (of the TV in the
V-element).
|
|---|
| t: | Parametric value in the domain of TV to subdivide at.
|
|---|
Returned Value:
| VMdlVModelStruct *: List of VModels VElements after subdivision.
|
|---|
See Also:
Keywords:
(vmdl_cnst.c:847)
Prototype:
VMdlSweepParamsStruct VMdlSweepDefaultParams()
Description:
Creates a params struct with default values for boolean operations.
Parameters:
Returned Value:
| VMdlSweepParamsStruct: The default parameters for boolean operations.
|
|---|
See Also:
Keywords:
(vmdl_cnst.c:689)
Prototype:
VMdlVModelStruct *VMdlSweepTrimSrf(const TrimSrfStruct *TSrf,
const CagdCrvStruct *Axis,
const CagdCrvStruct *ScalingCrv,
CagdRType Scale,
const VoidPtr Frame,
int FrameOption)
Description:
Computes a trimmed sweep V-model from an input trim surface and sweep
information.
Parameters:
| TSrf: | Input trim surface.
|
|---|
| Axis: | Of the constructed sweep trivariate.
|
|---|
| ScalingCrv: | Optional scale or profile curve. NULL if none.
The Y axis of this curve is using as scaling as the
function of the parametrization. X axis can be used to
define a 2D parametric curve so this curve can be
displayed but X is ignored by this function.
|
|---|
| Scale: | If no Scaling Crv, Scale is used to apply a fixed scale
on the CrossSection curve.
|
|---|
| Frame: | An optional vector or a curve to specify the binormal
orientation. Otherwise, Frame must be NULL.
|
|---|
| FrameOption: | If 2 Frame is a curve, if 0 or 1 a vector (if Frame is
not NULL). If 0, the vector is used just to init the
first frame.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed sweep trimmed trivariate.
|
|---|
See Also:
CagdSweepSrf
CagdSweepAxisRefine
TrivSweepTV
Keywords:
sweep
trivariate constructors
(vmdl_cnst.c:735)
Prototype:
VMdlVModelStruct *VMdlSweepTrimSrfExtra(const VMdlParamsStruct *Params,
const TrimSrfStruct *TSrf,
const CagdCrvStruct *Axis,
const CagdCrvStruct *ScalingCrv,
CagdRType Scale,
const VoidPtr Frame,
int FrameOption,
void* ExtraData)
Description:
Computes a trimmed sweep V-model from an input trim surface and sweep
information.
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| TSrf: | Input trim surface.
|
|---|
| Axis: | Of the constructed sweep trivariate.
|
|---|
| ScalingCrv: | Optional scale or profile curve. NULL if none.
The Y axis of this curve is using as scaling as the
function of the parametrization. X axis can be used to
define a 2D parametric curve so this curve can be
displayed but X is ignored by this function.
|
|---|
| Scale: | If no Scaling Crv, Scale is used to apply a fixed scale
on the CrossSection curve.
|
|---|
| Frame: | An optional vector or a curve to specify the binormal
orientation. Otherwise, Frame must be NULL.
|
|---|
| FrameOption: | If 2 Frame is a curve, if 0 or 1 a vector (if Frame is
not NULL). If 0, the vector is used just to init the
first frame.
|
|---|
| ExtraData: | Extra data to pass to the stitching function.
|
|---|
Returned Value:
| VMdlVModelStruct *: Constructed sweep trimmed trivariate.
|
|---|
See Also:
CagdSweepSrf
CagdSweepAxisRefine
TrivSweepTV
VMdlSweepTrimSrf
Keywords:
sweep
trivariate constructors
(vmdl_dbg.c:160)
Prototype:
void VMdlTestMdlProps(MdlModelStruct *Mdl)
Description:
Tests Model object topological properties.
Parameters:
Returned Value:
Keywords:
(vmdl_subdv.c:3183)
Prototype:
TrivTVStruct *VMdlUntrimVModel(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl,
const TrivTVStruct *TV,
const TrivTVStruct *OriginalTV,
CagdBType InParamSpace,
int InvSrfApproxOrder,
CagdRType InvApproxErr)
Description:
Untrims a given V-model into a list of tensor product trivariates.
VMdl is assumed to be contained in a Bezier trivariate. And assumed to
have only one V-element.
Parameters:
| Params: | The general parameters of the module.
|
|---|
| VMdl: | V-model subdivision cache.
|
|---|
| TV: | The Bezier trivariate containing the V-model.
|
|---|
| OriginalTV: | he containing trivariate. Tthis will be identical to TV at
first call in case that VElem is originally from a Bezier
trivariate. The original trivariate could be a B-spline in
in case VElem is result of a subdivision to bezier elements.
|
|---|
| InParamSpace: | f the untrimming will be performed in the parametric
space (of OriginalTV).
|
|---|
| InvSrfApproxOrder: | he surfaces approximation order when inverting to
the parametric space or OriginalTV.
|
|---|
| InvApproxErr: | he desired approximation error in the inversion process.
|
|---|
Returned Value:
| TrivTVStruct *: List of trivariates tiling the V-model.
|
|---|
Keywords:
(vmdl_bool.c:3338)
Prototype:
CagdBBoxStruct *VMdlVModelBBox(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl,
CagdBBoxStruct *VMdlBBox,
int OnlyGeom)
Description:
Computes the bounding box of a V-model.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | The V-model.
|
|---|
| VMdlBBox: | Output parameter holding the result BBox.
|
|---|
| OnlyGeom: | TRUE for only geometry bbox, FALSE if higher dimensions to
be considered as well.
|
|---|
Returned Value:
| CagdBBoxStruct *: VMdlBBox.
|
|---|
Keywords:
(vmdl_bool.c:2801)
Prototype:
VMdlVModelStruct *VMdlVModelBoolOp(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdlA,
const VMdlVModelStruct *VMdlB,
VMdlBoolOpType OpType)
Description:
Performs Boolean operation between two V-models.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdlA: | First V-model.
|
|---|
| VMdlB: | Second V-model.
|
|---|
| OpType: | Boolean operation type.
|
|---|
Returned Value:
| VMdlVModelStruct *: Boolean operation V-model result.
|
|---|
Keywords:
(vmdl_gen.c:595)
Prototype:
VMdlVModelStruct *VMdlVModelCopy(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl)
Description:
Copies a V-model.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | A V-model to copy.
|
|---|
Returned Value:
| VMdlVModelStruct *: New copy of the given V-model.
|
|---|
Keywords:
(vmdl_aux.c:102)
Prototype:
VMdlVModelStruct *VMdlVModelCopyList(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdls)
Description:
Copies a list of V-models.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdls: | List of V-models to copy.
|
|---|
Returned Value:
| VMdlVModelStruct *: List of copied V-models, or NULL in case of failure.
|
|---|
Keywords:
(vmdl_gen.c:322)
Prototype:
void VMdlVModelFree(VMdlVModelStruct *Mdl)
Description:
Frees a V-model list.
Parameters:
| Mdl: | -model to deallocate.
|
|---|
Returned Value:
Keywords:
(vmdl_aux.c:81)
Prototype:
void VMdlVModelFreeList(VMdlVModelStruct *VMdls)
Description:
Frees a list of V-models.
Parameters:
Returned Value:
Keywords:
(vmdl_gen.c:1027)
Prototype:
VMdlVModelStruct *VMdlVModelFromVElement(const VMdlVolumeElementStruct *VElem,
CagdBType UseVElemInPlace)
Description:
Creates a new V-model having one (given) V-Element.
Parameters:
| VElem: | he V-element in the V-model.
|
|---|
| UseVElemInPlace: | f True, the VElem will be used in place, otherwise a
new (deep) copy of VElem will be created.
|
|---|
Returned Value:
| VMdlVModelStruct *: New V-model with VElem (or a copy of VElem) as its
V-element.
|
|---|
Keywords:
(vmdl_bool.c:2753)
Prototype:
VMdlVModelStruct *VMdlVModelIntersect(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdlA,
const VMdlVModelStruct *VMdlB)
Description:
Computes the intersection between two v-models.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdlA: | First V-model.
|
|---|
| VMdlB: | Second V-model.
|
|---|
Returned Value:
| VMdlVModelStruct *: Boolean operation V-model result.
|
|---|
Keywords:
(vmdl_aux.c:51)
Prototype:
CagdBBoxStruct *VMdlVModelListBBox(const VMdlParamsStruct *Params,
const VMdlVModelStruct *Mdls,
CagdBBoxStruct *CagdBbox,
int OnlyGeom)
Description:
Computes axis aligned bounding box of list of V-models.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Mdls: | List of V-models.
|
|---|
| CagdBbox: | utput parameter that will hold the bounding box.
|
|---|
| OnlyGeom: | RUE for only geometry bbox, FALSE if higher dimensions to
be considered as well.
|
|---|
Returned Value:
| CagdBBoxStruct *: CagdBbox.
|
|---|
Keywords:
(vmdl_bool.c:2650)
Prototype:
VMdlVModelStruct *VMdlVModelNegate(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl)
Description:
Negates the orientation of a given V-model.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | The V-model.
|
|---|
Returned Value:
| VMdlVModelStruct *: Negated V-model.
|
|---|
Keywords:
(vmdl_aux.c:446)
Prototype:
CagdBType VMdlVModelReplaceTV(VMdlVModelStruct *VMdl,
TrivTVStruct *OldTV,
const TrivTVStruct *NewTV)
Description:
Replaces a given trivariate that is part of the V-model structure with a
new one (can be used for refinement for example).
Note: the new trivariate is copied, and the old one is deallocated.
Parameters:
| VMdl: | The V-model to manipulate.
|
|---|
| OldTV: | The trivariate to replace. If NULL, the first trivariate of VMdl
will be used.
|
|---|
| NewTV: | The new trivariate.
|
|---|
Returned Value:
| CagdBType: TRUE iff the given trivariate is used in the given V-model,
FALSE if error.
|
|---|
Keywords:
(vmdl_bool.c:2730)
Prototype:
VMdlVModelStruct *VMdlVModelSubtract(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdlA,
const VMdlVModelStruct *VMdlB)
Description:
Subtraction operation between two V-models.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdlA: | First V-model.
|
|---|
| VMdlB: | Second V-model.
|
|---|
Returned Value:
| VMdlVModelStruct *: Boolean operation V-model result (VMdlA - VMdlB).
|
|---|
Keywords:
(vmdl_bool.c:2704)
Prototype:
VMdlVModelStruct *VMdlVModelSymDiff(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdlA,
const VMdlVModelStruct *VMdlB)
Description:
Symmetric difference operation between two V-models.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdlA: | First V-model.
|
|---|
| VMdlB: | Second V-model.
|
|---|
Returned Value:
| VMdlVModelStruct *: Boolean operation V-model result.
|
|---|
Keywords:
(vmdl_bool.c:3434)
Prototype:
void VMdlVModelTransform(const VMdlParamsStruct *Params,
VMdlVModelStruct *VMdl,
IrtHmgnMatType Mat)
Description:
Transforms a V-model by a transformation matrix.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdl: | The V-model.
|
|---|
| Mat: | Transformation matrix.
|
|---|
Returned Value:
Keywords:
(vmdl_bool.c:2776)
Prototype:
VMdlVModelStruct *VMdlVModelUnion(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdlA,
const VMdlVModelStruct *VMdlB)
Description:
Computes the intersection between two v-models.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| VMdlA: | First V-model.
|
|---|
| VMdlB: | Second V-model.
|
|---|
Returned Value:
| VMdlVModelStruct *: Boolean operation V-model result.
|
|---|
Keywords:
(vmdl_aux.c:1057)
Prototype:
CagdBType VMdlVModelsSame(const VMdlParamsStruct *Params,
const VMdlVModelStruct *VMdl1,
const VMdlVModelStruct *VMdl2)
Description:
Compare the two VMOdel for similarity.
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| VMdl1, VMdl2: | The two VModel to compare.
|
|---|
Returned Value:
| CagdBType: TRUE if VModels are the same, FALSE otherwise.
|
|---|
See Also:
CagdSrfsSame
CagdCrvsSame
MvarMVsSame
TrivTVSame.
Keywords:
(vmdl_bool.c:3405)
Prototype:
void VMdlVolElemenTransform(const VMdlParamsStruct *Params,
VMdlVolumeElementStruct *Element,
CagdRType *Trans, CagdRType Scale)
Description:
Transforms a V-cell by a translation and scale.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Element: | The V-cell.
|
|---|
| Trans: | Translation vector.
|
|---|
| Scale: | Uniform scale amount.
|
|---|
Returned Value:
Keywords:
(vmdl_bool.c:3278)
Prototype:
CagdBBoxStruct *VMdlVolElementBBox(const VMdlParamsStruct *Params,
const VMdlVolumeElementStruct *Element,
CagdBBoxStruct *VEBBox,
int OnlyGeom)
Description:
Computes the bounding box of a V-cell.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Element: | The V-cell.
|
|---|
| VEBBox: | Output parameter holding the result BBox.
|
|---|
| OnlyGeom: | TRUE for only geometry bbox, FALSE if higher dimensions to
be considered as well.
|
|---|
Returned Value:
| CagdBBoxStruct *: VEBBox.
|
|---|
Keywords:
(vmdl_bool.c:2333)
Prototype:
VMdlVModelStruct *VMdlVolElementFromBoundaryModel(
const VMdlParamsStruct *Params,
const MdlModelStruct *InBMdl,
VMdlInterTrivTVRefStruct *ElementTVsRefList)
Description:
Constructs a V-model containing one V-cell having a given boundary and
list of associated trivariates.
Parameters:
| Params: | The common parameters to VModel operations. If NULL,
default values are used.
|
|---|
| InBMdl: | Model object of the V-cell boundary surfaces.
|
|---|
| ElementTVsRefList: | eference list of trivariates.
|
|---|
Returned Value:
| VMdlVModelStruct *: The generated V-model.
|
|---|
Keywords:
(vmdl_bool.c:3375)
Prototype:
void VMdlVolElementMatTransform(const VMdlParamsStruct *Params,
VMdlVolumeElementStruct *Element,
IrtHmgnMatType TransMat)
Description:
Transforms a V-cell by a transformation matrix.
Parameters:
| Params: | The common parameters to VModel operations. If NULL, default
values are used.
|
|---|
| Element: | The V-cell.
|
|---|
| TransMat: | Transformation matrix.
|
|---|
Returned Value:
Keywords:
(vmdl_gen.c:628)
Prototype:
VMdlVolumeElementStruct *VMdlVolumeElementCopy(const VMdlVolumeElementStruct
*VolumeElement)
Description:
Copies a V-cell.
Parameters:
| VolumeElement: | V-cell to copy.
|
|---|
Returned Value:
| VMdlVolumeElementStruct *: New copy of the given V-cell.
|
|---|
Keywords:
(vmdl_gen.c:720)
Prototype:
VMdlVolumeElementStruct *VMdlVolumeElementDeepCopy(
const VMdlVolumeElementStruct *VElem)
Description:
Copies a V-cell (Deep copy - copies all related trivariates, V-surfaces,
V-curves, V-points).
Parameters:
Returned Value:
| VMdlVolumeElementStruct *: New copy of the given V-cell.
|
|---|
Keywords:
(vmvoxels.c:275)
Prototype:
CagdRType VMdlVxlAreaVxlVMdl(const VMdlVoxelVModelStruct *VxlVMdl,
const CagdRType IsoLevel)
Description:
Given a Voxel vmodel compute its surface area, at the given isolevel.
Computes marching cubes over the geometry and then compute the area.
Parameters:
| VxlVMdl: | A voxel vmodel to compute surface area at IsoLevel.
|
|---|
| IsoLevel: | The iso level at which to estimate the surface area.
|
|---|
Returned Value:
| CagdRType: The surface area.
|
|---|
See Also:
VMdlVxlGenVoxelVModel
VMdlVxlFreeVoxelVModel
VMdlVxlCopyVoxelVModel
VMdlVxlGetRealVoxelVolume
Keywords:
(vmvoxels.c:394)
Prototype:
VMdlVoxelVModelStruct *VMdlVxlCopyVoxelVModel(const VMdlVoxelVModelStruct
*VxlVMdl)
Description:
Copy a voxel vmodel.
Parameters:
| VxlVMdl: | Voxel vmodel to copy.
|
|---|
Returned Value:
| VMdlVoxelVModelStruct *: Copied Voxel model.
|
|---|
See Also:
VMdlVxlGenVoxelVModel
VMdlVxlFreeVoxelVModel
VMdlVxlGetRealVoxelVolume
Keywords:
(vmvoxels.c:430)
Prototype:
void VMdlVxlFreeVoxelVModel(VMdlVoxelVModelStruct *VxlVMdl)
Description:
Frees a voxel model.
Parameters:
| VxlVMdl: | Voxel vmodel to free.
|
|---|
Returned Value:
See Also:
VMdlVxlGenVoxelVModel
VMdlVxlCopyVoxelVModel
Keywords:
(vmvoxels.c:112)
Prototype:
VMdlVoxelVModelStruct *VMdlVxlGenVoxelVModel(const IPObjectStruct *Mdl,
VMdlSliceOpType SliceOper,
const CagdRType *Dims)
Description:
Builds a Voxel model from a given model and desired resolution.
Parameters:
| Mdl: | The model to slice.
|
|---|
| SliceOper: | 0 for full (heterogeneous) slicing as an image.
This mode is not supported by this function.
1 for outline of slice as curves (Image name is ignored).
2 for outline of slice as an image.
3 for all covered pixels in the slice as an image.
|
|---|
| Dims: | Resolution the slices as (XRes, YRes, ZRes).
|
|---|
Returned Value:
| VMdlVoxelVModelStruct *: Built Voxel vmodel, or NULL if error.
|
|---|
See Also:
VMdlVxlFreeVoxelVModel
VMdlVxlCopyVoxelVModel
VMdlVxlGetRealVoxelVolume
Keywords:
(vmvoxels.c:73)
Prototype:
CagdRType VMdlVxlGetRealVoxelVolume(const VMdlVoxelVModelStruct *VxlVMdl)
Description:
Given a Voxel vmodel, compute the volume of a single voxel.
Parameters:
| VxlVMdl: | A voxel vmodel to compute the volume of a single voxel.
|
|---|
Returned Value:
| CagdRType: The real volume of a single voxel.
|
|---|
See Also:
VMdlVxlGenVoxelVModel
VMdlVxlFreeVoxelVModel
VMdlVxlCopyVoxelVModel
Keywords:
(vmvoxels.c:224)
Prototype:
IPObjectStruct *VMdlVxlMrchCubeVxlVMdl(const VMdlVoxelVModelStruct *VxlVMdl,
const CagdRType IsoLevel)
Description:
Given a Voxel vmodel, compute marching cubes over it.
Parameters:
| VxlVMdl: | A voxel vmodel to compute marching cubes for.
|
|---|
| IsoLevel: | The iso level of the marching cubes to use.
|
|---|
Returned Value:
| IPObjectStruct *: Resulting marching cube model (a polygonal model).
|
|---|
See Also:
VMdlVxlGenVoxelVModel
VMdlVxlFreeVoxelVModel
VMdlVxlCopyVoxelVModel
VmdlVxlGetRealVoxelVolume
Keywords:
(vmvoxels.c:47)
Prototype:
int VMdlVxlPixelOnBndry(const VMdlVoxelVModelStruct *VxlVMdl,
int i,
int j,
int k)
Description:
Check if this give pixel, that is assumed inside, the voxel vmodel, is
on the boundary, by seeking outside (6-connectivity) neighboring pixels.
Parameters:
| VxlVMdl: | A voxel vmodel to test if the given voxel is on the boundary.
|
|---|
| i, j, k: | Indices of voxel in the volume.
|
|---|
Returned Value:
| int: TRUE if this pixel has neighbors that are outside the model.
|
|---|
See Also:
VMdlVxlGenVoxelVModel
VMdlVxlFreeVoxelVModel
VMdlVxlCopyVoxelVModel
VMdlVxlSimpleVoxelOffset
Keywords:
(vmvoxels.c:349)
Prototype:
VMdlVoxelVModelStruct *VMdlVxlSimpleVoxelOffset(const VMdlVoxelVModelStruct
*VxlVMdl,
int NumPixels)
Description:
Given a voxel vmodel, compute voxels offset.
Parameters:
| VxlVMdl: | A voxel vmodel to compute the offset in voxels.
|
|---|
| NumPixels: | How many pixels layers to remove in the offset.
|
|---|
Returned Value:
| VMdlVoxelVModelStruct *: The given voxel vmodel, after the offset,
or NULL if error.
|
|---|
See Also:
VMdlVxlGenVoxelVModel
VMdlVxlFreeVoxelVModel
VMdlVxlCopyVoxelVModel
VMdlVxlGetRealVoxelVolume
Keywords:
(vmvoxels.c:304)
Prototype:
CagdRType VMdlVxlVolumeVxlVMdl(const VMdlVoxelVModelStruct *VxlVMdl)
Description:
Given a Voxel vmodel compute its volume, by counting voxel...
Parameters:
| VxlVMdl: | A voxel vmodel to compute its volume.
|
|---|
Returned Value:
See Also:
VMdlVxlGenVoxelVModel
VMdlVxlFreeVoxelVModel
VMdlVxlCopyVoxelVModel
VMdlVxlGetRealVoxelVolume
Keywords:
(vmdl_dbg.c:126)
Prototype:
CagdBType VMdlWriteObjectToFile(IPObjectStruct *Obj,
const char *FileName,
CagdBType ShowOnGuIrit)
Description:
Writes an object to file and possibly opens it in GuIrit viewer.
Parameters:
| Obj: | rit object.
|
|---|
| FileName: | ave file name.
|
|---|
| ShowOnGuIrit: | o open the object in GuIrit.
|
|---|
Returned Value:
| CagdBType: TRUE in succeed, FALSE otherwise.
|
|---|
Keywords: