Interface ParametricSurface

All Superinterfaces:
ContinuousFunction<Vector<Real>, Vector<Real>>, DifferentiableFunction<Vector<Real>, Vector<Real>>, Function<Vector<Real>, Vector<Real>>, Function<Vector<Real>, Vector<Real>>, Relation<Vector<Real>, Vector<Real>>
All Known Implementing Classes:
Cone, Cylinder, Ellipsoid, Paraboloid, Sphere, Torus

public interface ParametricSurface extends DifferentiableFunction<Vector<Real>, Vector<Real>>
Represents a parametric surface in 3D space.

A parametric surface is defined by: S(u,v) = (x(u,v), y(u,v), z(u,v)) where (u,v) are parameters, typically in some domain D ⊂ ℝ².

Examples: - Plane: S(u,v) = P₀ + u*a + v*b - Sphere: S(θ,φ) = (r*sin(θ)*cos(φ), r*sin(θ)*sin(φ), r*cos(θ)) - Torus: S(u,v) = ((R+r*cos(v))*cos(u), (R+r*cos(v))*sin(u), r*sin(v)) - Cylinder: S(θ,z) = (r*cos(θ), r*sin(θ), z)

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Method Details

    • differentiate

      default Function<Vector<Real>, Vector<Real>> differentiate()
      Description copied from interface: DifferentiableFunction
      Returns the derivative of this function.
      Specified by:
      differentiate in interface DifferentiableFunction<Vector<Real>, Vector<Real>>
      Returns:
      f'
    • evaluate

      default Vector<Real> evaluate(Vector<Real> uv)
      Description copied from interface: Function
      Evaluates this function at the given point.
      Specified by:
      evaluate in interface Function<Vector<Real>, Vector<Real>>
      Parameters:
      uv - the input point
      Returns:
      the value of the function at x
    • getOutputDimension

      default int getOutputDimension()
    • at

      PointND at(Real u, Real v)
      Evaluates the surface at parameters (u, v).
      Parameters:
      u - the first parameter
      v - the second parameter
      Returns:
      the point on the surface
    • partialU

      default Vector<Real> partialU(Real u, Real v, Real h)
      Returns the partial derivative ∂S/∂u.

      This is the tangent vector in the u-direction.

      Parameters:
      u - the first parameter
      v - the second parameter
      h - the step size for numerical differentiation
      Returns:
      the partial derivative vector
    • partialV

      default Vector<Real> partialV(Real u, Real v, Real h)
      Returns the partial derivative ∂S/∂v.

      This is the tangent vector in the v-direction.

      Parameters:
      u - the first parameter
      v - the second parameter
      h - the step size for numerical differentiation
      Returns:
      the partial derivative vector
    • normal

      default Vector<Real> normal(Real u, Real v, Real h)
      Returns the normal vector at (u, v).

      The normal is computed as: N = ∂S/∂u × ∂S/∂v

      Parameters:
      u - the first parameter
      v - the second parameter
      h - the step size for numerical differentiation
      Returns:
      the unit normal vector
    • surfaceElement

      default Real surfaceElement(Real u, Real v, Real h)
      Returns the surface area element dS.

      dS = ||∂S/∂u × ∂S/∂v|| du dv

      Parameters:
      u - the first parameter
      v - the second parameter
      h - the step size for numerical differentiation
      Returns:
      the surface area element
    • surfaceArea

      default Real surfaceArea(Real u0, Real u1, Real v0, Real v1, int numStepsU, int numStepsV)
      Computes the surface area over a parameter domain.

      Area = ∫∫_D ||∂S/∂u × ∂S/∂v|| du dv

      Parameters:
      u0 - minimum u parameter
      u1 - maximum u parameter
      v0 - minimum v parameter
      v1 - maximum v parameter
      numStepsU - number of integration steps in u
      numStepsV - number of integration steps in v
      Returns:
      the surface area
    • firstFundamentalForm

      default Real[] firstFundamentalForm(Real u, Real v, Real h)
      Returns the first fundamental form coefficients (E, F, G).

      E = ⟨∂S/∂u, ∂S/∂u⟩ F = ⟨∂S/∂u, ∂S/∂v⟩ G = ⟨∂S/∂v, ∂S/∂v⟩

      Parameters:
      u - the first parameter
      v - the second parameter
      h - the step size
      Returns:
      array [E, F, G]
    • gaussianCurvature

      default Real gaussianCurvature(Real u, Real v, Real h)
      Returns the Gaussian curvature at (u, v).

      K = (LN - M²) / (EG - F²) where L, M, N are second fundamental form coefficients and E, F, G are first fundamental form coefficients.

      Parameters:
      u - the first parameter
      v - the second parameter
      h - the step size
      Returns:
      the Gaussian curvature