T
- The sub-type of this Surface element.public interface Surface<T extends Surface> extends GeomElement<T>, ParametricGeometry<T>, Transformable<T>
GeomElement
objects that are surfaces with 2
parametric dimensions.
Modified by: Joseph A. Huwaldt
Modifier and Type | Method and Description |
---|---|
T |
copy()
Returns a copy of this ParametricGeometry instance
allocated by the calling thread
(possibly on the stack). |
PointArray<SubrangePoint> |
extractGrid(GridRule gridRule,
java.util.List<java.lang.Double> bottomSpacing,
java.util.List<java.lang.Double> topSpacing,
java.util.List<java.lang.Double> leftSpacing,
java.util.List<java.lang.Double> rightSpacing)
Return an array of SubrangePoint objects that are gridded onto the surface using
the specified spacings and gridding rule.
|
Parameter<Area> |
getArea(double eps)
Return the surface area of this entire surface.
|
Parameter<Area> |
getArea(double s1,
double t1,
double s2,
double t2,
double eps)
Return the surface area of a portion of this surface.
|
Parameter<Area> |
getArea(GeomPoint st1,
GeomPoint st2,
double eps)
Return the surface area of a portion of this surface.
|
PointString<SubrangePoint> |
getClosest(Curve curve,
double tol)
Returns the closest points (giving the minimum distance) between this surface and
the specified curve.
|
SubrangePoint |
getClosest(GeomPlane plane,
double tol)
Returns the closest point (giving the minimum distance) between this surface and
the specified plane.
|
SubrangePoint |
getClosest(GeomPoint point,
double tol)
Returns the closest point on this surface to the specified point.
|
SubrangePoint |
getClosest(GeomPoint point,
double nearS,
double nearT,
double tol)
Returns the closest point on this surface to the specified point near the specified
parametric position.
|
PointArray<SubrangePoint> |
getClosest(java.util.List<? extends java.util.List<GeomPoint>> points,
double tol)
Returns the array of closest points on this surface to the specified array (list of
lists) of points.
|
PointString<SubrangePoint> |
getClosest(Surface surface,
double tol)
Returns the closest points (giving the minimum distance) between this surface and
the specified surface.
|
SubrangeCurve |
getCurve(Curve pcrv)
Return a subrange curve on the surface for the given parametric position curve.
|
java.util.List<java.util.List<Vector<Length>>> |
getDerivatives(GeomPoint st,
int grade)
Calculate all the derivatives from
0 to grade with
respect to parametric position(s) on a parametric object for the given parametric
position on the object, d^{grade}p(s)/d^{grade}s . |
SubrangePoint |
getFarthest(GeomPoint point,
double tol)
Returns the farthest point on this surface from the specified point.
|
SubrangePoint |
getFarthest(GeomPoint point,
double nearS,
double nearT,
double tol)
Returns the farthest point on this surface from the specified point near the
specified parametric position on the surface.
|
PointArray<SubrangePoint> |
getFarthest(java.util.List<? extends java.util.List<GeomPoint>> points,
double tol)
Returns the array of farthest points on this surface from the specified array (list
of lists) of points.
|
Parameter |
getGaussianCurvature(double s,
double t)
Returns the Gaussian Curvature for this surface at the given parametric position
(s,t) on this surface.
|
Parameter |
getGaussianCurvature(GeomPoint st)
Returns the Gaussian Curvature for this surface at the given parametric position
(s,t) on this surface.
|
Parameter |
getMeanCurvature(double s,
double t)
Returns the Mean Curvature for this surface at the given parametric position (s,t)
on this surface.
|
Parameter |
getMeanCurvature(GeomPoint st)
Returns the Mean Curvature for this surface at the given parametric position (s,t)
on this surface.
|
Vector<Dimensionless> |
getNormal(double s,
double t)
Return the normal vector for this surface at the given parametric position (s,t) on
this surface.
|
Vector<Dimensionless> |
getNormal(GeomPoint st)
Return the normal vector for this surface at the given parametric position (s,t) on
this surface.
|
SubrangePoint |
getPoint(double s,
double t)
Return a subrange point on the surface for the given parametric position on the
surface.
|
SubrangePoint |
getPoint(GeomPoint st)
Return a subrange point on the surface for the given parametric position on the
surface.
|
Point |
getRealPoint(double s,
double t)
Calculate a point on the surface for the given parametric position on the surface.
|
Point |
getRealPoint(GeomPoint st)
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.
|
SubrangeCurve |
getSCurve(double s)
Return a subrange curve at a constant parametric s-value.
|
Vector<Length> |
getSDerivative(double s,
double t,
int grade)
Calculate a derivative with respect to parametric s-distance of the given grade on
the surface for the given parametric position on the surface,
d^{grade}p(s,t)/d^{grade}s . |
Vector<Length> |
getSDerivative(GeomPoint st,
int grade)
Calculate a derivative with respect to parametric s-distance of the given grade on
the surface for the given parametric position on the surface,
d^{grade}p(s,t)/d^{grade}s . |
java.util.List<Vector<Length>> |
getSDerivatives(double s,
double t,
int grade)
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 . |
java.util.List<Vector<Length>> |
getSDerivatives(GeomPoint st,
int grade)
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.
|
Plane |
getTangentPlane(double s,
double t)
Return the tangent plane to this surface at the given parametric position (s,t) on
this surface.
|
Plane |
getTangentPlane(GeomPoint st)
Return the tangent plane to this surface at the given parametric position (s,t) on
this surface.
|
SubrangeCurve |
getTCurve(double t)
Return a subrange curve at a constant parametric t-value.
|
Vector<Length> |
getTDerivative(double s,
double t,
int grade)
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 . |
Vector<Length> |
getTDerivative(GeomPoint st,
int grade)
Calculate a derivative with respect to parametric t-distance of the given grade on
the surface for the given parametric position on the surface,
d^{grade}p(s,t)/d^{grade}t . |
java.util.List<Vector<Length>> |
getTDerivatives(double s,
double t,
int grade)
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 . |
java.util.List<Vector<Length>> |
getTDerivatives(GeomPoint st,
int grade)
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 . |
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.
|
Vector<Length> |
getTwistVector(GeomPoint st)
Calculate the twist vector (d^2P/(ds*dt) = d(dP/ds)/dt) for this surface at the
specified position on this surface.
|
Parameter<Volume> |
getVolume(double eps)
Return the enclosed volume of this entire surface.
|
Parameter<Volume> |
getVolume(double s1,
double t1,
double s2,
double t2,
double eps)
Return the enclosed volume of a portion of this surface.
|
Parameter<Volume> |
getVolume(GeomPoint st1,
GeomPoint st2,
double eps)
Return the enclosed volume of a portion of this surface.
|
PointArray<SubrangePoint> |
gridToTolerance(Parameter<Length> tol)
Return an array of points that are gridded onto the surface with the number of
points and spacing chosen to result in straight line segments between the points
that have mid-points that are all within the specified tolerance of this surface.
|
GeomList<PointString<SubrangePoint>> |
intersect(Curve curve,
Parameter<Length> tol)
Return the intersections between a curve and this surface.
|
GeomList<SubrangeCurve> |
intersect(GeomPlane plane,
Parameter<Length> tol)
Return the intersections between an infinite plane and this surface.
|
PointString<SubrangePoint> |
intersect(GeomPoint L0,
GeomVector Ldir,
Parameter<Length> tol)
Return the intersections between an infinite line and this surface.
|
GeomList<PointString<SubrangePoint>> |
intersect(LineSegment line,
Parameter<Length> tol)
Return the intersections between a line segment and this surface.
|
GeomList<GeomList<SubrangeCurve>> |
intersect(Surface surface,
Parameter<Length> tol)
Return the intersections between another surface and this surface.
|
boolean |
isDegenerate(Parameter<Length> tol)
Return
true if this surface is degenerate (i.e.: has area less than
the specified tolerance squared). |
boolean |
isPlanar(double epsFT,
double epsELT)
Return
true if this surface is planar or false if it is
not. |
boolean |
isPlanar(Parameter<Length> tol)
Return
true if this surface is planar or false if it is
not. |
T |
reverseS()
Return a new surface that is identical to this one, but with the S-parameterization
reversed.
|
T |
reverseT()
Return a new surface that is identical to this one, but with the T-parameterization
reversed.
|
GeomList<T> |
splitAtS(double s)
Split this surface 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<T> |
splitAtS(GeomPoint st)
Split this surface 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<T> |
splitAtT(double t)
Split this surface 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).
|
GeomList<T> |
splitAtT(GeomPoint st)
Split this surface 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 |
to(Unit<Length> unit)
Returns the equivalent to this surface but stated in the specified unit.
|
T |
toDimension(int newDim)
Return a copy 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.
|
T |
transpose()
Return a new surface that is identical to this one but with the transpose of the
parameterization of this surface.
|
getTransformed
addChangeListener, copyToReal, getAllUserData, getBoundsMax, getBoundsMin, getID, getLimitPoint, getName, getParDimension, getPhyDimension, getUnit, getUserData, isValid, putAllUserData, putUserData, removeChangeListener, removeUserData, setName, size, toText
T to(Unit<Length> unit) throws ConversionException
to
in interface GeomElement<T extends Surface>
to
in interface ParametricGeometry<T extends Surface>
unit
- the length unit of the surface to be returned.ConversionException
- if the the input unit is not a length unit.T transpose()
java.lang.UnsupportedOperationException
- if this method is not supported.GeomList<T> splitAtS(double s)
s
- The S-parametric position where this surface should be split (must not be
0 or 1!).GeomList<T> splitAtS(GeomPoint st)
st
- The S-parametric position where this surface should be split (must not be
0 or 1!). Must be a 2-dimensional point with each value in the range 0 to 1, only
the 1st value is used. Units are ignored.GeomList<T> splitAtT(double t)
t
- The T-parametric position where this surface should be split (must not be
0 or 1!).GeomList<T> splitAtT(GeomPoint st)
st
- The T-parametric position where this surface should be split (must not be
0 or 1!). Must be a 2-dimensional point with each value in the range 0 to 1, only
the 2nd value is used. Units are ignored.T reverseS()
reverseT()
T reverseT()
reverseS()
T copy()
allocated
by the calling thread
(possibly on the stack).copy
in interface GeomElement<T extends Surface>
copy
in interface ParametricGeometry<T extends Surface>
T toDimension(int newDim)
toDimension
in interface GeomElement<T extends Surface>
toDimension
in interface ParametricGeometry<T extends Surface>
newDim
- The dimension of the surface to return.NurbsSurface toNurbs(Parameter<Length> tol)
tol
- The greatest possible difference between this surface and the NURBS
representation returned.SubrangePoint getPoint(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.SubrangePoint getPoint(GeomPoint st)
getPoint
in interface ParametricGeometry<T extends Surface>
st
- The parametric position to calculate a point for. Must be a 2-dimensional
point with each value in the range 0 to 1.0. Units are ignored.java.lang.IllegalArgumentException
- if there is any problem with the parameter values.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.Point getRealPoint(GeomPoint st)
getRealPoint
in interface ParametricGeometry<T extends Surface>
st
- The parametric position to calculate a point for. Must be a 2-dimensional
point with each value in the range 0 to 1.0. Units are ignored.java.lang.IllegalArgumentException
- if there is any problem with the parameter values.SubrangeCurve getCurve(Curve pcrv)
pcrv
- A curve in parametric space indicating the parametric positions on the
the surface represented by the subrange curve. Must be 2D with values between 0 and 1.SubrangeCurve getSCurve(double s)
s
- The parametric s-position to extract a subrange curve.java.lang.IllegalArgumentException
- if there is any problem with the parameter value.SubrangeCurve getTCurve(double t)
t
- The parametric t-position to extract a subrange curve.java.lang.IllegalArgumentException
- if there is any problem with the parameter value.Curve getT0Curve()
Curve getT1Curve()
Curve getS0Curve()
Curve getS1Curve()
java.util.List<java.util.List<Vector<Length>>> getDerivatives(GeomPoint st, int grade)
0
to grade
with
respect to parametric position(s) on a parametric object for the given parametric
position on the object, d^{grade}p(s)/d^{grade}s
.
Example:
1st derivative (grade = 1), this returns [p(s), dp(s)/ds]
;
2nd derivative (grade = 2), this returns [p(s), dp(s)/ds, d^2p(s)/d^2s]
; etc.
getDerivatives
in interface ParametricGeometry<T extends Surface>
st
- The parametric position to calculate the derivatives for. Must match the
parametric dimension of this parametric surface and have each value in the range 0
to 1.0. Units are ignored.grade
- The maximum grade to calculate the derivatives for (1=1st derivative,
2=2nd derivative, etc)java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.java.util.List<Vector<Length>> getSDerivatives(double s, double t, int grade)
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.
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)java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.java.util.List<Vector<Length>> getSDerivatives(GeomPoint st, int grade)
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.
st
- The parametric position to calculate the derivatives for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.grade
- The maximum grade to calculate the derivatives for (1=1st derivative,
2=2nd derivative, etc)java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.java.util.List<Vector<Length>> getTDerivatives(double s, double t, int grade)
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.
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)java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.java.util.List<Vector<Length>> getTDerivatives(GeomPoint st, int grade)
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.
st
- The parametric position to calculate the derivatives for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.grade
- The maximum grade to calculate the derivatives for (1=1st derivative,
2=2nd derivative, etc)java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.Vector<Length> getSDerivative(GeomPoint st, int grade)
d^{grade}p(s,t)/d^{grade}s
.
Example:
1st derivative (grade = 1), this returns dp(s,t)/ds
;
2nd derivative (grade = 2), this returns d^2p(s,t)/d^2s
; etc.
st
- The parametric position to calculate the derivative for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.grade
- The grade to calculate the derivative for (1=1st derivative, 2=2nd
derivative, etc)java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.Vector<Length> getTDerivative(GeomPoint st, int grade)
d^{grade}p(s,t)/d^{grade}t
.
Example:
1st derivative (grade = 1), this returns dp(s,t)/dt
;
2nd derivative (grade = 2), this returns d^2p(s,t)/d^2t
; etc.
st
- The parametric position to calculate the derivative for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.grade
- The grade to calculate the derivative for (1=1st derivative, 2=2nd
derivative, etc)java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.Vector<Length> getSDerivative(double s, double t, int grade)
d^{grade}p(s,t)/d^{grade}s
.
Example:
1st derivative (grade = 1), this returns dp(s,t)/ds
;
2nd derivative (grade = 2), this returns d^2p(s,t)/d^2s
; etc.
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 grade to calculate the derivative for (1=1st derivative, 2=2nd
derivative, etc)java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.Vector<Length> getTDerivative(double s, double t, int grade)
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.
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)java.lang.IllegalArgumentException
- if the grade is < 0 or the parameter values are
invalid.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.Vector<Length> getTwistVector(GeomPoint st)
st
- The parametric position to calculate the twist vector for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.java.lang.IllegalArgumentException
- if the parameter values are invalid.Vector<Dimensionless> getNormal(double s, double t)
s
- 1st parametric dimension distance to calculate normal for (0.0 to 1.0
inclusive).t
- 2nd parametric dimension distance to calculate normal for (0.0 to 1.0
inclusive).Vector<Dimensionless> getNormal(GeomPoint st)
st
- The parametric position to calculate the normal for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.Plane getTangentPlane(double s, double t)
s
- 1st parametric dimension distance to calculate tangent plane for (0.0 to
1.0 inclusive).t
- 2nd parametric dimension distance to calculate tangent plane for (0.0 to
1.0 inclusive).Plane getTangentPlane(GeomPoint st)
st
- The parametric position to calculate the tangent plane for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.Parameter getGaussianCurvature(double s, double t)
s
- 1st parametric dimension distance to calculate curvature for (0.0 to 1.0
inclusive).t
- 2nd parametric dimension distance to calculate curvature for (0.0 to 1.0
inclusive).Parameter getGaussianCurvature(GeomPoint st)
st
- The parametric position to calculate the curvature for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.Parameter getMeanCurvature(double s, double t)
s
- 1st parametric dimension distance to calculate curvature for (0.0 to 1.0
inclusive).t
- 2nd parametric dimension distance to calculate curvature for (0.0 to 1.0
inclusive).Parameter getMeanCurvature(GeomPoint st)
st
- The parametric position to calculate the curvature for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.Parameter<Area> getArea(double eps)
eps
- The desired fractional accuracy on the surface area.Parameter<Area> getArea(double s1, double t1, double s2, double t2, double eps)
s1
- The starting 1st parametric dimension distance to calculate area for (0.0
to 1.0 inclusive).t1
- The starting 2nd parametric dimension distance to calculate area for (0.0
to 1.0 inclusive).s2
- The ending 1st parametric dimension distance to calculate area for (0.0
to 1.0 inclusive).t2
- The ending 2nd parametric dimension distance to calculate area for (0.0
to 1.0 inclusive).eps
- The desired fractional accuracy on the surface area.Parameter<Area> getArea(GeomPoint st1, GeomPoint st2, double eps)
st1
- The starting parametric position to calculate the area for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.st2
- The ending parametric position to calculate the area for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.eps
- The desired fractional accuracy on the surface area.Parameter<Volume> getVolume(double eps)
eps
- The desired fractional accuracy on the enclosed volume.Parameter<Volume> getVolume(double s1, double t1, double s2, double t2, double eps)
s1
- The starting 1st parametric dimension distance to calculate volume for
(0.0 to 1.0 inclusive).t1
- The starting 2nd parametric dimension distance to calculate volume for
(0.0 to 1.0 inclusive).s2
- The ending 1st parametric dimension distance to calculate volume for (0.0
to 1.0 inclusive).t2
- The ending 2nd parametric dimension distance to calculate volume for (0.0
to 1.0 inclusive).eps
- The desired fractional accuracy on the enclosed volume.Parameter<Volume> getVolume(GeomPoint st1, GeomPoint st2, double eps)
st1
- The starting parametric position to calculate the volume for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.st2
- The ending parametric position to calculate the volume for. Must be a
2-dimensional point with each value in the range 0 to 1.0. Units are ignored.eps
- The desired fractional accuracy on the enclosed volume.PointArray<SubrangePoint> extractGrid(GridRule gridRule, java.util.List<java.lang.Double> bottomSpacing, java.util.List<java.lang.Double> topSpacing, java.util.List<java.lang.Double> leftSpacing, java.util.List<java.lang.Double> rightSpacing)
gridRule
specifies whether
the subdivision spacing is applied with respect to arc-length in real space or
parameter space. If the spacing is arc-length, then the values are interpreted as
fractions of the arc length of the edge curves from 0 to 1.gridRule
- Specifies whether the subdivision spacing is applied with respect
to arc-length in real space or parameter space.bottomSpacing
- A list of values used to define the subdivision spacing along
the T=0 parametric boundary of the surface.topSpacing
- An optional list of values used to define the subdivision spacing
along the T=1 parametric boundary of the surface. If null
is passed,
the bottomSpacing is used for the top. If topSpacing is provided, then it must have
the same number of values as the bottomSpacing.leftSpacing
- A list of values used to define the subdivision spacing along
the S=0 parametric boundary of the surface.rightSpacing
- An optional list of values used to define the subdivision
spacing along the S=1 parametric boundary of the surface. If null
is
passed, the leftSpacing is used for the right. If rightSpacing is provided, then it
must have the same number of values as the leftSpacing.PointArray<SubrangePoint> gridToTolerance(Parameter<Length> tol)
tol
- The maximum distance that a straight line between gridded points may
deviate from this surface.SubrangePoint getClosest(GeomPoint point, double tol)
getClosest
in interface ParametricGeometry<T extends Surface>
point
- The point to find the closest point on this surface to.tol
- Fractional tolerance to refine the distance to.SubrangePoint
on this surface that is closest to the specified
point.SubrangePoint getClosest(GeomPoint point, double nearS, double nearT, double tol)
point
- The point to find the closest point on this surface to.nearS
- The parametric s-position where the search for the closest point
should begin.nearT
- The parametric t-position where the search for the closest point
should begin.tol
- Fractional tolerance to refine the distance to.SubrangePoint
on this surface that is closest to the specified
point near the specified parametric position.PointArray<SubrangePoint> getClosest(java.util.List<? extends java.util.List<GeomPoint>> points, double tol)
points
- A list of lists of points to find the closest point on this surface to.tol
- Fractional tolerance to refine the distance to.PointArray
of SubrangePoint
on this surface that is
closest to the specified list of lists of points.SubrangePoint getFarthest(GeomPoint point, double tol)
getFarthest
in interface ParametricGeometry<T extends Surface>
point
- The point to find the farthest point on this surface from.tol
- Fractional tolerance to refine the distance to.SubrangePoint
on this surface that is farthest from the
specified point.SubrangePoint getFarthest(GeomPoint point, double nearS, double nearT, double tol)
point
- The point to find the farthest point on this surface from.nearS
- The parametric s-position where the search for the closest point
should begin.nearT
- The parametric t-position where the search for the closest point
should begin.tol
- Fractional tolerance to refine the distance to.SubrangePoint
on this surface that is farthest from the
specified point.PointArray<SubrangePoint> getFarthest(java.util.List<? extends java.util.List<GeomPoint>> points, double tol)
points
- A list of lists of points to find the farthest point on this surface from.tol
- Fractional tolerance to refine the distance to.PointArray
of SubrangePoint
on this surface that is
farthest from the specified list of lists of points.PointString<SubrangePoint> getClosest(Curve curve, double tol)
curve
- The curve to find the closest points between this surface and that
curve on.tol
- Fractional tolerance to refine the distance to.PointString<SubrangePoint> getClosest(Surface surface, double tol)
surface
- The surface to find the closest points between this surface and that
surface on.tol
- Fractional tolerance to refine the distance to.SubrangePoint getClosest(GeomPlane plane, double tol)
plane
- The plane to find the closest points between this surface and that
plane on.tol
- Fractional tolerance to refine the distance to.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<T extends Surface>
tol
- The tolerance for determining if this surface is degenerate.boolean isPlanar(Parameter<Length> tol)
true
if this surface is planar or false
if it is
not.tol
- The geometric tolerance to use in determining if the surface is planar.boolean isPlanar(double epsFT, double epsELT)
true
if this surface is planar or false
if it is
not.epsFT
- Flatness tolerance (cosine of the angle allowable between normal vectors).epsELT
- Edge linearity tolerance (cosine of the angle allowable between edge
vectors).PointString<SubrangePoint> intersect(GeomPoint L0, GeomVector Ldir, Parameter<Length> tol)
L0
- A point on the line (origin of the line).Ldir
- The direction vector for the line (does not have to be a unit vector).tol
- Tolerance (in physical space) to refine the point positions to.GeomList<PointString<SubrangePoint>> intersect(LineSegment line, Parameter<Length> tol)
line
- A line segment to intersect with this surface.tol
- Tolerance (in physical space) to refine the point positions to.GeomList<PointString<SubrangePoint>> intersect(Curve curve, Parameter<Length> tol)
curve
- The curve to intersect with this surface.tol
- Tolerance (in physical space) to refine the point positions to.GeomList<SubrangeCurve> intersect(GeomPlane plane, Parameter<Length> tol)
plane
- The infinite plane to intersect with this surface.tol
- Tolerance (in physical space) to refine the point positions to.GeomList<GeomList<SubrangeCurve>> intersect(Surface surface, Parameter<Length> tol)
surface
- A surface to intersect with this surface.tol
- Tolerance (in physical space) to refine the point positions to.