org.jscience.mathematics.geometry
Class BsplineSurface3D

java.lang.Object
  extended by org.jscience.mathematics.geometry.GeometryElement
      extended by org.jscience.mathematics.geometry.AbstractParametricSurface
          extended by org.jscience.mathematics.geometry.ParametricSurface3D
              extended by org.jscience.mathematics.geometry.BoundedSurface3D
                  extended by org.jscience.mathematics.geometry.FreeformSurfaceWithControlPoints3D
                      extended by org.jscience.mathematics.geometry.BsplineSurface3D
All Implemented Interfaces:
java.io.Serializable

public class BsplineSurface3D
extends FreeformSurfaceWithControlPoints3D

�R���� : ��L�? (��?���) �a�X�v���C���Ȗʂ���їL�?�a�X�v���C���Ȗʂ�\���N���X?B

���̃N���X�̃C���X�^���X��?A �a�X�v���C���� U/V ���̃m�b�g��Ɋւ���?�� uKnotData/vKnotData (BsplineKnot) ��?��?B ?���_��Ȃǂ�ێ?����t�B?[���h�ɂ‚��Ă�?A �X?[�p?[�N���X�̉�?� ��Q?�?B

�a�X�v���C���Ȗʂ� U/V ���ꂼ��̕��̃p���??[�^��`���?A �Ή�����m�b�g��ɂ�BČ��܂�?B

(u, v) ��p���??[�^�Ƃ���a�X�v���C���Ȗ� P(u, v) �̃p���?�g���b�N�\����?A�ȉ��̒ʂ�?B

        m = U ���̎�?�
        n = V ���̎�?�
        p = U ����?���_��?�
        q = V ����?���_��?�
        K = U ���̃Z�O�?���g��?� (U ���J�����`�� : (p - m), U ���‚����`�� : p)
        L = V ���̃Z�O�?���g��?� (V ���J�����`�� : (q - n), V ���‚����`�� : q)
        di,j = controlPoints[i][j]
        wi,j = weights[i][j]
 
�Ƃ���?A��L�?�a�X�v���C���Ȗʂ�
        P(u, v) = ((di,j * Nm,i(u)) �̑?�a) * Nn,j(v) �̑?�a      (i = 0, ..., K+m-1, j = 0, ..., L+n-1)
 
�L�?�a�X�v���C���Ȗʂ�
                  ((wi,j * di,j * Nm,i(u)) �̑?�a) * Nn,j(v) �̑?�a
        P(u, v) = -------------------------------------------------     (i = 0, ..., K+m-1, j = 0, ..., L+n-1)
                  ((wi,j * Nm,i(u)) �̑?�a) * Nn,j(v) �̑?�a
 
������ Nm,i(u), Nn,j(v) �͂a�X�v���C������?�?B �Ȃ�?A U ���ɕ‚����`����?�?��� i > (p - 1) �ƂȂ� i �ɂ‚��Ă�?A �Ή�����?���_��?d�݂����ꂼ�� dk, wk (k = i - p) �ƂȂ�?B ���l��?A V ���ɕ‚����`����?�?��� j > (q - 1) �ƂȂ� j �ɂ‚��Ă�?A �Ή�����?���_��?d�݂����ꂼ�� dl, wl (l = j - q) �ƂȂ�?B

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.jscience.mathematics.geometry.FreeformSurfaceWithControlPoints3D
controlPoints, weights
 
Constructor Summary
BsplineSurface3D(int uDegree, boolean uPeriodic, int[] uKnotMultiplicities, double[] uKnots, int vDegree, boolean vPeriodic, int[] vKnotMultiplicities, double[] vKnots, Point3D[][] controlPoints)
          �m�b�g��𖾎���?
BsplineSurface3D(int uDegree, boolean uPeriodic, int[] uKnotMultiplicities, double[] uKnots, int vDegree, boolean vPeriodic, int[] vKnotMultiplicities, double[] vKnots, Point3D[][] controlPoints, double[][] weights)
          �m�b�g��𖾎���?
BsplineSurface3D(int uDegree, boolean uPeriodic, int uKnotSpec, int vDegree, boolean vPeriodic, int vKnotSpec, Point3D[][] controlPoints)
          �m�b�g��𖾎������� �m�b�g��̎�ʂ�?
BsplineSurface3D(int uDegree, boolean uPeriodic, int uKnotSpec, int vDegree, boolean vPeriodic, int vKnotSpec, Point3D[][] controlPoints, double[][] weights)
          �m�b�g��𖾎������� �m�b�g��̎��?
BsplineSurface3D(Point3D[][] points, double[] uParams, double[] vParams, boolean uIsClosed, boolean vIsClosed)
          �ʑ��I�Ɋi�q?
BsplineSurface3D(Point3D[][] points, double[] uParams, double[] vParams, boolean uIsClosed, boolean vIsClosed, ToleranceForDistance tol)
          �ʑ��I�Ɋi�q?
 
Method Summary
 Point3D controlPointAt(int i, int j)
          ���̋Ȗʂ� (i, j) �Ԗڂ�?
 Point3D coordinates(double uParam, double vParam)
          ���̋Ȗʂ�?
protected  ParametricSurface3D doTransformBy(boolean reverseTransform, CartesianTransformationOperator3D transformationOperator, java.util.Hashtable transformedGeometries)
          ���̋Ȗʂ�?
 SurfaceDerivative3D evaluation(double uParam, double vParam)
          ���̋Ȗʂ�?
 IntersectionPoint3D[] intersect(ParametricCurve3D mate)
          ���̋ȖʂƑ��̋�?
 SurfaceSurfaceInterference3D[] intersect(ParametricSurface3D mate)
          ���̋ȖʂƑ��̋Ȗʂ̌�?
 BsplineSurface3D offsetByBsplineSurface(ParameterSection uPint, ParameterSection vPint, double magni, int side, ToleranceForDistance tol)
          ���̋Ȗʂ̎w��� (�p���??
protected  void output(java.io.PrintWriter writer, int indent)
          ?
 PointOnSurface3D[] projectFrom(Point3D point)
          �^����ꂽ�_���炱�̋Ȗʂւ̓��e�_��?
 Vector3D[] tangentVector(double uParam, double vParam)
          ���̋Ȗʂ�?
 BsplineSurface3D toBsplineSurface()
          ���� (��`�̃p���??
 BsplineSurface3D toBsplineSurface(ParameterSection uPint, ParameterSection vPint)
          ���̋Ȗʂ̎w��� (�p���??
 Mesh3D toMesh(ParameterSection uPint, ParameterSection vPint, ToleranceForDistance tol)
          ���̋Ȗʂ̎w��� (�p���??
 Mesh3D toMesh(ToleranceForDistance tol)
          ���� (��`�̃p���??
 java.util.Vector toNonStructuredPoints(ParameterSection uParameterSection, ParameterSection vParameterSection, double tolerance, double[] scalingFactor)
          ���̋Ȗʂ̎w��� (�p���??
 PureBezierSurface3D[][] toPureBezierSurfaceArray()
          ���̂a�X�v���C���Ȗʂ�?
 BsplineSurface3D truncate(ParameterSection uSection, ParameterSection vSection)
          ���̂a�X�v���C���Ȗʂ�?
 int uDegree()
          ���̋Ȗʂ� U ���̎�?
 BsplineSurface3D[] uDivide(double uParam)
          ���̋Ȗʂ�?
 BsplineSurface3D uElevateOneDegree()
          ���̋Ȗʂ�?
 BsplineSurface3D uInsertKnot(double uParam)
          ���̋Ȗʂ�?
 ParametricCurve3D uIsoParametricCurve(double uParam)
          ���̋Ȗʂ� U �p���??
 int uKnotSpec()
          ���̋Ȗʂ� U ���̃m�b�g�̎�ʂ�Ԃ�?
 double uKnotValueAt(int n)
          ���̋Ȗʂ� U ���� n �Ԃ߂̃m�b�g�l��Ԃ�?
 int uNKnotValues()
          ���̋Ȗʂ� U ���̃m�b�g��?
 BsplineSurface3D uShiftIfPeriodic(double newStartParam)
          ���� U ����?
 int vDegree()
          ���̋Ȗʂ� V ���̎�?
 BsplineSurface3D[] vDivide(double vParam)
           
 BsplineSurface3D vElevateOneDegree()
          ���̋Ȗʂ�?
 BsplineSurface3D vInsertKnot(double vParam)
          ���̋Ȗʂ�?
 ParametricCurve3D vIsoParametricCurve(double vParam)
          ���̋Ȗʂ� V �p���??
 int vKnotSpec()
          ���̋Ȗʂ� V ���̃m�b�g�̎�ʂ�Ԃ�?
 double vKnotValueAt(int n)
          ���̋Ȗʂ� V ���� n �Ԃ߂̃m�b�g�l��Ԃ�?
 int vNKnotValues()
          ���̋Ȗʂ� V ���̃m�b�g��?
 BsplineSurface3D vShiftIfPeriodic(double newStartParam)
          ���� V ����?
 
Methods inherited from class org.jscience.mathematics.geometry.FreeformSurfaceWithControlPoints3D
allocateDoubleArray, controlPoints, convRational0Deriv, convRational1Deriv, convRational2Deriv, isFreeform, isPolynomial, isRational, makeUniformWeights, nControlPoints, setCoordinatesToDoubleArray, toDoubleArray, uNControlPoints, vNControlPoints, weightAt, weights
 
Methods inherited from class org.jscience.mathematics.geometry.BoundedSurface3D
fillet, offsetByBsplineSurface
 
Methods inherited from class org.jscience.mathematics.geometry.ParametricSurface3D
curvature, dimension, fillet, is3D, nearestProjectFrom, nearestProjectWithDistanceFrom, normalVector, pointToParameter, reverseTransformBy, transformBy, transformBy
 
Methods inherited from class org.jscience.mathematics.geometry.AbstractParametricSurface
checkUValidity, checkUValidity, checkVValidity, checkVValidity, isParametric, isSurface, isUFinite, isUInfinite, isUNonPeriodic, isUPeriodic, isValidUParameter, isValidVParameter, isVFinite, isVInfinite, isVNonPeriodic, isVPeriodic, uParameterDomain, vParameterDomain
 
Methods inherited from class org.jscience.mathematics.geometry.GeometryElement
getClassName, getToleranceForAngle, getToleranceForAngleAsObject, getToleranceForDistance, getToleranceForDistance2, getToleranceForDistanceAsObject, getToleranceForParameter, getToleranceForParameterAsObject, getToleranceForRealNumber, getToleranceForRealNumberAsObject, is1D, is2D, isCurve, isPlacement, isPoint, isTransformationOperator, isVector, makeIndent, output
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BsplineSurface3D

public BsplineSurface3D(int uDegree,
                        boolean uPeriodic,
                        int[] uKnotMultiplicities,
                        double[] uKnots,
                        int vDegree,
                        boolean vPeriodic,
                        int[] vKnotMultiplicities,
                        double[] vKnots,
                        Point3D[][] controlPoints)
�m�b�g��𖾎���?A ?���_���^���đ�?����ȖʂƂ��ăI�u�W�F�N�g��?\�z����?B

���̃R���X�g���N�^��?A super(controlPoints) ��Ă�?o���Ă���?B

uKnotData ��?\�z�ɂ�?A new BsplineKnot(uDegree, KnotType.UNSPECIFIED, uPeriodic, uKnotMultiplicities, uKnots, controlPoints.length) ��Ă�?o���Ă���?B

vKnotData ��?\�z�ɂ�?A new BsplineKnot(vDegree, KnotType.UNSPECIFIED, vPeriodic, vKnotMultiplicities, vKnots, controlPoints[0].length) ��Ă�?o���Ă���?B

Parameters:
uDegree - U ���̎�?�
uPeriodic - U ���‚����`�����ۂ���\���t���O
uKnotMultiplicities - U ���̃m�b�g��?d�x�̔z��
uKnots - U ���̃m�b�g�l�̔z��
vDegree - V ���̎�?�
vPeriodic - V ���‚����`�����ۂ���\���t���O
vKnotMultiplicities - V ���̃m�b�g��?d�x�̔z��
vKnots - V ���̃m�b�g�l�̔z��
controlPoints - ?���_�̔z��

BsplineSurface3D

public BsplineSurface3D(int uDegree,
                        boolean uPeriodic,
                        int uKnotSpec,
                        int vDegree,
                        boolean vPeriodic,
                        int vKnotSpec,
                        Point3D[][] controlPoints)
�m�b�g��𖾎������� �m�b�g��̎�ʂ�?���_���^���đ�?����ȖʂƂ��ăI�u�W�F�N�g��?\�z����?B

���܂̂Ƃ���?AuKnotSpec/vKnotSpec ���Ƃ蓾��l�� KnotType.UNIFORM_KNOTS �����ł��� (KnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} �ɂ͖��Ή�) ?B

���̃R���X�g���N�^��?A super(controlPoints) ��Ă�?o���Ă���?B

uKnotData ��?\�z�ɂ�?A new BsplineKnot(uDegree, uKnotSpec, uPeriodic, null, null, controlPoints.length) ��Ă�?o���Ă���?B

vKnotData ��?\�z�ɂ�?A new BsplineKnot(vDegree, vKnotSpec, vPeriodic, null, null, controlPoints[0].length) ��Ă�?o���Ă���?B

Parameters:
uDegree - U ���̎�?�
uPeriodic - U ���‚����`�����ۂ���\���t���O
uKnotSpec - U ���̃m�b�g��̎��
vDegree - V ���̎�?�
vPeriodic - V ���‚����`�����ۂ���\���t���O
vKnotSpec - V ���̃m�b�g��̎��
controlPoints - ?���_�̔z��

BsplineSurface3D

public BsplineSurface3D(int uDegree,
                        boolean uPeriodic,
                        int[] uKnotMultiplicities,
                        double[] uKnots,
                        int vDegree,
                        boolean vPeriodic,
                        int[] vKnotMultiplicities,
                        double[] vKnots,
                        Point3D[][] controlPoints,
                        double[][] weights)
�m�b�g��𖾎���?A ?���_���?d�ݗ��^���ėL�?�ȖʂƂ��ăI�u�W�F�N�g��?\�z����?B

���̃R���X�g���N�^��?A super(controlPoints, weights) ��Ă�?o���Ă���?B

uKnotData ��?\�z�ɂ�?A new BsplineKnot(uDegree, KnotType.UNSPECIFIED, uPeriodic, uKnotMultiplicities, uKnots, controlPoints.length) ��Ă�?o���Ă���?B

vKnotData ��?\�z�ɂ�?A new BsplineKnot(vDegree, KnotType.UNSPECIFIED, vPeriodic, vKnotMultiplicities, vKnots, controlPoints[0].length) ��Ă�?o���Ă���?B

Parameters:
uDegree - U ���̎�?�
uPeriodic - U ���‚����`�����ۂ���\���t���O
uKnotMultiplicities - U ���̃m�b�g��?d�x�̔z��
uKnots - U ���̃m�b�g�l�̔z��
vDegree - V ���̎�?�
vPeriodic - V ���‚����`�����ۂ���\���t���O
vKnotMultiplicities - V ���̃m�b�g��?d�x�̔z��
vKnots - V ���̃m�b�g�l�̔z��
controlPoints - ?���_�̔z��
weights - ?d�݂̔z��

BsplineSurface3D

public BsplineSurface3D(int uDegree,
                        boolean uPeriodic,
                        int uKnotSpec,
                        int vDegree,
                        boolean vPeriodic,
                        int vKnotSpec,
                        Point3D[][] controlPoints,
                        double[][] weights)
�m�b�g��𖾎������� �m�b�g��̎��?A?���_���?d�ݗ��^���ėL�?�ȖʂƂ��ăI�u�W�F�N�g��?\�z����?B

���܂̂Ƃ���?AuKnotSpec/vKnotSpec ���Ƃ蓾��l�� KnotType.UNIFORM_KNOTS �����ł��� (KnotType.{QUASI_UNIFORM_KNOTS, PIECEWISE_BEZIER_KNOTS} �ɂ͖��Ή�) ?B

���̃R���X�g���N�^��?A super(controlPoints, weights) ��Ă�?o���Ă���?B

uKnotData ��?\�z�ɂ�?A new BsplineKnot(uDegree, uKnotSpec, uPeriodic, null, null, controlPoints.length) ��Ă�?o���Ă���?B

vKnotData ��?\�z�ɂ�?A new BsplineKnot(vDegree, vKnotSpec, vPeriodic, null, null, controlPoints[0].length) ��Ă�?o���Ă���?B

Parameters:
uDegree - U ���̎�?�
uPeriodic - U ���‚����`�����ۂ���\���t���O
uKnotSpec - U ���̃m�b�g��̎��
vDegree - V ���̎�?�
vPeriodic - V ���‚����`�����ۂ���\���t���O
vKnotSpec - V ���̃m�b�g��̎��
controlPoints - ?���_�̔z��
weights - ?d�݂̔z��

BsplineSurface3D

public BsplineSurface3D(Point3D[][] points,
                        double[] uParams,
                        double[] vParams,
                        boolean uIsClosed,
                        boolean vIsClosed)
�ʑ��I�Ɋi�q?�̓_�Ԃ�?AU/V ���ꂼ��̕��̓_��ɑΉ�����p���??[�^�l�̗��^����?A ���̓_�Ԃ��Ԃ��鑽?����ȖʂƂ��ăI�u�W�F�N�g��?\�z����?B

uIsClosed �� true ��?�?�?A (uParams �̗v�f?�) = (points �� U ���̗v�f?� + 1) �ƂȂBĂ���K�v������?B ���l��?A vIsClosed �� true ��?�?�?A (vParams �̗v�f?�) = (points �� V ���̗v�f?� + 1) �ƂȂBĂ���K�v������?B

Parameters:
points - ��Ԃ���_��
uParams - �_�ԓ�� U ���̓_��̊e�_�ɂ�����p���??[�^�l�̗�
vParams - �_�ԓ�� V ���̓_��̊e�_�ɂ�����p���??[�^�l�̗�
uIsClosed - U ���‚����`�����ۂ�
vIsClosed - V ���‚����`�����ۂ�

BsplineSurface3D

public BsplineSurface3D(Point3D[][] points,
                        double[] uParams,
                        double[] vParams,
                        boolean uIsClosed,
                        boolean vIsClosed,
                        ToleranceForDistance tol)
�ʑ��I�Ɋi�q?�̓_�Ԃ�?AU/V ���ꂼ��̕��̓_��ɑΉ�����p���??[�^�l�̗��^����?A ���̓_�Ԃ�ߎ����鑽?����ȖʂƂ��ăI�u�W�F�N�g��?\�z����?B

uIsClosed �� true ��?�?�?A (uParams �̗v�f?�) = (points �� U ���̗v�f?� + 1) �ƂȂBĂ���K�v������?B ���l��?A vIsClosed �� true ��?�?�?A (vParams �̗v�f?�) = (points �� V ���̗v�f?� + 1) �ƂȂBĂ���K�v������?B

�w�肳�ꂽ?��x�ŋߎ��ł��Ȃ��B�?�?��ɂ�?A �^����ꂽ�_�Ԃ��Ԃ���Ȗʂ�?�?�����?B

Parameters:
points - �ߎ�����_��
uParams - �_�ԓ�� U ���̓_��̊e�_�ɂ�����p���??[�^�l�̗�
vParams - �_�ԓ�� V ���̓_��̊e�_�ɂ�����p���??[�^�l�̗�
uIsClosed - U ���‚����`�����ۂ�
vIsClosed - V ���‚����`�����ۂ�
tol - �ߎ���?��x
Method Detail

uDegree

public int uDegree()
���̋Ȗʂ� U ���̎�?���Ԃ�?B

Returns:
U ���̎�?�

uKnotSpec

public int uKnotSpec()
���̋Ȗʂ� U ���̃m�b�g�̎�ʂ�Ԃ�?B

Returns:
U ���̃m�b�g�̎��
See Also:
KnotType

uNKnotValues

public int uNKnotValues()
���̋Ȗʂ� U ���̃m�b�g��?���Ԃ�?B

�����Ō���?u�m�b�g��?�?v�Ƃ� uKnotData �� knots �t�B?[���h��?ݒ肳�ꂽ�m�b�g�l�̔z��̒����ł͂Ȃ�?A �a�X�v���C���̃m�b�g��{���̃m�b�g��?��ł���?B

Returns:
U ���̃m�b�g��?�

uKnotValueAt

public double uKnotValueAt(int n)
���̋Ȗʂ� U ���� n �Ԃ߂̃m�b�g�l��Ԃ�?B

�����Ō���?un �Ԗ�?v�Ƃ� uKnotData �� knots �t�B?[���h��?ݒ肳�ꂽ�m�b�g�l�̔z���̃C���f�b�N�X�ł͂Ȃ�?A �a�X�v���C���̃m�b�g��{���̈Ӗ��ł̃C���f�b�N�X�ł���?B

Parameters:
n - �C���f�b�N�X
Returns:
U ���� n �Ԃ߂̃m�b�g�l

controlPointAt

public Point3D controlPointAt(int i,
                              int j)
���̋Ȗʂ� (i, j) �Ԗڂ�?���_��Ԃ�?B

�‚����`����?�?��̓C���f�b�N�X����I�Ɉ���?B

Overrides:
controlPointAt in class FreeformSurfaceWithControlPoints3D
Parameters:
i - U ���̃C���f�b�N�X (i �Ԃ�)
j - V ���̃C���f�b�N�X (j �Ԃ�)
Returns:
?���_

vDegree

public int vDegree()
���̋Ȗʂ� V ���̎�?���Ԃ�?B

Returns:
V ���̎�?�

vKnotSpec

public int vKnotSpec()
���̋Ȗʂ� V ���̃m�b�g�̎�ʂ�Ԃ�?B

Returns:
V ���̃m�b�g�̎��
See Also:
KnotType

vNKnotValues

public int vNKnotValues()
���̋Ȗʂ� V ���̃m�b�g��?���Ԃ�?B

�����Ō���?u�m�b�g��?�?v�Ƃ� vKnotData �� knots �t�B?[���h��?ݒ肳�ꂽ�m�b�g�l�̔z��̒����ł͂Ȃ�?A �a�X�v���C���̃m�b�g��{���̃m�b�g��?��ł���?B

Returns:
V ���̃m�b�g��?�

vKnotValueAt

public double vKnotValueAt(int n)
���̋Ȗʂ� V ���� n �Ԃ߂̃m�b�g�l��Ԃ�?B

�����Ō���?un �Ԗ�?v�Ƃ� vKnotData �� knots �t�B?[���h��?ݒ肳�ꂽ�m�b�g�l�̔z���̃C���f�b�N�X�ł͂Ȃ�?A �a�X�v���C���̃m�b�g��{���̈Ӗ��ł̃C���f�b�N�X�ł���?B

Parameters:
n - �C���f�b�N�X
Returns:
V ���� n �Ԃ߂̃m�b�g�l

coordinates

public Point3D coordinates(double uParam,
                           double vParam)
���̋Ȗʂ�?A�^����ꂽ�p���??[�^�l�ł�?W�l��Ԃ�?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
coordinates in class ParametricSurface3D
Parameters:
uParam - U ���̃p���??[�^�l
vParam - V ���̃p���??[�^�l
Returns:
?W�l
See Also:
ParameterOutOfRange

tangentVector

public Vector3D[] tangentVector(double uParam,
                                double vParam)
���̋Ȗʂ�?A�^����ꂽ�p���??[�^�l�ł�?ڃx�N�g����Ԃ�?B

�����ł�?ڃx�N�g���Ƃ�?A�p���??[�^ U/V �̊e?X�ɂ‚��Ă̈ꎟ�Γ���?��ł���?B

���ʂƂ��ĕԂ�z��̗v�f?��� 2 �ł���?B �z���?�?��̗v�f�ɂ� U �p���??[�^�ɂ‚��Ă�?ڃx�N�g��?A ��Ԗڂ̗v�f�ɂ� V �p���??[�^�ɂ‚��Ă�?ڃx�N�g����܂�?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
tangentVector in class ParametricSurface3D
Parameters:
uParam - U ���̃p���??[�^�l
vParam - V ���̃p���??[�^�l
Returns:
?ڃx�N�g��
See Also:
ParameterOutOfRange

evaluation

public SurfaceDerivative3D evaluation(double uParam,
                                      double vParam)
���̋Ȗʂ�?A�^����ꂽ�p���??[�^�l�ł̕Γ���?���Ԃ�?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
evaluation in class ParametricSurface3D
Parameters:
uParam - U ���̃p���??[�^�l
vParam - V ���̃p���??[�^�l
Returns:
����?�
See Also:
ParameterOutOfRange

projectFrom

public PointOnSurface3D[] projectFrom(Point3D point)
�^����ꂽ�_���炱�̋Ȗʂւ̓��e�_��?�߂�?B

���e�_����?݂��Ȃ��Ƃ��͒��� 0 �̔z���Ԃ�?B

[�Ք?��?]
�a�X�v���C���Ȗʂ�x�W�G�Ȗʂ�?W?��ɕϊ���?A �_���炻�ꂼ��̃x�W�G�Ȗʂւ̓��e�_��?�߂Ă���?B

Specified by:
projectFrom in class ParametricSurface3D
Parameters:
point - ���e���̓_
Returns:
���e�_�̔z��
See Also:
toPureBezierSurfaceArray()

uShiftIfPeriodic

public BsplineSurface3D uShiftIfPeriodic(double newStartParam)
                                  throws OpenSurfaceForUDirectionException
���� U ����?u�‚����`��?v�̂a�X�v���C���Ȗʂ̌`?��ς�����?A �^����ꂽ U �p���??[�^�l�ɑΉ�����_��J�n�_�Ƃ���悤�� �ϊ�������̂�Ԃ�?B

?�?������a�X�v���C���Ȗʂ� U ���̊J�n�_�̃p���??[�^�l��?�� 0 �ɂȂ�?B

Parameters:
newStartParam - �J�n�_�ƂȂ�p���??[�^�l
Returns:
�^����ꂽ�p���??[�^�l�ɑΉ�����_��J�n�_�Ƃ���a�X�v���C���Ȗ�
Throws:
OpenSurfaceForUDirectionException - U ���ɊJ�����`���̋Ȗʂł���

vShiftIfPeriodic

public BsplineSurface3D vShiftIfPeriodic(double newStartParam)
                                  throws OpenSurfaceForVDirectionException
���� V ����?u�‚����`��?v�̂a�X�v���C���Ȗʂ̌`?��ς�����?A �^����ꂽ V �p���??[�^�l�ɑΉ�����_��J�n�_�Ƃ���悤�� �ϊ�������̂�Ԃ�?B

?�?������a�X�v���C���Ȗʂ� V ���̊J�n�_�̃p���??[�^�l��?�� 0 �ɂȂ�?B

Parameters:
newStartParam - �J�n�_�ƂȂ�p���??[�^�l
Returns:
�^����ꂽ�p���??[�^�l�ɑΉ�����_��J�n�_�Ƃ���a�X�v���C���Ȗ�
Throws:
OpenSurfaceForVDirectionException - V ���ɊJ�����`���̋Ȗʂł���

toMesh

public Mesh3D toMesh(ParameterSection uPint,
                     ParameterSection vPint,
                     ToleranceForDistance tol)
���̋Ȗʂ̎w��� (�p���??[�^�I��) ��`��Ԃ�?A�^����ꂽ��?��ŕ��ʋߎ����� �i�q�_�Q��Ԃ�?B

���ʂƂ��ĕԂ����i�q�_�Q��?\?�����_��?A ���̋Ȗʂ�x?[�X�Ƃ��� PointOnSurface3D �� ���邱�Ƃ��҂ł���?B

�^����ꂽ�p���??[�^��Ԃ���`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
toMesh in class ParametricSurface3D
Parameters:
uPint - U ���̃p���??[�^���
vPint - V ���̃p���??[�^���
tol - �����̋��e��?�
Returns:
���̋Ȗʂ̎w��̋�Ԃ𕽖ʋߎ�����i�q�_�Q
See Also:
PointOnSurface3D, ParameterOutOfRange

toMesh

public Mesh3D toMesh(ToleranceForDistance tol)
���� (��`�̃p���??[�^��`���?��) �L� ȖʑS�̂�?A�^����ꂽ��?��ŕ��ʋߎ����� �i�q�_�Q��Ԃ�?B

���ʂƂ��ĕԂ����i�q�_�Q��?\?�����_��?A ���̋Ȗʂ�x?[�X�Ƃ��� PointOnSurface3D �� ���邱�Ƃ��҂ł���?B

Specified by:
toMesh in class BoundedSurface3D
Parameters:
tol - �����̋��e��?�
Returns:
���̗L� ȖʑS�̂𕽖ʋߎ�����i�q�_�Q
See Also:
PointOnSurface3D

toPureBezierSurfaceArray

public PureBezierSurface3D[][] toPureBezierSurfaceArray()
���̂a�X�v���C���Ȗʂ�?Č�����x�W�G�Ȗʂ̓񎟌��z���Ԃ�?B

���̋Ȗʂ� U/V �����Ƃ�Ƀp���??[�^�I��?k�ނ��Ă��Ȃ��L��Z�O�?���g�ɑΉ����� �x�W�G�Ȗʂ̓񎟌��z���Ԃ�?B

Returns:
�x�W�G�Ȗʂ̓񎟌��z��

toBsplineSurface

public BsplineSurface3D toBsplineSurface()
���� (��`�̃p���??[�^��`���?��) �L� ȖʑS�̂쵖���?Č����� �L�? Bspline �Ȗʂ�Ԃ�?B

this ���L�?�Ȗʂł����?Athis ��Ԃ�?B

Overrides:
toBsplineSurface in class BoundedSurface3D
Returns:
���̗L� ȖʑS�̂�?Č�����L�? Bspline �Ȗ�

toBsplineSurface

public BsplineSurface3D toBsplineSurface(ParameterSection uPint,
                                         ParameterSection vPint)
���̋Ȗʂ̎w��� (�p���??[�^�I��) ��`��Ԃ쵖���?Č����� �L�? Bspline �Ȗʂ�Ԃ�?B

�^����ꂽ�p���??[�^��Ԃ���`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Specified by:
toBsplineSurface in class ParametricSurface3D
Parameters:
uPint - U ���̃p���??[�^���
vPint - V ���̃p���??[�^���
Returns:
���̋Ȗʂ̎w��̋�Ԃ�?Č�����L�? Bspline �Ȗ�
See Also:
ParameterOutOfRange, toBsplineSurface()

intersect

public IntersectionPoint3D[] intersect(ParametricCurve3D mate)
                                throws IndefiniteSolutionException
���̋ȖʂƑ��̋�?�̌�_��?�߂�?B

��_����?݂��Ȃ��Ƃ��͒��� 0 �̔z���Ԃ�?B

Specified by:
intersect in class ParametricSurface3D
Parameters:
mate - ���̋�?�
Returns:
��_�̔z��
Throws:
IndefiniteSolutionException - �⪕s��ł���

intersect

public SurfaceSurfaceInterference3D[] intersect(ParametricSurface3D mate)
���̋ȖʂƑ��̋Ȗʂ̌�?��?�߂�?B

��?�?݂��Ȃ��Ƃ��͒��� 0 �̔z���Ԃ�?B

��Ȗʂ���?������?��ɂ‚��Ă�?A��?� (IntersectionCurve3D) ���Ԃ�?B

��Ȗʂ�?ڂ����?��ɂ‚��Ă�?A��_ (IntersectionPoint3D) ���Ԃ邱�Ƃ�����?B

Specified by:
intersect in class ParametricSurface3D
Parameters:
mate - ���̋Ȗ�
Returns:
��?� (�܂��͌�_) �̔z��
See Also:
IntersectionCurve3D, IntersectionPoint3D

offsetByBsplineSurface

public BsplineSurface3D offsetByBsplineSurface(ParameterSection uPint,
                                               ParameterSection vPint,
                                               double magni,
                                               int side,
                                               ToleranceForDistance tol)
���̋Ȗʂ̎w��� (�p���??[�^�I��) ��`��Ԃ�I�t�Z�b�g�����Ȗʂ� �^����ꂽ��?��ŋߎ����� Bspline �Ȗʂ�?�߂�?B

Specified by:
offsetByBsplineSurface in class ParametricSurface3D
Parameters:
uPint - U ���̃p���??[�^���
vPint - V ���̃p���??[�^���
magni - �I�t�Z�b�g��
side - �I�t�Z�b�g�̌� (WhichSide.FRONT/BACK)
tol - �����̋��e��?�
Returns:
���̋Ȗʂ̎w��̋�`��Ԃ̃I�t�Z�b�g�Ȗʂ�ߎ����� Bspline �Ȗ�
See Also:
WhichSide

uIsoParametricCurve

public ParametricCurve3D uIsoParametricCurve(double uParam)
Description copied from class: ParametricSurface3D
���̋Ȗʂ� U �p���??[�^���̈ʒu�ɂ��铙�p���??[�^��?��Ԃ���?ۃ?�\�b�h?B

Specified by:
uIsoParametricCurve in class ParametricSurface3D
Parameters:
uParam - U ���̃p���??[�^�l
Returns:
�w��� U �p���??[�^�l�ł̓��p���??[�^��?�

vIsoParametricCurve

public ParametricCurve3D vIsoParametricCurve(double vParam)
Description copied from class: ParametricSurface3D
���̋Ȗʂ� V �p���??[�^���̈ʒu�ɂ��铙�p���??[�^��?��Ԃ���?ۃ?�\�b�h?B

Specified by:
vIsoParametricCurve in class ParametricSurface3D
Parameters:
vParam - V ���̃p���??[�^�l
Returns:
�w��� V �p���??[�^�l�ł̓��p���??[�^��?�

uInsertKnot

public BsplineSurface3D uInsertKnot(double uParam)
���̋Ȗʂ�?A�^����ꂽ U ���̃p���??[�^�ʒu��?V���ȃm�b�g��}���?B

�`?�͕ς�炸��?AU ���̃Z�O�?���g����‘����a�X�v���C���Ȗʂ�Ԃ�?B

Parameters:
uParam - �m�b�g��}��� U ���̃p���??[�^�ʒu
Returns:
�m�b�g�}���̂a�X�v���C���Ȗ�

vInsertKnot

public BsplineSurface3D vInsertKnot(double vParam)
���̋Ȗʂ�?A�^����ꂽ V ���̃p���??[�^�ʒu��?V���ȃm�b�g��}���?B

�`?�͕ς�炸��?AV ���̃Z�O�?���g����‘����a�X�v���C���Ȗʂ�Ԃ�?B

Parameters:
vParam - �m�b�g��}��� V ���̃p���??[�^�ʒu
Returns:
�m�b�g�}���̂a�X�v���C���Ȗ�

uDivide

public BsplineSurface3D[] uDivide(double uParam)
���̋Ȗʂ�?A�^����ꂽ U ���̃p���??[�^�l�ŕ�������?B

���̋Ȗʂ� U ���ɊJ�����`����?�?�?A uParam �ɑΉ����铙�p���??[�^��?�őO���ʂɕ�������?B ���ʂƂ��ē�����z��̗v�f?��� 2 ��?A ?�?��̗v�f�ɂ� U ���O���̋Ȗ�?A ��Ԗڂ̗v�f�ɂ� U ���㑤�̋Ȗ� �����?B

���̋Ȗʂ� U ���ɕ‚����`����?�?���?A uParam �ɑΉ����铙�p���??[�^��?�뫊E�Ƃ��� U ���ɊJ�����`���̈ꖇ�̋Ȗʂɕϊ�����?B ���ʂƂ��ē�����z��̗v�f?��� 1 �ł���?B

�^����ꂽ�p���??[�^�l����`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Parameters:
uParam - U ���̃p���??[�^�l
Returns:
������̂a�X�v���C���Ȗʂ̔z��
See Also:
ParameterOutOfRange, vDivide(double)

vDivide

public BsplineSurface3D[] vDivide(double vParam)

truncate

public BsplineSurface3D truncate(ParameterSection uSection,
                                 ParameterSection vSection)
���̂a�X�v���C���Ȗʂ�?A�^����ꂽ��`��Ԃ�?ؒf����?B

uSection �̑?���l������?�?��ɂ�?AU ����?i?s���]�����a�X�v���C���Ȗʂ�Ԃ�?B ���l��?A vSection �̑?���l������?�?��ɂ�?AV ����?i?s���]�����a�X�v���C���Ȗʂ�Ԃ�?B

�^����ꂽ�p���??[�^��Ԃ���`���O��Ă���?�?��ɂ�?A ParameterOutOfRange �̗�O��?�����?B

Parameters:
uSection - ?ؒf���Ďc��������\�� U ���̃p���??[�^���
vSection - ?ؒf���Ďc��������\�� V ���̃p���??[�^���
Returns:
?ؒf���Ďc����������\���a�X�v���C���Ȗ�
See Also:
ParameterOutOfRange

uElevateOneDegree

public BsplineSurface3D uElevateOneDegree()
���̋Ȗʂ�?A�`?�⻂̂܂܂ɂ���?AU ���̎�?�����?グ���Ȗʂ�Ԃ�?B

Returns:
����`?��?AU ���̎�?������?オ�B��Ȗ�

vElevateOneDegree

public BsplineSurface3D vElevateOneDegree()
���̋Ȗʂ�?A�`?�⻂̂܂܂ɂ���?AV ���̎�?�����?グ���Ȗʂ�Ԃ�?B

Returns:
����`?��?AV ���̎�?������?オ�B��Ȗ�

toNonStructuredPoints

public java.util.Vector toNonStructuredPoints(ParameterSection uParameterSection,
                                              ParameterSection vParameterSection,
                                              double tolerance,
                                              double[] scalingFactor)
���̋Ȗʂ̎w��� (�p���??[�^�I��) ��`��Ԃ�?A �^����ꂽ��?��ŕ��ʋߎ�����_�Q��Ԃ�?B

?��?���ʂƂ��ē�����_�Q�͈�ʂ�?A�ʑ��I�ɂ�􉽓I�ɂ�?A�i�q?�ł͂Ȃ�?B

scalingFactor ��?A��͗p�ł͂Ȃ�?A?o�͗p�̈�?��ł���?B scalingFactor �ɂ�?A�v�f?� 2 �̔z���^����?B scalingFactor[0] �ɂ� U ����?k�ڔ{��?A scalingFactor[1] �ɂ� V ����?k�ڔ{�����Ԃ�?B �����̒l�͉��炩��?�Βl�ł͂Ȃ�?A �p���??[�^��?i�ޑ��x T �ɑ΂���?A U/V �����ɂ‚��Ď ��?�ŋȖ�?�̓_��?i�ޑ��x Pu/Pv ��\�����Βl�ł���?B �‚܂�?A�p���??[�^�� T ����?i�ނ�?A � ��?�ł̋Ȗ�?�̓_�� U ���ł� Pu (scalingFactor[0])?A V ���ł� Pv (scalingFactor[1]) ����?i�ނ��Ƃ�\���Ă���?B T �̑傫���͖�������Ȃ��̂�?A���̒l��Q?Ƃ���?ۂɂ�?A scalingFactor[0] �� scalingFactor[1] �̔䂾����p����ׂ��ł���?B �Ȃ�?A�����̒l�͂����܂ł�ڈł���?A�����ȑ��x����̂ł͂Ȃ�?B

���ʂƂ��ĕԂ� Vector �Ɋ܂܂��e�v�f�� ���̋Ȗʂ�x?[�X�Ƃ��� PointOnSurface3D �ł��邱�Ƃ���҂ł���?B

Specified by:
toNonStructuredPoints in class ParametricSurface3D
Parameters:
uParameterSection - U ���̃p���??[�^���
vParameterSection - V ���̃p���??[�^���
tolerance - �����̋��e��?�
scalingFactor - �_�Q��O�p�`��������?ۂɗL�p�Ǝv���� U/V ��?k�ڔ{��
Returns:
�_�Q��܂� Vector
See Also:
PointOnSurface3D

doTransformBy

protected ParametricSurface3D doTransformBy(boolean reverseTransform,
                                            CartesianTransformationOperator3D transformationOperator,
                                            java.util.Hashtable transformedGeometries)
���̋Ȗʂ�?A�^����ꂽ�􉽓I�ϊ����Z�q�ŕϊ�����?B

transformedGeometries ��?A �ϊ��O�̊􉽗v�f��L?[�Ƃ�?A �ϊ���̊􉽗v�f��l�Ƃ���n�b�V���e?[�u���ł���?B

this �� transformedGeometries ��ɃL?[�Ƃ��đ�?݂��Ȃ�?�?��ɂ�?A this �� transformationOperator �ŕϊ�������̂�Ԃ�?B ����?ۂɃ?�\�b�h�Ք�ł� this ��L?[?A �ϊ����ʂ�l�Ƃ��� transformedGeometries �ɒljB���?B

this �� transformedGeometries ��Ɋ�ɃL?[�Ƃ��đ�?݂���?�?��ɂ�?A ��?ۂ̕ϊ���?s�Ȃ킸?A���̃L?[�ɑΉ�����l��Ԃ�?B ����?��?��?ċA�I��?s�Ȃ���?B

transformedGeometries �� null �ł�?\��Ȃ�?B transformedGeometries �� null ��?�?��ɂ�?A ?�� this �� transformationOperator �ŕϊ�������̂�Ԃ�?B

Specified by:
doTransformBy in class ParametricSurface3D
Parameters:
reverseTransform - �t�ϊ�����̂ł���� true?A�����łȂ���� false
transformationOperator - �􉽓I�ϊ����Z�q
transformedGeometries - ��ɓ��l�̕ϊ���{�����􉽗v�f��܂ރn�b�V���e?[�u��
Returns:
�ϊ���̊􉽗v�f

output

protected void output(java.io.PrintWriter writer,
                      int indent)
?o�̓X�g��?[���Ɍ`?�?���?o�͂���?B

Specified by:
output in class GeometryElement
Parameters:
writer - PrintWriter
indent - �C���f���g��?[��
See Also:
GeometryElement