A list of trim boundaries defining a trim region.
#include <AlTrimRegion.h> class AlTrimRegion : public AlObject virtual ~AlTrimRegion(); virtual AlObject* copyWrapper() const; virtual AlObjectType type() const; AlDagNode* parentDagNode() const; AlTrimBoundary* firstBoundary() const; statusCode applyIteratorToBoundaries( AlIterator*, int& ) const; AlTrimRegion* nextRegion() const; statusCode nextRegionD(); AlTrimRegion* prevRegion() const; statusCode prevRegionD(); // Stuff to get surface information curveFormType uForm() const; curveFormType vForm() const; int uDegree() const; int vDegree() const; int uNumberOfSpans() const; int vNumberOfSpans() const; int uNumberOfCVs() const; int vNumberOfCVs() const; statusCode periodicToNonPeriodic( int, int ); statusCode periodicToNonPeriodic() const; statusCode CVsWorldPosition( double[], int[], int[])const; statusCode CVsAffectedPosition( const AlTM&, double[], int[], int[]) const; statusCode CVsUnaffectedPosition( double[], int[], int[])const; int uNumberOfKnots() const; int vNumberOfKnots() const; statusCode uKnotVector( double[] ) const; statusCode vKnotVector( double[] ) const; int uNumberOfCVsInclMultiples() const; int vNumberOfCVsInclMultiples() const; statusCode CVsWorldPositionInclMultiples( double[] ) const; statusCode CVsAffectedPositionInclMultiples( const AlTM&, double[] ) const; statusCode CVsUnaffectedPositionInclMultiples( double[] )const; int realuNumberOfKnots() const; int realvNumberOfKnots() const; statusCode realuKnotVector( double[] ) const; statusCode realvKnotVector( double[] ) const; statusCode eval(double,double,boolean,double P[3]=NULL, double Pu[3]=NULL, double Pv[3]=NULL, double n[3]=NULL,boolean=FALSE,boolean=FALSE ) const; statusCode persistentID( AlPersistentID *&id, int ut = 1 ); statusCode hasPersistentID( int ut = 1 ); statusCode setPersistentID( AlPersistentID &id, int ut );
This class defines a region of a surface’s parametric space that identifies an area of interest on a surface. It holds at least one AlTrimBoundary object. The first boundary on the list represents the outermost boundary of a trim region, and the rest represent the inner boundaries (holes) if there are any.
For each trim boundary, the surface is to the left of the boundary when viewed from above (hence a hole is to the right of the boundary).
For example, in this diagram we have a surface represented by As. Each additional letter is an island trimmed out of A and each would be a separate AlTrimRegion. The AlTrimRegion for A would have two AlTrimBoundaries, B would have three, and C, D, and E would have one each.
AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA AA AA AA BBBBBBBBBBB CCCCCCCCCC AA AA BBBBBBBBBBB CCCCCCCCCC AA AA BB BBBB AA AA BB EEE BBBBBBBBBBBBBBB AA AA BB EEE BBBB BB AA AA BB BBBB DDDDDDD BB AA AA BBBBBBBBBBB DDDDDDD BB AA AA BBBBBBBBBBB BB AA AA BBBBBBBBBBBBBBBBBBBBBB AA AA AA AAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAA
Deletes an AlTrimRegion wrapper object.
Returns an exact duplicate of this AlTrimRegion wrapper.
Returns the class identifier kTrimRegionType.
Gets the parent DagNode above this trim region. NULL is returned if there is no parent.
Returns the first trim boundary of a list of trim boundaries or NULL if this region has no boundaries.
Returns the next trim region. Returns NULL if there is no such trim region.
Destructively points this wrapper object to the next trim region. If there is no next trim region, then the object is left unchanged.
sSuccess - the wrapper now points to the next trim region
sFailure - there is no next trim region
sInvalidObject - the region is invalid
Returns the previous trim region. Returns NULL if there is no such trim region.
Destructively points this wrapper object to the previous trim region. If there is no previous trim region, then the object is left unchanged.
sSuccess - the wrapper now points to the previous trim region
sFailure - there is no previous trim region
sInvalidObject - the region is invalid
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
See the documentation for this function in AlSurface.
Applies an iterator to each trim region boundary.
< iter - the iterator to apply
> rc - the return value of the last application of the iterator
sSuccess - the iterator was successfully applied to each trim region boundary
sInvalidArgument - 'iter' was NULL
If an underlaying surface of the trim region is periodic, converts it to a non-periodic surface (closed surface) by making it have multiple end knots in the selected direction (u/v).
Note: this method modifies the underlaying surface of the trim region.
> u - change in u direction if u has the following value:
-1 make left (u0) end multiple
0 make both (u) ends multiple
1 make right(un) end multiple
> v - change in v direction if v has the following value:
-1 make left (v0) end multiple
0 make both (v) ends multiple
1 make right(vn) end multiple
sInvalidObject - the underlaying surface was invalid.
sFailure - the method did not succeed
sSuccess - the underlaying surface was converted to a non-periodic one in the u/v direction
If an underlying surface of the trim region is periodic, converts it to a non-periodic surface (closed surface) by making it have multiple end knots at both endpoints in u/v directions.
Note: this method modifies the underlying surface of the trim region.
sInvalidObject - the underlaying surface was invalid
sFailure - the method did not succeed
sSuccess - the underlaying surface was converted to a non-periodic one in both u and v directions
Returns a copy of the AlPersistentID associated with this face. For user type 1, persistent IDs are created if they do not exist already. For all other user types, persistent IDs are not created if they do not exist already, and the method fails. User types between 0 and 9999 are reserved. If you would like to reserve a block of user types please contact us.
< type - user type of the persistent ID desired
> id - a copy of the AlPersistentID
sSuccess - normal completion
sInvalidObject - the given object is not valid
Sets the values of the AlPersistentID associated with this node. This method only allows you to create persistent IDs with user types other than 1. If the persistent ID does not exist, it will be created.
User types between 0 and 9999 are reserved. If you would like to reserve a block of user types please contact us.
< type - user type of the persistent ID desired
> id - a copy of the AlPersistentID
sSuccess - normal completion
sInvalidObject - the given object is not valid
sInvalidArgument - the given userType is not valid
sFailure - the id did not exist or could not be created
Checks that the AlTrimRegion has a persistent ID associated with it.
< type - user type of the persistent ID desired
sSuccess - node has a persistent ID
sFailure - node does not have a persistent ID
sInvalidObject - the given object is not valid