public class ISurfaceGeo extends INurbsGeo implements ISurfaceI, IEntityParameter
Modifier and Type | Field and Description |
---|---|
IBSplineBasisFunction |
basisFunctionU |
IBSplineBasisFunction |
basisFunctionV |
IVecI[][] |
controlPoints |
boolean[][] |
defaultWeights
flag to determine to use default weight value (1.0)
|
IBSplineBasisFunction |
derivativeFunctionU |
IBSplineBasisFunction |
derivativeFunctionV |
boolean |
innerTrimClosed |
java.util.ArrayList<java.util.ArrayList<ITrimCurve>> |
innerTrimLoop |
boolean |
outerTrimClosed |
java.util.ArrayList<java.util.ArrayList<ITrimCurve>> |
outerTrimLoop |
ITrimCache |
trimCache |
int |
udegree |
double |
uend |
double[] |
uknots
normalized knot vector (start value in knot vector is 0, end value is 1)
|
double |
ustart |
ISurfaceCache |
uvSearchCache
point cache for proximity search
|
int |
vdegree |
double |
vend |
double[] |
vknots
normalized knot vector (start value in knot vector is 0, end value is 1)
|
double |
vstart |
parent
Constructor and Description |
---|
ISurfaceGeo() |
ISurfaceGeo(double[][][] xyzValues) |
ISurfaceGeo(double[][][] xyzValues,
boolean closeU,
boolean closeV) |
ISurfaceGeo(double[][][] xyzValues,
int udeg,
int vdeg) |
ISurfaceGeo(double[][][] xyzValues,
int udeg,
int vdeg,
boolean closeU,
boolean closeV) |
ISurfaceGeo(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3) |
ISurfaceGeo(double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3,
double x4,
double y4,
double z4) |
ISurfaceGeo(ICurveI trimCurve)
create surface with outer trim curve
|
ISurfaceGeo(ICurveI[] trimCurves) |
ISurfaceGeo(ICurveI trimCurve,
ICurveI innerTrimCurve) |
ISurfaceGeo(ICurveI trimCurve,
ICurveI[] innerTrimCurves) |
ISurfaceGeo(ISurfaceGeo srf) |
ISurfaceGeo(IVecI[] trimCrvPts) |
ISurfaceGeo(IVecI[][] cpts) |
ISurfaceGeo(IVecI[][] cpts,
boolean closeU,
boolean closeV) |
ISurfaceGeo(IVecI[][] cpts,
int udegree,
int vdegree) |
ISurfaceGeo(IVecI[][] cpts,
int udegree,
int vdegree,
boolean closeU,
boolean closeV) |
ISurfaceGeo(IVecI[][] cpts,
int udegree,
int vdegree,
boolean closeU,
double[] vk) |
ISurfaceGeo(IVecI[][] cpts,
int udegree,
int vdegree,
double[] uk,
boolean closeV) |
ISurfaceGeo(IVecI[][] cpts,
int udegree,
int vdegree,
double[] uknots,
double[] vknots) |
ISurfaceGeo(IVecI[][] cpts,
int udegree,
int vdegree,
double[] uknots,
double[] vknots,
double ustart,
double uend,
double vstart,
double vend) |
ISurfaceGeo(IVecI[] trimCrvPts,
int trimCrvDeg) |
ISurfaceGeo(IVecI[] trimCrvPts,
int trimCrvDeg,
double[] trimCrvKnots) |
ISurfaceGeo(IVecI[] trimCrvPts,
int trimCrvDeg,
double[] trimCrvKnots,
IVecI[][] innerTrimCrvPts,
int[] innerTrimCrvDeg,
double[][] innerTrimCrvKnots) |
ISurfaceGeo(IVecI[] trimCrvPts,
int trimCrvDeg,
double[] trimCrvKnots,
IVecI[] innerTrimCrvPts,
int innerTrimCrvDeg,
double[] innerTrimCrvKnots) |
ISurfaceGeo(IVecI[] trimCrvPts,
int trimCrvDeg,
IVecI[][] innerTrimCrvPts,
int[] innerTrimCrvDeg) |
ISurfaceGeo(IVecI[] trimCrvPts,
int trimCrvDeg,
IVecI[] innerTrimCrvPts,
int innerTrimCrvDeg) |
ISurfaceGeo(IVecI[] trimCrvPts,
IVecI[] innerTrimCrvPts) |
ISurfaceGeo(IVecI[] trimCrvPts,
IVecI[][] innerTrimCrvPts) |
ISurfaceGeo(IVecI pt1,
IVecI pt2,
IVecI pt3) |
ISurfaceGeo(IVecI pt1,
IVecI pt2,
IVecI pt3,
IVecI pt4) |
Modifier and Type | Method and Description |
---|---|
ISurfaceGeo |
add(double x,
double y,
double z)
transformation methods; API of ITransformable interface
|
ISurfaceGeo |
add(double f,
IVecI v)
scale add alias
|
ISurfaceGeo |
add(IDoubleI x,
IDoubleI y,
IDoubleI z) |
ISurfaceGeo |
add(IDoubleI f,
IVecI v)
scale add alias
|
ISurfaceGeo |
add(IVecI v) |
ISurfaceGeo |
add(IVecI v,
double f)
scale add
|
ISurfaceGeo |
add(IVecI v,
IDoubleI f)
scale add
|
ISurfaceGeo |
addDefaultOuterTrimLoop() |
ISurfaceGeo |
addInnerTrim(ITrimCurve trimCrv) |
ISurfaceGeo |
addInnerTrimLoop(ICurveI trim)
input trim curves is deleted as default if it inherits IObject like ICurve or ICurveR
|
ISurfaceGeo |
addInnerTrimLoop(ICurveI[] trim)
input trim curves is deleted as default if it inherits IObject like ICurve or ICurveR
|
ISurfaceGeo |
addInnerTrimLoop(ICurveI[] trim,
boolean deleteInput) |
ISurfaceGeo |
addInnerTrimLoop(ICurveI trim,
boolean deleteInput) |
ISurfaceGeo |
addInnerTrimLoop(ITrimCurve loop) |
ISurfaceGeo |
addInnerTrimLoop(ITrimCurve[] loop) |
ISurfaceGeo |
addInnerTrimLoop(ITrimCurveI loop) |
ISurfaceGeo |
addInnerTrimLoop(ITrimCurveI[] loop) |
ISurfaceGeo |
addOuterTrim(ITrimCurve trimCrv) |
ISurfaceGeo |
addOuterTrimLoop(ICurveI trim) |
ISurfaceGeo |
addOuterTrimLoop(ICurveI[] trim) |
ISurfaceGeo |
addOuterTrimLoop(ICurveI[] trim,
boolean deleteInput) |
ISurfaceGeo |
addOuterTrimLoop(ICurveI trim,
boolean deleteInput) |
ISurfaceGeo |
addOuterTrimLoop(ITrimCurve loop) |
ISurfaceGeo |
addOuterTrimLoop(ITrimCurve[] loop) |
ISurfaceGeo |
addOuterTrimLoop(ITrimCurveI loop) |
ISurfaceGeo |
addOuterTrimLoop(ITrimCurveI[] loop) |
ISurfaceGeo |
addUCP(IVecI[] pts)
add control point at the end and rebuild the surface
note that a knots is rebuilt with default equal intervals
and destroy original knot intervals if variable, like circle.
|
ISurfaceGeo |
addVCP(IVecI[] pts)
add control point at the end and rebuild the surface
note that a knots is rebuilt with default equal intervals
and destroy original knot intervals if variable, like circle.
|
IVec |
center()
returns center of geometry object
|
static void |
checkDuplicatedCP(IVecI[][] cpts) |
static void |
checkDuplicatedCP(IVecI[][] cpts,
IVecI[] pts) |
static void |
checkDuplicatedCPOnEdge(IVecI[][] cpts) |
boolean |
checkTrim(ITrimCurve curve) |
boolean |
checkTrimLoop(ITrimCurve loop) |
boolean |
checkTrimLoop(ITrimCurve[] loop) |
ISurfaceGeo |
clearInnerTrim() |
ISurfaceGeo |
clearOuterTrim() |
ISurfaceGeo |
clearTrim() |
ISurfaceGeo |
closeInnerTrim() |
ISurfaceGeo |
closeOuterTrim() |
IVec |
closePt(IVec2I pt)
find approximately closest point on a surface on 2D
|
IVec |
closePt(IVecI pt)
find approximately closest point on a surface
|
IVec |
corner(IIntegerI u,
IIntegerI v) |
IVec |
corner(int u,
int v) |
IVecI |
cornerCP(IIntegerI u,
IIntegerI v) |
IVec |
cornerCP(int u,
int v) |
ISurfaceGeo |
cp()
cp() is alias of dup()
|
ISurfaceGeo |
cp(double x,
double y,
double z)
cp() is alias of dup().add()
|
ISurfaceGeo |
cp(IDoubleI x,
IDoubleI y,
IDoubleI z)
cp() is alias of dup().add()
|
IVecI |
cp(IIntegerI i,
IIntegerI j)
getting control point at i and j
|
IVecI |
cp(int i,
int j)
getting control point at i and j
|
ISurfaceGeo |
cp(IVecI v)
cp() is alias of dup().add()
|
IVecI[][] |
cps() |
double |
dist(IVec2I pt)
distance to the closest point on a surface on 2D
|
double |
dist(IVecI pt)
distance to the closest point on a surface
|
ISurfaceGeo |
div(double v) |
ISurfaceGeo |
div(IDoubleI v) |
ISurfaceGeo |
dup()
duplicate the instance
|
IVec |
ep(IIntegerI i,
IIntegerI j)
getting edit point at i and j
|
IVec |
ep(int i,
int j)
getting edit point at i and j
|
ISurfaceGeo |
flip()
alias of neg
|
ISurfaceGeo |
flipN()
alias of flipN()
|
ISurfaceGeo |
flipU()
alias of revU()
|
ISurfaceGeo |
flipUV()
alias of revUV()
|
ISurfaceGeo |
flipV()
alias of revV()
|
ISurfaceGeo |
get() |
static IVec[] |
getPlanarUVPoints(IVecI[] pts,
IVecI origin,
IVec uvec,
IVec vvec) |
static double[][] |
getPlanarUVRange(IVec[] uvpts) |
static IVec[] |
getPlanarUVVectors(IVecI[] pts) |
static IVec[][] |
getPointsFromArray(double[][][] xyzvalues) |
boolean |
hasDefaultTrim()
default trim is rectangular outer trim at the exact boundary of untrimmed surface
|
boolean |
hasDefaultTrim(ISwitchE e) |
IBool |
hasDefaultTrim(ISwitchR r) |
boolean |
hasInnerTrim() |
boolean |
hasInnerTrim(ISwitchE e) |
IBool |
hasInnerTrim(ISwitchR r) |
boolean |
hasOuterTrim() |
boolean |
hasOuterTrim(ISwitchE e) |
IBool |
hasOuterTrim(ISwitchR r) |
boolean |
hasTrim() |
boolean |
hasTrim(ISwitchE e) |
IBool |
hasTrim(ISwitchR r) |
void |
init(IVecI[][] cpts,
int udeg,
int vdeg,
boolean closeU,
boolean closeV) |
void |
init(IVecI[][] cpts,
int udeg,
int vdeg,
boolean closeU,
double[] vk) |
void |
init(IVecI[][] cpts,
int udeg,
int vdeg,
double[] uk,
boolean closeV) |
void |
init(IVecI[][] cpts,
int udeg,
int vdeg,
double[] uk,
double[] vk) |
void |
initWithPlanarTrim(IVecI[] cpts,
int trimDeg,
double[] trimKnots,
boolean close) |
void |
initWithPlanarTrim(IVecI[] cpts,
int trimDeg,
double[] trimKnots,
boolean close,
IVecI[][] innerCpts,
int[] innerTrimDeg,
double[][] innerTrimKnots,
boolean[] innerClose) |
void |
initWithPlanarTrims(ICurveI[] curves) |
ITrimCurveI |
innerTrim(IIntegerI i,
IIntegerI j) |
ITrimCurveI |
innerTrim(int i,
int j) |
ITrimCurveI[] |
innerTrimLoop(IIntegerI i) |
ITrimCurveI[] |
innerTrimLoop(int i) |
int |
innerTrimLoopNum() |
int |
innerTrimLoopNum(ISwitchE e) |
IInteger |
innerTrimLoopNum(ISwitchR r) |
IInteger |
innerTrimNum(IIntegerI i) |
int |
innerTrimNum(int i) |
boolean |
isFlat()
is the surface planar and flat
|
boolean |
isFlat(ISwitchE e) |
IBool |
isFlat(ISwitchR r) |
boolean |
isInsideTrim(double u,
double v) |
boolean |
isInsideTrim(IVec2 v)
check if a u-v point is inside trim curves.
|
boolean |
isInsideTrim(IVec2I v) |
boolean |
isRational() |
boolean |
isRational(ISwitchE e) |
IBool |
isRational(ISwitchR r) |
static boolean |
isTrimCurveCPInsideBoundary(ITrimCurveI crv,
double u1,
double v1,
double u2,
double v2) |
static boolean |
isTrimCurveInsideBoundary(ITrimCurveI crv,
double u1,
double v1,
double u2,
double v2) |
static boolean |
isTrimLoopClosed(ITrimCurveI[] crv) |
static boolean |
isTrimLoopInsideBoundary(ITrimCurveI[] crv,
double u1,
double v1,
double u2,
double v2) |
boolean |
isUClosed()
is the surface closed in u direction
|
boolean |
isUClosed(ISwitchE e) |
IBool |
isUClosed(ISwitchR r) |
boolean |
isValid() |
static boolean |
isValidCP(IVecI[][] cpts) |
static boolean |
isValidCP(IVecI[][] cpts,
int udeg,
int vdeg,
double[] uknots,
double[] vknots) |
boolean |
isVClosed()
is the surface closed in v direction
|
boolean |
isVClosed(ISwitchE e) |
IBool |
isVClosed(ISwitchR r) |
IVec |
mid()
mid in UV parameter (u=0.5, v=0.5) point on a surface
|
ISurfaceGeo |
mirror(IVecI planeDir)
mirror is alias of ref
|
ISurfaceGeo |
mirror(IVecI center,
IVecI planeDir) |
ISurfaceGeo |
mul(double v) |
ISurfaceGeo |
mul(IDoubleI v) |
ISurfaceGeo |
mv(double x,
double y,
double z)
mv() is alias of add()
|
ISurfaceGeo |
mv(IDoubleI x,
IDoubleI y,
IDoubleI z) |
ISurfaceGeo |
mv(IVecI v) |
ISurfaceGeo |
neg() |
IVec |
nml(double u,
double v)
alias of normal
|
void |
nml(double u,
double v,
IVec retval) |
IVec |
nml(IDoubleI u,
IDoubleI v) |
IVec |
nml(IVec2I v) |
IVec |
normal(double u,
double v) |
void |
normal(double u,
double v,
IVec retval) |
IVec |
normal(IDoubleI u,
IDoubleI v) |
IVec |
normal(IVec2I v) |
IVec |
nrml(double u,
double v) |
void |
nrml(double u,
double v,
IVec retval) |
IVec |
nrml(IDoubleI u,
IDoubleI v) |
IVec |
nrml(IVec2I v) |
ITrimCurveI |
outerTrim(IIntegerI i,
IIntegerI j) |
ITrimCurveI |
outerTrim(int i,
int j) |
ITrimCurveI[] |
outerTrimLoop(IIntegerI i) |
ITrimCurveI[] |
outerTrimLoop(int i) |
int |
outerTrimLoopNum() |
int |
outerTrimLoopNum(ISwitchE e) |
IInteger |
outerTrimLoopNum(ISwitchR r) |
IInteger |
outerTrimNum(IIntegerI i) |
int |
outerTrimNum(int i) |
IVec |
pt(double u,
double v) |
IVec |
pt(double u,
double v,
double n) |
void |
pt(double u,
double v,
IVec retval) |
IVec |
pt(IDoubleI u,
IDoubleI v) |
IVec |
pt(IDoubleI u,
IDoubleI v,
IDoubleI n) |
IVec |
pt(IVec v) |
IVec |
pt(IVec2I v) |
IVec |
pt(IVecI v) |
ISurfaceGeo |
ref(IVecI planeDir)
reflect(mirror) 3 dimensionally to the other side of the plane
|
ISurfaceGeo |
ref(IVecI center,
IVecI planeDir) |
ISurfaceGeo |
revN()
reverse normal direction.
|
ISurfaceGeo |
revTrimU() |
ISurfaceGeo |
revU()
reverse U parameter.
|
ISurfaceGeo |
revUV()
reverse U and V parameter at the same time
|
ISurfaceGeo |
revV()
reverse V parameter.
|
ISurfaceGeo |
rot(double angle) |
ISurfaceGeo |
rot(IDoubleI angle)
rotation around z-axis and origin
|
ISurfaceGeo |
rot(IVecI axis,
double angle) |
ISurfaceGeo |
rot(IVecI axis,
IDoubleI angle)
rotation around axis vector
|
ISurfaceGeo |
rot(IVecI axis,
IVecI destDir)
rotate to destination direction vector
|
ISurfaceGeo |
rot(IVecI center,
IVecI axis,
double angle) |
ISurfaceGeo |
rot(IVecI center,
IVecI axis,
IDoubleI angle)
rotation around axis vector and center
|
ISurfaceGeo |
rot(IVecI center,
IVecI axis,
IVecI destPt)
rotate to destination point location
|
ISurfaceGeo |
rot2(double angle)
rotation on xy-plane around origin; same with rot(double)
|
ISurfaceGeo |
rot2(IDoubleI angle)
rotation on xy-plane around origin; same with rot(IDoubleI)
|
ISurfaceGeo |
rot2(IVecI destDir)
rotation on xy-plane to destination direction vector
|
ISurfaceGeo |
rot2(IVecI center,
double angle) |
ISurfaceGeo |
rot2(IVecI center,
IDoubleI angle)
rotation on xy-plane around center
|
ISurfaceGeo |
rot2(IVecI center,
IVecI destPt)
rotation on xy-plane to destination point location
|
ISurfaceGeo |
scale(double f) |
ISurfaceGeo |
scale(IDoubleI f)
alias of mul
|
ISurfaceGeo |
scale(IVecI center,
double f) |
ISurfaceGeo |
scale(IVecI center,
IDoubleI f) |
ISurfaceGeo |
scale1d(IVecI axis,
double f)
scale only in 1 direction
|
ISurfaceGeo |
scale1d(IVecI axis,
IDoubleI f) |
ISurfaceGeo |
scale1d(IVecI center,
IVecI axis,
double f) |
ISurfaceGeo |
scale1d(IVecI center,
IVecI axis,
IDoubleI f) |
ISurfaceGeo |
shear(double sxy,
double syx,
double syz,
double szy,
double szx,
double sxz)
shear operation
|
ISurfaceGeo |
shear(IDoubleI sxy,
IDoubleI syx,
IDoubleI syz,
IDoubleI szy,
IDoubleI szx,
IDoubleI sxz) |
ISurfaceGeo |
shear(IVecI center,
double sxy,
double syx,
double syz,
double szy,
double szx,
double sxz) |
ISurfaceGeo |
shear(IVecI center,
IDoubleI sxy,
IDoubleI syx,
IDoubleI syz,
IDoubleI szy,
IDoubleI szx,
IDoubleI sxz) |
ISurfaceGeo |
shearXY(double sxy,
double syx) |
ISurfaceGeo |
shearXY(IDoubleI sxy,
IDoubleI syx) |
ISurfaceGeo |
shearXY(IVecI center,
double sxy,
double syx) |
ISurfaceGeo |
shearXY(IVecI center,
IDoubleI sxy,
IDoubleI syx) |
ISurfaceGeo |
shearYZ(double syz,
double szy) |
ISurfaceGeo |
shearYZ(IDoubleI syz,
IDoubleI szy) |
ISurfaceGeo |
shearYZ(IVecI center,
double syz,
double szy) |
ISurfaceGeo |
shearYZ(IVecI center,
IDoubleI syz,
IDoubleI szy) |
ISurfaceGeo |
shearZX(double szx,
double sxz) |
ISurfaceGeo |
shearZX(IDoubleI szx,
IDoubleI sxz) |
ISurfaceGeo |
shearZX(IVecI center,
double szx,
double sxz) |
ISurfaceGeo |
shearZX(IVecI center,
IDoubleI szx,
IDoubleI sxz) |
ISurfaceGeo |
sub(double x,
double y,
double z) |
ISurfaceGeo |
sub(IDoubleI x,
IDoubleI y,
IDoubleI z) |
ISurfaceGeo |
sub(IVecI v) |
ISurfaceGeo |
swapUV()
swap U and V parameter
|
ISurfaceGeo |
transform(IMatrix3I mat) |
ISurfaceGeo |
transform(IMatrix4I mat) |
ISurfaceGeo |
transform(IVecI xvec,
IVecI yvec,
IVecI zvec) |
ISurfaceGeo |
transform(IVecI xvec,
IVecI yvec,
IVecI zvec,
IVecI translate) |
ISurfaceGeo |
translate(double x,
double y,
double z)
translate() is alias of add()
|
ISurfaceGeo |
translate(IDoubleI x,
IDoubleI y,
IDoubleI z) |
ISurfaceGeo |
translate(IVecI v) |
IDouble |
u(IIntegerI epIdx,
IDoubleI epFraction) |
double |
u(int epIdx,
double epFraction) |
int |
ucpNum() |
int |
ucpNum(ISwitchE e) |
IInteger |
ucpNum(ISwitchR r) |
int |
udeg() |
int |
udeg(ISwitchE e) |
IInteger |
udeg(ISwitchR r) |
double |
uend() |
double |
uend(ISwitchE e) |
IDouble |
uend(ISwitchR r) |
int |
uepNum() |
int |
uepNum(ISwitchE e) |
IInteger |
uepNum(ISwitchR r) |
IDouble |
uknot(IIntegerI i) |
double |
uknot(int i) |
int |
uknotNum() |
int |
uknotNum(ISwitchE e) |
IInteger |
uknotNum(ISwitchR r) |
double[] |
uknots() |
double[] |
uknots(ISwitchE e) |
IDouble[] |
uknots(ISwitchR r) |
int |
unum() |
int |
unum(ISwitchE e) |
IInteger |
unum(ISwitchR r) |
ISurfaceGeo |
updateCache() |
double |
ustart()
original knots start value and end value
|
double |
ustart(ISwitchE e) |
IDouble |
ustart(ISwitchR r) |
IVec |
utan(double u,
double v) |
void |
utan(double u,
double v,
IVec retval) |
IVec |
utan(IDoubleI u,
IDoubleI v) |
IVec |
utan(IVec2I v) |
IVec2 |
uv(IVec2I pt)
approximate invert projection from 2D location to interanl UV parameter (closest point on surface)
|
IVec2 |
uv(IVecI pt)
approximate invert projection from 3D location to interanl UV parameter (closest point on surface)
|
IDouble |
v(IIntegerI epIdx,
IDoubleI epFraction) |
double |
v(int epIdx,
double epFraction) |
int |
vcpNum() |
int |
vcpNum(ISwitchE e) |
IInteger |
vcpNum(ISwitchR r) |
int |
vdeg() |
int |
vdeg(ISwitchE e) |
IInteger |
vdeg(ISwitchR r) |
double |
vend() |
double |
vend(ISwitchE e) |
IDouble |
vend(ISwitchR r) |
int |
vepNum() |
int |
vepNum(ISwitchE e) |
IInteger |
vepNum(ISwitchR r) |
IDouble |
vknot(IIntegerI i) |
double |
vknot(int i) |
int |
vknotNum() |
int |
vknotNum(ISwitchE e) |
IInteger |
vknotNum(ISwitchR r) |
double[] |
vknots() |
double[] |
vknots(ISwitchE e) |
IDouble[] |
vknots(ISwitchR r) |
int |
vnum() |
int |
vnum(ISwitchE e) |
IInteger |
vnum(ISwitchR r) |
double |
vstart() |
double |
vstart(ISwitchE e) |
IDouble |
vstart(ISwitchR r) |
IVec |
vtan(double u,
double v) |
void |
vtan(double u,
double v,
IVec retval) |
IVec |
vtan(IDoubleI u,
IDoubleI v) |
IVec |
vtan(IVec2I v) |
createClosedCP, createClosedCPInU, createClosedCPInV, createClosedKnots, createKnots, createKnots, invertKnots, isValidKnots, normalizeKnots
createObject, parent, parent
public IVecI[][] controlPoints
public int udegree
public int vdegree
public double[] uknots
public double[] vknots
public double ustart
public double uend
public double vstart
public double vend
public boolean[][] defaultWeights
public IBSplineBasisFunction basisFunctionU
public IBSplineBasisFunction basisFunctionV
public IBSplineBasisFunction derivativeFunctionU
public IBSplineBasisFunction derivativeFunctionV
public java.util.ArrayList<java.util.ArrayList<ITrimCurve>> innerTrimLoop
public java.util.ArrayList<java.util.ArrayList<ITrimCurve>> outerTrimLoop
public boolean innerTrimClosed
public boolean outerTrimClosed
public ISurfaceCache uvSearchCache
public ITrimCache trimCache
public ISurfaceGeo()
public ISurfaceGeo(IVecI[][] cpts, int udegree, int vdegree, double[] uknots, double[] vknots, double ustart, double uend, double vstart, double vend)
public ISurfaceGeo(IVecI[][] cpts, int udegree, int vdegree, double[] uknots, double[] vknots)
public ISurfaceGeo(IVecI[][] cpts, int udegree, int vdegree)
public ISurfaceGeo(IVecI[][] cpts)
public ISurfaceGeo(IVecI[][] cpts, int udegree, int vdegree, boolean closeU, boolean closeV)
public ISurfaceGeo(IVecI[][] cpts, int udegree, int vdegree, boolean closeU, double[] vk)
public ISurfaceGeo(IVecI[][] cpts, int udegree, int vdegree, double[] uk, boolean closeV)
public ISurfaceGeo(IVecI[][] cpts, boolean closeU, boolean closeV)
public ISurfaceGeo(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double x4, double y4, double z4)
public ISurfaceGeo(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)
public ISurfaceGeo(double[][][] xyzValues)
public ISurfaceGeo(double[][][] xyzValues, int udeg, int vdeg)
public ISurfaceGeo(double[][][] xyzValues, boolean closeU, boolean closeV)
public ISurfaceGeo(double[][][] xyzValues, int udeg, int vdeg, boolean closeU, boolean closeV)
public ISurfaceGeo(ICurveI trimCurve)
public ISurfaceGeo(ICurveI[] trimCurves)
public ISurfaceGeo(IVecI[] trimCrvPts)
public ISurfaceGeo(IVecI[] trimCrvPts, int trimCrvDeg)
public ISurfaceGeo(IVecI[] trimCrvPts, int trimCrvDeg, double[] trimCrvKnots)
public ISurfaceGeo(IVecI[] trimCrvPts, int trimCrvDeg, IVecI[] innerTrimCrvPts, int innerTrimCrvDeg)
public ISurfaceGeo(IVecI[] trimCrvPts, int trimCrvDeg, double[] trimCrvKnots, IVecI[] innerTrimCrvPts, int innerTrimCrvDeg, double[] innerTrimCrvKnots)
public ISurfaceGeo(IVecI[] trimCrvPts, int trimCrvDeg, IVecI[][] innerTrimCrvPts, int[] innerTrimCrvDeg)
public ISurfaceGeo(IVecI[] trimCrvPts, int trimCrvDeg, double[] trimCrvKnots, IVecI[][] innerTrimCrvPts, int[] innerTrimCrvDeg, double[][] innerTrimCrvKnots)
public ISurfaceGeo(ISurfaceGeo srf)
public void init(IVecI[][] cpts, int udeg, int vdeg, boolean closeU, boolean closeV)
public void init(IVecI[][] cpts, int udeg, int vdeg, double[] uk, boolean closeV)
public void init(IVecI[][] cpts, int udeg, int vdeg, boolean closeU, double[] vk)
public void init(IVecI[][] cpts, int udeg, int vdeg, double[] uk, double[] vk)
public void initWithPlanarTrim(IVecI[] cpts, int trimDeg, double[] trimKnots, boolean close)
public void initWithPlanarTrim(IVecI[] cpts, int trimDeg, double[] trimKnots, boolean close, IVecI[][] innerCpts, int[] innerTrimDeg, double[][] innerTrimKnots, boolean[] innerClose)
public void initWithPlanarTrims(ICurveI[] curves)
public static boolean isValidCP(IVecI[][] cpts, int udeg, int vdeg, double[] uknots, double[] vknots)
public static boolean isValidCP(IVecI[][] cpts)
public static void checkDuplicatedCP(IVecI[][] cpts)
public static void checkDuplicatedCPOnEdge(IVecI[][] cpts)
public static IVec[][] getPointsFromArray(double[][][] xyzvalues)
public static IVec[] getPlanarUVPoints(IVecI[] pts, IVecI origin, IVec uvec, IVec vvec)
public static double[][] getPlanarUVRange(IVec[] uvpts)
public ISurfaceGeo get()
get
in interface IParameter
get
in interface ISurfaceI
get
in interface ISurfaceOp
public ISurfaceGeo dup()
ITransformable
dup
in interface ISurfaceI
dup
in interface ITransformable
public void pt(double u, double v, IVec retval)
public IVec pt(double u, double v, double n)
public void utan(double u, double v, IVec retval)
public void vtan(double u, double v, IVec retval)
public IVec nml(double u, double v)
ISurfaceI
public void nml(double u, double v, IVec retval)
public void nrml(double u, double v, IVec retval)
public void normal(double u, double v, IVec retval)
public IVecI cp(int i, int j)
public ISurfaceGeo addUCP(IVecI[] pts)
public ISurfaceGeo addVCP(IVecI[] pts)
public IVec ep(int i, int j)
public IVec mid()
public IVec center()
public IVec2 uv(IVecI pt)
public IVec2 uv(IVec2I pt)
public double dist(IVecI pt)
public double dist(IVec2I pt)
public boolean isRational()
isRational
in interface ISurfaceI
public boolean isRational(ISwitchE e)
isRational
in interface ISurfaceI
public IBool isRational(ISwitchR r)
isRational
in interface ISurfaceI
public double ustart()
ISurfaceI
public ISurfaceGeo revU()
public ISurfaceGeo revTrimU()
public ISurfaceGeo revV()
public ISurfaceGeo revUV()
public ISurfaceGeo revN()
public ISurfaceGeo flipU()
public ISurfaceGeo flipV()
public ISurfaceGeo flipUV()
public ISurfaceGeo flipN()
public ISurfaceGeo swapUV()
public ISurfaceGeo clearInnerTrim()
clearInnerTrim
in interface ISurfaceI
public ISurfaceGeo clearOuterTrim()
clearOuterTrim
in interface ISurfaceI
public ISurfaceGeo clearTrim()
public static boolean isTrimLoopInsideBoundary(ITrimCurveI[] crv, double u1, double v1, double u2, double v2)
public static boolean isTrimCurveInsideBoundary(ITrimCurveI crv, double u1, double v1, double u2, double v2)
public static boolean isTrimCurveCPInsideBoundary(ITrimCurveI crv, double u1, double v1, double u2, double v2)
public static boolean isTrimLoopClosed(ITrimCurveI[] crv)
public boolean checkTrimLoop(ITrimCurve[] loop)
public boolean checkTrimLoop(ITrimCurve loop)
public boolean checkTrim(ITrimCurve curve)
public ISurfaceGeo addDefaultOuterTrimLoop()
public ISurfaceGeo addInnerTrimLoop(ITrimCurveI[] loop)
addInnerTrimLoop
in interface ISurfaceI
loop
- array of trim curves need to form closed looppublic ISurfaceGeo addInnerTrimLoop(ITrimCurve[] loop)
public ISurfaceGeo addInnerTrimLoop(ITrimCurveI loop)
addInnerTrimLoop
in interface ISurfaceI
loop
- trim curve needs to be closedpublic ISurfaceGeo addInnerTrimLoop(ITrimCurve loop)
public ISurfaceGeo addInnerTrimLoop(ICurveI[] trim)
ISurfaceI
addInnerTrimLoop
in interface ISurfaceI
public ISurfaceGeo addInnerTrimLoop(ICurveI[] trim, boolean deleteInput)
addInnerTrimLoop
in interface ISurfaceI
public ISurfaceGeo addInnerTrimLoop(ICurveI trim)
ISurfaceI
addInnerTrimLoop
in interface ISurfaceI
public ISurfaceGeo addInnerTrimLoop(ICurveI trim, boolean deleteInput)
addInnerTrimLoop
in interface ISurfaceI
public ISurfaceGeo addInnerTrim(ITrimCurve trimCrv)
public ISurfaceGeo closeInnerTrim()
public ISurfaceGeo addOuterTrimLoop(ITrimCurveI[] loop)
addOuterTrimLoop
in interface ISurfaceI
public ISurfaceGeo addOuterTrimLoop(ITrimCurve[] loop)
public ISurfaceGeo addOuterTrimLoop(ITrimCurveI loop)
addOuterTrimLoop
in interface ISurfaceI
public ISurfaceGeo addOuterTrimLoop(ITrimCurve loop)
public ISurfaceGeo addOuterTrimLoop(ICurveI[] trim)
addOuterTrimLoop
in interface ISurfaceI
public ISurfaceGeo addOuterTrimLoop(ICurveI[] trim, boolean deleteInput)
addOuterTrimLoop
in interface ISurfaceI
public ISurfaceGeo addOuterTrimLoop(ICurveI trim)
addOuterTrimLoop
in interface ISurfaceI
public ISurfaceGeo addOuterTrimLoop(ICurveI trim, boolean deleteInput)
addOuterTrimLoop
in interface ISurfaceI
public ISurfaceGeo addOuterTrim(ITrimCurve trimCrv)
public ISurfaceGeo closeOuterTrim()
public boolean hasInnerTrim()
hasInnerTrim
in interface ISurfaceI
public boolean hasOuterTrim()
hasOuterTrim
in interface ISurfaceI
public boolean hasInnerTrim(ISwitchE e)
hasInnerTrim
in interface ISurfaceI
public boolean hasOuterTrim(ISwitchE e)
hasOuterTrim
in interface ISurfaceI
public IBool hasInnerTrim(ISwitchR r)
hasInnerTrim
in interface ISurfaceI
public IBool hasOuterTrim(ISwitchR r)
hasOuterTrim
in interface ISurfaceI
public int innerTrimLoopNum()
innerTrimLoopNum
in interface ISurfaceI
public int outerTrimLoopNum()
outerTrimLoopNum
in interface ISurfaceI
public int innerTrimLoopNum(ISwitchE e)
innerTrimLoopNum
in interface ISurfaceI
public int outerTrimLoopNum(ISwitchE e)
outerTrimLoopNum
in interface ISurfaceI
public IInteger innerTrimLoopNum(ISwitchR r)
innerTrimLoopNum
in interface ISurfaceI
public IInteger outerTrimLoopNum(ISwitchR r)
outerTrimLoopNum
in interface ISurfaceI
public int innerTrimNum(int i)
innerTrimNum
in interface ISurfaceI
public IInteger innerTrimNum(IIntegerI i)
innerTrimNum
in interface ISurfaceI
public int outerTrimNum(int i)
outerTrimNum
in interface ISurfaceI
public IInteger outerTrimNum(IIntegerI i)
outerTrimNum
in interface ISurfaceI
public ITrimCurveI[] innerTrimLoop(int i)
innerTrimLoop
in interface ISurfaceI
public ITrimCurveI[] innerTrimLoop(IIntegerI i)
innerTrimLoop
in interface ISurfaceI
public ITrimCurveI[] outerTrimLoop(int i)
outerTrimLoop
in interface ISurfaceI
public ITrimCurveI[] outerTrimLoop(IIntegerI i)
outerTrimLoop
in interface ISurfaceI
public ITrimCurveI innerTrim(int i, int j)
public ITrimCurveI innerTrim(IIntegerI i, IIntegerI j)
public ITrimCurveI outerTrim(int i, int j)
public ITrimCurveI outerTrim(IIntegerI i, IIntegerI j)
public boolean hasDefaultTrim()
hasDefaultTrim
in interface ISurfaceI
public boolean hasDefaultTrim(ISwitchE e)
hasDefaultTrim
in interface ISurfaceI
public IBool hasDefaultTrim(ISwitchR r)
hasDefaultTrim
in interface ISurfaceI
public boolean isFlat()
public boolean isUClosed()
public boolean isVClosed()
public boolean isInsideTrim(IVec2I v)
public boolean isInsideTrim(double u, double v)
public boolean isInsideTrim(IVec2 v)
public ISurfaceGeo updateCache()
public ISurfaceGeo add(double x, double y, double z)
add
in interface ISurfaceI
add
in interface ITransformable
public ISurfaceGeo add(IDoubleI x, IDoubleI y, IDoubleI z)
add
in interface ISurfaceI
add
in interface ITransformable
public ISurfaceGeo add(IVecI v)
add
in interface ISurfaceI
add
in interface ITransformable
public ISurfaceGeo sub(double x, double y, double z)
sub
in interface ISurfaceI
sub
in interface ITransformable
public ISurfaceGeo sub(IDoubleI x, IDoubleI y, IDoubleI z)
sub
in interface ISurfaceI
sub
in interface ITransformable
public ISurfaceGeo sub(IVecI v)
sub
in interface ISurfaceI
sub
in interface ITransformable
public ISurfaceGeo mul(IDoubleI v)
mul
in interface ISurfaceI
mul
in interface ITransformable
public ISurfaceGeo mul(double v)
mul
in interface ISurfaceI
mul
in interface ITransformable
public ISurfaceGeo div(IDoubleI v)
div
in interface ISurfaceI
div
in interface ITransformable
public ISurfaceGeo div(double v)
div
in interface ISurfaceI
div
in interface ITransformable
public ISurfaceGeo neg()
neg
in interface ISurfaceI
neg
in interface ITransformable
public ISurfaceGeo flip()
flip
in interface ISurfaceI
flip
in interface ITransformable
public ISurfaceGeo add(IVecI v, double f)
add
in interface ISurfaceI
add
in interface ITransformable
public ISurfaceGeo add(IVecI v, IDoubleI f)
ITransformable
add
in interface ISurfaceI
add
in interface ITransformable
public ISurfaceGeo add(double f, IVecI v)
add
in interface ITransformable
public ISurfaceGeo add(IDoubleI f, IVecI v)
ITransformable
add
in interface ITransformable
public ISurfaceGeo rot(IDoubleI angle)
ITransformable
rot
in interface ITransformable
public ISurfaceGeo rot(double angle)
rot
in interface ITransformable
public ISurfaceGeo rot(IVecI axis, IDoubleI angle)
ITransformable
rot
in interface ISurfaceI
rot
in interface ITransformable
public ISurfaceGeo rot(IVecI axis, double angle)
rot
in interface ISurfaceI
rot
in interface ITransformable
public ISurfaceGeo rot(IVecI center, IVecI axis, IDoubleI angle)
ITransformable
rot
in interface ISurfaceI
rot
in interface ITransformable
public ISurfaceGeo rot(IVecI center, IVecI axis, double angle)
rot
in interface ISurfaceI
rot
in interface ITransformable
public ISurfaceGeo rot(IVecI axis, IVecI destDir)
rot
in interface ISurfaceI
rot
in interface ITransformable
public ISurfaceGeo rot(IVecI center, IVecI axis, IVecI destPt)
rot
in interface ISurfaceI
rot
in interface ITransformable
public ISurfaceGeo rot2(IDoubleI angle)
ITransformable
rot2
in interface ITransformable
public ISurfaceGeo rot2(double angle)
ITransformable
rot2
in interface ITransformable
public ISurfaceGeo rot2(IVecI center, IDoubleI angle)
ITransformable
rot2
in interface ITransformable
public ISurfaceGeo rot2(IVecI center, double angle)
rot2
in interface ITransformable
public ISurfaceGeo rot2(IVecI destDir)
rot2
in interface ITransformable
public ISurfaceGeo rot2(IVecI center, IVecI destPt)
rot2
in interface ITransformable
public ISurfaceGeo scale(IDoubleI f)
scale
in interface ISurfaceI
scale
in interface ITransformable
public ISurfaceGeo scale(double f)
scale
in interface ISurfaceI
scale
in interface ITransformable
public ISurfaceGeo scale(IVecI center, IDoubleI f)
scale
in interface ISurfaceI
scale
in interface ITransformable
public ISurfaceGeo scale(IVecI center, double f)
scale
in interface ISurfaceI
scale
in interface ITransformable
public ISurfaceGeo scale1d(IVecI axis, double f)
scale1d
in interface ISurfaceI
scale1d
in interface ITransformable
public ISurfaceGeo scale1d(IVecI axis, IDoubleI f)
scale1d
in interface ISurfaceI
scale1d
in interface ITransformable
public ISurfaceGeo scale1d(IVecI center, IVecI axis, double f)
scale1d
in interface ISurfaceI
scale1d
in interface ITransformable
public ISurfaceGeo scale1d(IVecI center, IVecI axis, IDoubleI f)
scale1d
in interface ISurfaceI
scale1d
in interface ITransformable
public ISurfaceGeo ref(IVecI planeDir)
ref
in interface ISurfaceI
ref
in interface ITransformable
public ISurfaceGeo ref(IVecI center, IVecI planeDir)
ref
in interface ISurfaceI
ref
in interface ITransformable
public ISurfaceGeo mirror(IVecI planeDir)
mirror
in interface ISurfaceI
mirror
in interface ITransformable
public ISurfaceGeo mirror(IVecI center, IVecI planeDir)
mirror
in interface ISurfaceI
mirror
in interface ITransformable
public ISurfaceGeo shear(double sxy, double syx, double syz, double szy, double szx, double sxz)
shear
in interface ISurfaceI
shear
in interface ITransformable
public ISurfaceGeo shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)
shear
in interface ISurfaceI
shear
in interface ITransformable
public ISurfaceGeo shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)
shear
in interface ISurfaceI
shear
in interface ITransformable
public ISurfaceGeo shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)
shear
in interface ISurfaceI
shear
in interface ITransformable
public ISurfaceGeo shearXY(double sxy, double syx)
shearXY
in interface ISurfaceI
shearXY
in interface ITransformable
public ISurfaceGeo shearXY(IDoubleI sxy, IDoubleI syx)
shearXY
in interface ISurfaceI
shearXY
in interface ITransformable
public ISurfaceGeo shearXY(IVecI center, double sxy, double syx)
shearXY
in interface ISurfaceI
shearXY
in interface ITransformable
public ISurfaceGeo shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)
shearXY
in interface ISurfaceI
shearXY
in interface ITransformable
public ISurfaceGeo shearYZ(double syz, double szy)
shearYZ
in interface ISurfaceI
shearYZ
in interface ITransformable
public ISurfaceGeo shearYZ(IDoubleI syz, IDoubleI szy)
shearYZ
in interface ISurfaceI
shearYZ
in interface ITransformable
public ISurfaceGeo shearYZ(IVecI center, double syz, double szy)
shearYZ
in interface ISurfaceI
shearYZ
in interface ITransformable
public ISurfaceGeo shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)
shearYZ
in interface ISurfaceI
shearYZ
in interface ITransformable
public ISurfaceGeo shearZX(double szx, double sxz)
shearZX
in interface ISurfaceI
shearZX
in interface ITransformable
public ISurfaceGeo shearZX(IDoubleI szx, IDoubleI sxz)
shearZX
in interface ISurfaceI
shearZX
in interface ITransformable
public ISurfaceGeo shearZX(IVecI center, double szx, double sxz)
shearZX
in interface ISurfaceI
shearZX
in interface ITransformable
public ISurfaceGeo shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)
shearZX
in interface ISurfaceI
shearZX
in interface ITransformable
public ISurfaceGeo mv(double x, double y, double z)
mv
in interface ISurfaceI
mv
in interface ITransformable
public ISurfaceGeo mv(IDoubleI x, IDoubleI y, IDoubleI z)
mv
in interface ISurfaceI
mv
in interface ITransformable
public ISurfaceGeo mv(IVecI v)
mv
in interface ISurfaceI
mv
in interface ITransformable
public ISurfaceGeo cp()
cp
in interface ISurfaceI
cp
in interface ITransformable
public ISurfaceGeo cp(double x, double y, double z)
cp
in interface ISurfaceI
cp
in interface ITransformable
public ISurfaceGeo cp(IDoubleI x, IDoubleI y, IDoubleI z)
cp
in interface ISurfaceI
cp
in interface ITransformable
public ISurfaceGeo cp(IVecI v)
cp
in interface ISurfaceI
cp
in interface ITransformable
public ISurfaceGeo translate(double x, double y, double z)
translate
in interface ISurfaceI
translate
in interface ITransformable
public ISurfaceGeo translate(IDoubleI x, IDoubleI y, IDoubleI z)
translate
in interface ISurfaceI
translate
in interface ITransformable
public ISurfaceGeo translate(IVecI v)
translate
in interface ISurfaceI
translate
in interface ITransformable
public ISurfaceGeo transform(IMatrix3I mat)
transform
in interface ISurfaceI
transform
in interface ITransformable
public ISurfaceGeo transform(IMatrix4I mat)
transform
in interface ISurfaceI
transform
in interface ITransformable
public ISurfaceGeo transform(IVecI xvec, IVecI yvec, IVecI zvec)
transform
in interface ISurfaceI
transform
in interface ITransformable
public ISurfaceGeo transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)
transform
in interface ISurfaceI
transform
in interface ITransformable