public class TFISurface extends AbstractSurface<TFISurface>
Modified by: Joseph A. Huwaldt
GTOL
RESOURCES
Modifier and Type | Method and Description |
---|---|
TFISurface |
copy()
Returns a copy of this
TFISurface instance
allocated by the calling thread
(possibly on the stack). |
TFISurface |
copyToReal()
Return a copy of this object with any transformations or subranges removed
(applied).
|
boolean |
equals(java.lang.Object obj)
Compares the specified object with this
TIFSurface for equality. |
Point |
getBoundsMax()
Return the coordinate point representing the maximum bounding box corner (e.g.: max
X, max Y, max Z).
|
Point |
getBoundsMin()
Return the coordinate point representing the minimum bounding box corner of this
geometry element (e.g.: min X, min Y, min Z).
|
int |
getPhyDimension()
Returns the number of physical dimensions of the geometry element.
|
Point |
getRealPoint(double s,
double t)
Calculate a point on the surface for the given parametric position on the surface.
|
Curve |
getS0Curve()
Return the S=0 Boundary for this surface as a curve.
|
Curve |
getS1Curve()
Return the S=1 Boundary for this surface as a curve.
|
java.util.List<Vector<Length>> |
getSDerivatives(double s,
double t,
int grade,
boolean scaled)
Calculate all the derivatives from
0 to grade with
respect to parametric s-position on the surface for the given parametric position
on the surface, d^{grade}p(s,t)/d^{grade}s . |
Curve |
getT0Curve()
Return the T=0 Boundary for this surface as a curve.
|
Curve |
getT1Curve()
Return the T=1 Boundary for this surface as a curve.
|
java.util.List<Vector<Length>> |
getTDerivatives(double s,
double t,
int grade,
boolean scaled)
Calculate all the derivatives from
0 to grade with
respect to parametric t-position on the surface for the given parametric position
on the surface, d^{grade}p(s,t)/d^{grade}t . |
TFISurface |
getTransformed(GTransform transform)
Returns transformed version of this element.
|
Vector<Length> |
getTwistVector(double s,
double t)
Calculate the twist vector (d^2P/(ds*dt) = d(dP/ds)/dt) for this surface at the
specified position on this surface.
|
Unit<Length> |
getUnit()
Returns the unit in which this surface is stated.
|
int |
hashCode()
Returns the hash code for this
TFISurface . |
boolean |
isDegenerate(Parameter<Length> tol)
Return
true if this surface is degenerate (i.e.: has area less than
the specified tolerance squared). |
boolean |
isValid()
Return
true if this TFISurface contains valid and finite numerical
components. |
static TFISurface |
newInstance(Curve s0,
Curve t0,
Curve s1,
Curve t1)
Return a TFISurface made up of the specified boundary
Curve objects. |
static TFISurface |
newInstance(java.lang.String name,
Curve s0,
Curve t0,
Curve s1,
Curve t1)
Return a TFISurface made up of the specified boundary
Curve objects. |
static void |
recycle(TFISurface instance)
Recycles a case instance immediately (on the stack when executing in a
StackContext).
|
TFISurface |
reverseS()
Return a new surface that is identical to this one, but with the S-parameterization
reversed.
|
TFISurface |
reverseT()
Return a new surface that is identical to this one, but with the T-parameterization
reversed.
|
int |
size()
Returns the number of child-elements that make up this geometry element.
|
GeomList<TFISurface> |
splitAtS(double s)
Split this
SubrangeSurface at the specified parametric S-position returning
a list containing two new surfaces (a lower surface with smaller S-parametric
positions than "s" and an upper surface with larger S-parametric positions). |
GeomList<TFISurface> |
splitAtT(double t)
Split this
SubrangeSurface at the specified parametric T-position returning
a list containing two new surfaces (a lower surface with smaller T-parametric
positions than "t" and an upper surface with larger T-parametric positions). |
TFISurface |
to(Unit<Length> unit)
Returns the equivalent to this surface but stated in the specified unit.
|
TFISurface |
toDimension(int newDim)
Return the equivalent of this surface converted to the specified number of physical
dimensions.
|
NurbsSurface |
toNurbs(Parameter<Length> tol)
Return a NURBS surface representation of this surface to within the specified
tolerance.
|
javolution.text.Text |
toText()
Returns the text representation of this geometry element.
|
TFISurface |
transpose()
Return a new surface that is identical to this one but with the transpose of the
parameterization of this surface.
|
extractGrid, getArea, getArea, getArea, getClosest, getClosest, getClosest, getClosest, getClosest, getClosest, getCurve, getDerivatives, getFarthest, getFarthest, getFarthest, getGaussianCurvature, getGaussianCurvature, getLimitPoint, getMeanCurvature, getMeanCurvature, getNormal, getNormal, getParDimension, getPoint, getPoint, getRealPoint, getSCurve, getSDerivative, getSDerivative, getSDerivatives, getSDerivatives, getTangentPlane, getTangentPlane, getTCurve, getTDerivative, getTDerivative, getTDerivatives, getTDerivatives, getTwistVector, getVolume, getVolume, getVolume, gridToTolerance, intersect, intersect, intersect, intersect, intersect, isPlanar, isPlanar, splitAtS, splitAtT
addChangeListener, clone, compareTo, getAllUserData, getID, getName, getUserData, putAllUserData, putUserData, removeChangeListener, removeUserData, reset, setName, toString
addChangeListener, getAllUserData, getID, getName, getUserData, putAllUserData, putUserData, removeChangeListener, removeUserData, setName
public static TFISurface newInstance(Curve s0, Curve t0, Curve s1, Curve t1)
Curve
objects. It is
assumed that the boundary curves are ordered properly and that the end points are
coincident. No check for this is made.s0
- The curve that serves as the s=0 boundary of this surface. May not be
null.t0
- The curve that serves as the t=0 boundary of this surface. May not be
null.s1
- The curve that serves as the s=1 boundary of this surface. May not be
null.t1
- The curve that serves as the t=1 boundary of this surface. May not be
null.public static TFISurface newInstance(java.lang.String name, Curve s0, Curve t0, Curve s1, Curve t1)
Curve
objects. It is
assumed that the boundary curves are ordered properly and that the end points are
coincident. No check for this is made.name
- The name to be assigned to this surface (may be null
).s0
- The curve that serves as the s=0 boundary of this surface. May not be
null.t0
- The curve that serves as the t=0 boundary of this surface. May not be
null.s1
- The curve that serves as the s=1 boundary of this surface. May not be
null.t1
- The curve that serves as the t=1 boundary of this surface. May not be
null.public int getPhyDimension()
Curve
objects.public TFISurface toDimension(int newDim)
newDim
- The dimension of the surface to return.public int size()
public Point getRealPoint(double s, double t)
s
- 1st parametric dimension distance to calculate a point for (0.0 to 1.0
inclusive).t
- 2nd parametric dimension distance to calculate a point for (0.0 to 1.0
inclusive).java.lang.IllegalArgumentException
- if there is any problem with the parameter values.public java.util.List<Vector<Length>> getSDerivatives(double s, double t, int grade, boolean scaled)
0
to grade
with
respect to parametric s-position on the surface for the given parametric position
on the surface, d^{grade}p(s,t)/d^{grade}s
.
Example:
1st derivative (grade = 1), this returns [p(s,t), dp(s,t)/ds]
;
2nd derivative (grade = 2), this returns [p(s,t), dp(s,t)/ds, d^2p(s,t)/d^2s]
; etc.
getSDerivatives
in class AbstractSurface<TFISurface>
s
- 1st parametric dimension distance to calculate derivative for (0.0 to
1.0 inclusive).t
- 2nd parametric dimension distance to calculate derivative for (0.0 to
1.0 inclusive).grade
- The maximum grade to calculate the u-derivatives for (1=1st
derivative, 2=2nd derivative, etc)scaled
- Pass true
for properly scaled derivatives or
false
if the magnitude of the derivative vector is not
required -- this sometimes results in faster calculation times.java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.public java.util.List<Vector<Length>> getTDerivatives(double s, double t, int grade, boolean scaled)
0
to grade
with
respect to parametric t-position on the surface for the given parametric position
on the surface, d^{grade}p(s,t)/d^{grade}t
.
Example:
1st derivative (grade = 1), this returns [p(s,t), dp(s,t)/dt]
;
2nd derivative (grade = 2), this returns [p(s,t), dp(s,t)/dt, d^2p(s,t)/d^2t]
; etc.
getTDerivatives
in class AbstractSurface<TFISurface>
s
- 1st parametric dimension distance to calculate derivative for (0.0 to
1.0 inclusive).t
- 2nd parametric dimension distance to calculate derivative for (0.0 to
1.0 inclusive).grade
- The maximum grade to calculate the v-derivatives for (1=1st
derivative, 2=2nd derivative, etc)scaled
- Pass true
for properly scaled derivatives or
false
if the magnitude of the derivative vector is not
required -- this sometimes results in faster calculation times.java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.public Vector<Length> getTwistVector(double s, double t)
s
- 1st parametric dimension distance to calculate twist vector for (0.0 to
1.0 inclusive).t
- 2nd parametric dimension distance to calculate twist vector for (0.0 to
1.0 inclusive).java.lang.IllegalArgumentException
- if the parameter values are invalid.public TFISurface reverseS()
reverseT()
public TFISurface reverseT()
reverseS()
public TFISurface transpose()
transpose
in interface Surface<TFISurface>
transpose
in class AbstractSurface<TFISurface>
reverseT()
,
reverseS()
public GeomList<TFISurface> splitAtS(double s)
SubrangeSurface
at the specified parametric S-position returning
a list containing two new surfaces (a lower surface with smaller S-parametric
positions than "s" and an upper surface with larger S-parametric positions).s
- The S-parametric position where this surface should be split (must not be
0 or 1!).public GeomList<TFISurface> splitAtT(double t)
SubrangeSurface
at the specified parametric T-position returning
a list containing two new surfaces (a lower surface with smaller T-parametric
positions than "t" and an upper surface with larger T-parametric positions).t
- The T-parametric position where this surface should be split (must not be
0 or 1!).public Curve getT0Curve()
public Curve getT1Curve()
public Curve getS0Curve()
public Curve getS1Curve()
public TFISurface getTransformed(GTransform transform)
GeomTransform
and contains this element as a child.transform
- The transformation to apply to this geometry. May not be null.DimensionException
- if this point is not 3D.public Point getBoundsMin()
java.lang.IndexOutOfBoundsException
- if this list contains no geometry.public Point getBoundsMax()
java.lang.IndexOutOfBoundsException
- if this list contains no elements.public Unit<Length> getUnit()
public TFISurface to(Unit<Length> unit) throws ConversionException
unit
- the length unit of the surface to be returned. May not be null.ConversionException
- if the the input unit is not a length unit.public NurbsSurface toNurbs(Parameter<Length> tol)
tol
- The greatest possible difference between this surface and the NURBS
representation returned. May not be null.public boolean isValid()
true
if this TFISurface contains valid and finite numerical
components. A value of false
will be returned if any of the member
curves are not valid.public boolean isDegenerate(Parameter<Length> tol)
true
if this surface is degenerate (i.e.: has area less than
the specified tolerance squared).isDegenerate
in interface ParametricGeometry<TFISurface>
isDegenerate
in interface Surface<TFISurface>
isDegenerate
in class AbstractSurface<TFISurface>
tol
- The tolerance for determining if this surface is degenerate. May not be
null.public boolean equals(java.lang.Object obj)
TIFSurface
for equality.
Returns true if and only if both surfaces are of the same type and both contain the
same boundary curves in the same order.equals
in class AbstractGeomElement<TFISurface>
obj
- the object to compare with.true
if this surface is identical to that surface;
false
otherwise.public int hashCode()
TFISurface
.hashCode
in class AbstractGeomElement<TFISurface>
public TFISurface copyToReal()
public TFISurface copy()
TFISurface
instance
allocated
by the calling thread
(possibly on the stack).public javolution.text.Text toText()
toText
in interface GeomElement<TFISurface>
toText
in class AbstractGeomElement<TFISurface>
public static void recycle(TFISurface instance)
instance
- The instance to be recycled.