VMdlAddTrimSrfToVMdl

(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:

void


Keywords:




VMdlAllocInterTrimCurveSeg

(vmdl_gen.c:126)

Prototype:

  VMdlInterTrimCurveSegStruct *VMdlAllocInterTrimCurveSeg()


Description:

Allocated new V-curve.

Parameters:

None


Returned Value:

VMdlInterTrimCurveSegStruct *: New empty V-curve.


Keywords:




VMdlAllocInterTrimCurveSegLoopInSrf

(vmdl_gen.c:226)

Prototype:

  VMdlInterTrimCurveSegLoopInSrfStruct *VMdlAllocInterTrimCurveSegLoopInSrf()


Description:

Allocated new trimming curve in a half-V-surface trimming loop.

Parameters:

None


Returned Value:

VMdlInterTrimCurveSegLoopInSrfStruct *: New empty half-V-surface loop trimming curve.


Keywords:




VMdlAllocInterTrimCurveSegRef

(vmdl_gen.c:168)

Prototype:

  VMdlInterTrimCurveSegRefStruct *VMdlAllocInterTrimCurveSegRef()


Description:

Allocated new reference to a V-curve.

Parameters:

None


Returned Value:

VMdlInterTrimCurveSegRefStruct *: New empty V-curve reference.


Keywords:




VMdlAllocInterTrimPointRef

(vmdl_gen.c:245)

Prototype:

  VMdlInterTrimPointRefStruct *VMdlAllocInterTrimPointRef()


Description:

Allocated new reference to a V-point.

Parameters:

None


Returned Value:

VMdlInterTrimPointRefStruct *: New empty V-point reference.


Keywords:




VMdlAllocInterTrimSrf

(vmdl_gen.c:102)

Prototype:

  VMdlInterTrimSrfStruct *VMdlAllocInterTrimSrf()


Description:

Allocated new half-V-surface.

Parameters:

None


Returned Value:

VMdlInterTrimSrfStruct *: New empty half-V-surface.


Keywords:




VMdlAllocInterTrimSrfRef

(vmdl_gen.c:206)

Prototype:

  VMdlInterTrimSrfRefStruct *VMdlAllocInterTrimSrfRef()


Description:

Allocated new reference to a half-V-surface.

Parameters:

None


Returned Value:

VMdlInterTrimSrfRefStruct *: New empty half-V-surface reference.


Keywords:




VMdlAllocInterTrivTVRef

(vmdl_gen.c:187)

Prototype:

  VMdlInterTrivTVRefStruct *VMdlAllocInterTrivTVRef()


Description:

Allocated new reference to a trivariate.

Parameters:

None


Returned Value:

VMdlInterTrivTVRefStruct *: New empty trivariate reference.


Keywords:




VMdlAllocTrimInterPoint

(vmdl_gen.c:81)

Prototype:

  VMdlInterTrimPointStruct *VMdlAllocTrimInterPoint()


Description:

Allocated new V-point.

Parameters:

None


Returned Value:

VMdlInterTrimPointStruct *: New empty V-point.


Keywords:




VMdlAllocTrimVolumeElem

(vmdl_gen.c:58)

Prototype:

  VMdlVolumeElementStruct *VMdlAllocTrimVolumeElem()


Description:

Allocated new V-cell.

Parameters:

None


Returned Value:

VMdlVolumeElementStruct *: New empty V-cell.


Keywords:




VMdlAllocTrimVolumeElemRef

(vmdl_gen.c:149)

Prototype:

  VMdlVolumeElementRefStruct *VMdlAllocTrimVolumeElemRef()


Description:

Allocated new reference to a V-cell.

Parameters:

None


Returned Value:

VMdlVolumeElementRefStruct *: New empty V-cell reference.


Keywords:




VMdlAllocVModel

(vmdl_gen.c:33)

Prototype:

  VMdlVModelStruct *VMdlAllocVModel()


Description:

Allocated new empty V-model.

Parameters:

None


Returned Value:

VMdlVModelStruct *: New empty V-model.


Keywords:




VMdlApplyVSrfTrimmedLoopsOnSrf

(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:




VMdlApplyVSrfTrimmedLoopsOnSrfEps

(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:




VMdlBlendBoolTrivariates

(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:

void


See Also:

VMdlBlendPrepStruct VMdlBlendPointStruct VMdlBlendBoolTrivariatesVElem

Keywords:




VMdlBlendBoolTrivariatesVElem

(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:

void


See Also:

VMdlBlendPrepStruct VMdlBlendPointStruct VMdlBlendBoolTrivariates

Keywords:




VMdlBlendComputeDistCoordinates

(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:

void


See Also:

VMdlBlendPrepStruct ENDWEIGHTS: distance-based

Keywords:




VMdlBlendCoordPrep

(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:




VMdlBlendCoordPrepFree

(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:

void


See Also:

VMdlBlendPrepStruct

Keywords:




VMdlBlendDflt1DPropertyFunction

(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


VMdlBlendDflt3DPropertyFunction

(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


VMdlBlendDfltRGBPropertyFunction

(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


VMdlBlendFilletComputeCoordinates

(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:

void


See Also:

VMdlBlendPrepStruct Shepard ENDWEIGHTS: Shepard

Keywords:




VMdlBlendFilletCoordPrep

(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:




VMdlBlendFilletDflt1DPropertyFunction

(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


VMdlBlendFilletDflt3DPropertyFunction

(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


VMdlBlendFilletDfltRGBPropertyFunction

(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


VMdlBlendFilletFree

(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:

void


See Also:

VMdlBlendFilletStruct

Keywords:




VMdlBlendFilletPropertiesPerPoint

(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


VMdlBlendFilletPropertiesSlice

(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:




VMdlBlendInIntersection

(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:




VMdlBlendPointFree

(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:

void


See Also:

VMdlBlendPointStruct

Keywords:




VMdlBlendPointListFree

(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:

void


See Also:

VMdlBlendPointStruct VMdlBlendPointFree

Keywords:




VMdlBlendPointStructInit

(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:




VMdlBlendPropertiesPerPoint

(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


VMdlBlendPropertiesSlice

(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:




VMdlBlendPropertiesSliceOneBatch

(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:




VMdlBlendVCellPropertiesPerPoint

(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:




VMdlBlendVCellPropertiesSlice

(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:




VMdlBlendVElemComputeDistCoordinates

(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:

void


See Also:

VMdlBlendPrepStruct distance-based coordinates VMdlVolumeElementStruct

Keywords:




VMdlBoolDefaultParams

(vmdl_bool.c:3872)

Prototype:

  VMdlBoolParamsStruct VMdlBoolDefaultParams()


Description:

Creates a params struct with default values for boolean operations.

Parameters:

None


Returned Value:

VMdlBoolParamsStruct: The default parameters for boolean operations.


Keywords:




VMdlBuildFinalVModel

(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:




VMdlBuildMdlFromSurfaces

(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:




VMdlBuildModelFromTVBndries

(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:




VMdlCalcMdlEuclCrvs

(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:

void


Keywords:




VMdlCheckVElementConnectivity

(vmdl_dbg.c:213)

Prototype:

  CagdBType VMdlCheckVElementConnectivity(const VMdlVolumeElementStruct
                                                                    *VMdlElement)


Description:

Tests connectivity validity of a V-cell (V-Element).

Parameters:

VMdlElement: The V-cell.


Returned Value:

CagdBType: Success iff the connectivity of the V-cell is valid.


Keywords:




VMdlClipVModelByPlane

(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:




VMdlCnvrtSrf2VMdl

(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:




VMdlCnvrtTrimmedSrf2VMdl

(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:




VMdlCnvrtTrivar2VMdl

(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:




VMdlCnvrtTrivarList2VMdl

(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:




VMdlCnvrtVMdl2Mdl

(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:




VMdlCnvrtVMdl2TrimmedSrfs

(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:




VMdlCnvrtVMdls2Mdls

(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:




VMdlCnvrtVMdls2TrimmedSrfs

(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:




VMdlCnvrtVSrf2TrimmedSrf

(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:




VMdlCreateFillet

(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:

void.


See Also:

TrivTVFillet

Keywords:

trivariates blending filleting


VMdlCreateFillet2

(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


VMdlDbg

(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:

void


Keywords:

debugging


VMdlDebugVerify

(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:




VMdlDebugVerifyPrint

(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:

void


See Also:

VMdlDebugVerify

Keywords:




VMdlDefaultParams

(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:

void


See Also:



Keywords:




VMdlEncDflt1DVectorField

(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:




VMdlEncDflt3DVectorField

(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:




VMdlEncDfltRGBVectorField

(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:




VMdlEncPropertyFunctionError

(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:




VMdlEncRetrieveProperties

(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


VMdlEncVModelVectorFieldError

(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:




VMdlEvalEuclidCrvsForTrimCrvs

(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:

void


Keywords:




VMdlExtractTrimCrvLoop

(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:




VMdlExtractVElements

(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:




VMdlExtrudeTrimSrf

(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:




VMdlExtrudeTrimSrfExtra

(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:




VMdlFilletDefaultParams

(vmdl_fillet.c:1004)

Prototype:

  VMdlFilletParamsStruct VMdlFilletDefaultParams()


Description:

Creates a params struct with default values for filleting.

Parameters:

None


Returned Value:

VMdlFilletParamsStruct: The default parameters for for filleting.


See Also:



Keywords:

sweep trivariate constructors


VMdlFreeInterTrimCurveSeg

(vmdl_gen.c:414)

Prototype:

  void VMdlFreeInterTrimCurveSeg(VMdlInterTrimCurveSegStruct *VTrimCrv)


Description:

Frees a V-curve.

Parameters:

VTrimCrv: -curve to deallocate.


Returned Value:

void


Keywords:




VMdlFreeInterTrimCurveSegLoopInSrf

(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:

void


Keywords:




VMdlFreeInterTrimCurveSegRef

(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:

void


Keywords:




VMdlFreeInterTrimPnt

(vmdl_gen.c:368)

Prototype:

  void VMdlFreeInterTrimPnt(VMdlInterTrimPointStruct *VTrimPnt)


Description:

Frees a V-point.

Parameters:

VTrimPnt: To deallocate.


Returned Value:

void


Keywords:




VMdlFreeInterTrimPointRef

(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:

void


Keywords:




VMdlFreeInterTrimSrf

(vmdl_gen.c:386)

Prototype:

  void VMdlFreeInterTrimSrf(VMdlInterTrimSrfStruct *VTrimSrf)


Description:

Frees a half-V-surface.

Parameters:

VTrimSrf: alf-V-surface to deallocate.


Returned Value:

void


Keywords:




VMdlFreeInterTrimSrfRef

(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:

void


Keywords:




VMdlFreeInterTrivTVRef

(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:

void


Keywords:




VMdlFreeOneModel

(vmdl_gen.c:264)

Prototype:

  static void VMdlFreeOneModel(VMdlVModelStruct *Mdl)


Description:

Frees a V-model.

Parameters:

Mdl: -model to deallocate.


Returned Value:

void


Keywords:




VMdlFreeTrimVolElem

(vmdl_gen.c:345)

Prototype:

  void VMdlFreeTrimVolElem(VMdlVolumeElementStruct *VCell)


Description:

Frees a V-cell.

Parameters:

VCell: -cell to deallocate.


Returned Value:

void


Keywords:




VMdlFreeTrimVolumeElemRef

(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:

void


Keywords:




VMdlFromBoundaryModel

(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:




VMdlGetBndryVElement

(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:




VMdlGetBoundaryCurves

(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:

Mdl: he V-model.


Returned Value:

CagdCrvStruct *: List of curves.


Keywords:




VMdlGetBoundarySurfaces2

(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:




VMdlGetBoundaryVModel

(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:




VMdlGetOuterBoundarySurfacesVModel

(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:




VMdlGetStitchCallback

(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:

None


Returned Value:

VMdlTSrfs2StitchedTSrfsFuncType: The stitching function reference.


Keywords:




VMdlGetTVBoundarySrf

(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:




VMdlGetTVBoundarySrfEps

(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:




VMdlGlueVModels2

(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:

void


Keywords:




VMdlGlueVModelsAppend

(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:




VMdlInterTrimCurveSegCopy

(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:




VMdlInterTrimCurveSegLoopInSrfCopy

(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:




VMdlInterTrimPointCopy

(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:




VMdlInterTrimSrfSCopy

(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:




VMdlIsNonTrimmedVCell

(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:




VMdlIsNonTrimmedVCellOfTV

(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:




VMdlIsNonTrimmedVModel

(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:




VMdlIsTVBoundaryVSrf

(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:




VMdlOfRevAxisTrimSrf

(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


VMdlOfRevAxisTrimSrfExtra

(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


VMdlOfRevTrimSrf

(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:




VMdlOfRevTrimSrfExtra

(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:




VMdlPrimBoxVMdl

(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:




VMdlPrimBoxVMdl2

(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:




VMdlPrimCone2VMdl

(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:




VMdlPrimCone2VMdl2

(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:




VMdlPrimConeVMdl

(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:




VMdlPrimConeVMdl2

(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:




VMdlPrimCubeSphereVMdl

(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:




VMdlPrimCubeSphereVMdl2

(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:




VMdlPrimCylinderVMdl

(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:




VMdlPrimCylinderVMdl2

(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:




VMdlPrimTorusVMdl

(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:




VMdlPrimTorusVMdl2

(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:




VMdlRuledTrimSrf

(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:




VMdlRuledTrimSrfExtra

(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:




VMdlSetBoolOpCBFunc

(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:




VMdlSetSplitPeriodicTV

(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:




VMdlSetStitchCallback

(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:




VMdlSlicerAddGeom

(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:




VMdlSlicerAssignValueToDataXY

(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:

void


See Also:

VMdlSlicerSliceAtZLevel

Keywords:




VMdlSlicerAssignValueToImgXY

(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:

void


See Also:

VMdlSlicerSliceAtZLevel

Keywords:




VMdlSlicerDefaultParams

(vmslicer.c:2857)

Prototype:

  VMdlSlicerParamsStruct VMdlSlicerDefaultParams()


Description:

Creates a params struct with default values for the slicer.

Parameters:

None


Returned Value:

VMdlSlicerParamsStruct: The default parameters for the slicer.


See Also:



Keywords:




VMdlSlicerFree

(vmslicer.c:1252)

Prototype:

  void VMdlSlicerFree(VMdlSlicerInfoStruct *Info)


Description:

Free the given slicer info.

Parameters:

Info: The slicing info to free.


Returned Value:

void.


See Also:

VMdlSlicerInitTrivar VMdlSlicerInitVElement VMdlSlicerInitTrivMdl VMdlSlicerSliceAtZLevel VMdlSlicerGetCurrSliceXY VMdlSlicerGeSliceSize VMdlSlicerFree

Keywords:




VMdlSlicerGetCurrSliceXY

(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:




VMdlSlicerGetSliceSize

(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:

void


See Also:

VMdlSlicerInitTrivar VMdlSlicerInitVElement VMdlSlicerInitTrivMdl VMdlSlicerSliceAtZLevel VMdlSlicerGetCurrSliceXY VMdlSlicerFree

Keywords:




VMdlSlicerImageGetPixel

(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:

void


See Also:

VMdlSlicerImageSetPixel VMdlSlicerImageGetPixelPtr VMdlSlicerImageGetPixelConstPtr

Keywords:




VMdlSlicerImageGetPixelConstPtr

(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:




VMdlSlicerImageGetPixelPtr

(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:




VMdlSlicerImageSetPixel

(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:

void


See Also:

VMdlSlicerImageGetPixel VMdlSlicerImageGetPixelPtr VMdlSlicerImageGetPixelConstPtr

Keywords:




VMdlSlicerInitModel

(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:




VMdlSlicerInitTrivMdl

(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:




VMdlSlicerInitTrivar

(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:




VMdlSlicerInitVElement

(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:




VMdlSlicerInitVModel

(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:




VMdlSlicerInitVModelVElement

(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:




VMdlSlicerOutputImageFree

(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:

void


See Also:

VMdlSlicerOutputImageStruct

Keywords:




VMdlSlicerSaveImage

(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:

void


See Also:

VMdlSlicerOutputImageStruct

Keywords:




VMdlSlicerSliceAtZBatch

(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:




VMdlSlicerSliceAtZBatch2

(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:




VMdlSlicerSliceAtZBatchToFiles

(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:

void


See Also:

VMdlSlicerInitTrivar VMdlSlicerInitVElement VMdlSlicerInitTrivMdl VMdlSlicerFree VMdlSlicerGetCurrSliceXY VMdlSlicerGeSliceSize VMdlSlicerSliceAtZLevel VMdlSlicerSliceAtZBatch VMdlSlicerSliceAtZBatchToFiles2

Keywords:




VMdlSlicerSliceAtZBatchToFiles2

(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:

void


See Also:

VMdlSlicerInitTrivar VMdlSlicerInitVElement VMdlSlicerInitTrivMdl VMdlSlicerFree VMdlSlicerGetCurrSliceXY VMdlSlicerGeSliceSize VMdlSlicerSliceAtZLevel VMdlSlicerSliceAtZBatch VMdlSlicerSliceAtZBatchToFiles

Keywords:




VMdlSlicerSliceAtZLevel

(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:

void


See Also:

VMdlSlicerInitTrivar VMdlSlicerInitVElement VMdlSlicerInitTrivMdl VMdlSlicerFree VMdlSlicerGetCurrSliceXY VMdlSlicerGeSliceSize VMdlSlicerSliceAtZLevel2

Keywords:




VMdlSlicerSliceAtZLevelCoverage

(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:




VMdlSplitVModelInDir

(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:

void


Keywords:




VMdlStitchMdlModel

(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:




VMdlSubdivDefaultParams

(vmdl_subdv.c:3924)

Prototype:

  VMdlSubdivParamsStruct VMdlSubdivDefaultParams()


Description:

Creates a params struct with default values for subdivision operations.

Parameters:

None


Returned Value:

VMdlSubdivParamsStruct: The default parameters for subdivision operations.


See Also:



Keywords:




VMdlSubdivideVElemToBezierVElements

(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:




VMdlSubdivideVElement

(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:




VMdlSubdivideVMdlToBezierVElements

(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:




VMdlSubdivideVModel

(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:




VMdlSweepDefaultParams

(vmdl_cnst.c:847)

Prototype:

  VMdlSweepParamsStruct VMdlSweepDefaultParams()


Description:

Creates a params struct with default values for boolean operations.

Parameters:

None


Returned Value:

VMdlSweepParamsStruct: The default parameters for boolean operations.


See Also:



Keywords:




VMdlSweepTrimSrf

(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


VMdlSweepTrimSrfExtra

(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


VMdlTestMdlProps

(vmdl_dbg.c:160)

Prototype:

  void VMdlTestMdlProps(MdlModelStruct *Mdl)


Description:

Tests Model object topological properties.

Parameters:

Mdl: odel object.


Returned Value:

void


Keywords:




VMdlUntrimVModel

(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:




VMdlVModelBBox

(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:




VMdlVModelBoolOp

(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:




VMdlVModelCopy

(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:




VMdlVModelCopyList

(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:




VMdlVModelFree

(vmdl_gen.c:322)

Prototype:

  void VMdlVModelFree(VMdlVModelStruct *Mdl)


Description:

Frees a V-model list.

Parameters:

Mdl: -model to deallocate.


Returned Value:

void


Keywords:




VMdlVModelFreeList

(vmdl_aux.c:81)

Prototype:

  void VMdlVModelFreeList(VMdlVModelStruct *VMdls)


Description:

Frees a list of V-models.

Parameters:

VMdls: ist of V-models.


Returned Value:

void


Keywords:




VMdlVModelFromVElement

(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:




VMdlVModelIntersect

(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:




VMdlVModelListBBox

(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:




VMdlVModelNegate

(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:




VMdlVModelReplaceTV

(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:




VMdlVModelSubtract

(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:




VMdlVModelSymDiff

(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:




VMdlVModelTransform

(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:

void


Keywords:




VMdlVModelUnion

(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:




VMdlVModelsSame

(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:




VMdlVolElemenTransform

(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:

void


Keywords:




VMdlVolElementBBox

(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:




VMdlVolElementFromBoundaryModel

(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:




VMdlVolElementMatTransform

(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:

void


Keywords:




VMdlVolumeElementCopy

(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:




VMdlVolumeElementDeepCopy

(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:

VElem: A V-cell to copy.


Returned Value:

VMdlVolumeElementStruct *: New copy of the given V-cell.


Keywords:




VMdlVxlAreaVxlVMdl

(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:




VMdlVxlCopyVoxelVModel

(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:




VMdlVxlFreeVoxelVModel

(vmvoxels.c:430)

Prototype:

  void VMdlVxlFreeVoxelVModel(VMdlVoxelVModelStruct *VxlVMdl)


Description:

Frees a voxel model.

Parameters:

VxlVMdl: Voxel vmodel to free.


Returned Value:

void


See Also:

VMdlVxlGenVoxelVModel VMdlVxlCopyVoxelVModel

Keywords:




VMdlVxlGenVoxelVModel

(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:




VMdlVxlGetRealVoxelVolume

(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:




VMdlVxlMrchCubeVxlVMdl

(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:




VMdlVxlPixelOnBndry

(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:




VMdlVxlSimpleVoxelOffset

(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:




VMdlVxlVolumeVxlVMdl

(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:

CagdRType: The volume.


See Also:

VMdlVxlGenVoxelVModel VMdlVxlFreeVoxelVModel VMdlVxlCopyVoxelVModel VMdlVxlGetRealVoxelVolume

Keywords:




VMdlWriteObjectToFile

(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: