sig
  module Bezier :
    sig
      module Linear :
        sig
          val pnt :
            float -> AGeom.Point3d.t * AGeom.Point3d.t -> AGeom.Point3d.t
          val drv :
            float -> AGeom.Point3d.t * AGeom.Point3d.t -> AGeom.Vector3d.t
          val rand :
            AGeom.Point3d.t ->
            AGeom.Point3d.t -> AGeom.Point3d.t * AGeom.Point3d.t
          val srand :
            Random.State.t ->
            AGeom.Point3d.t ->
            AGeom.Point3d.t -> AGeom.Point3d.t * AGeom.Point3d.t
        end
      module Quadratic :
        sig
          val pnt :
            float ->
            AGeom.Point3d.t * AGeom.Point3d.t * AGeom.Point3d.t ->
            AGeom.Point3d.t
          val drv :
            float ->
            AGeom.Point3d.t * AGeom.Point3d.t * AGeom.Point3d.t ->
            AGeom.Vector3d.t
          val rand :
            AGeom.Point3d.t ->
            AGeom.Point3d.t ->
            AGeom.Point3d.t * AGeom.Point3d.t * AGeom.Point3d.t
          val srand :
            Random.State.t ->
            AGeom.Point3d.t ->
            AGeom.Point3d.t ->
            AGeom.Point3d.t * AGeom.Point3d.t * AGeom.Point3d.t
        end
      module Cubic :
        sig
          val pnt :
            float ->
            AGeom.Point3d.t * AGeom.Point3d.t * AGeom.Point3d.t *
            AGeom.Point3d.t -> AGeom.Point3d.t
          val drv :
            float ->
            AGeom.Point3d.t * AGeom.Point3d.t * AGeom.Point3d.t *
            AGeom.Point3d.t -> AGeom.Vector3d.t
          val rand :
            AGeom.Point3d.t ->
            AGeom.Point3d.t ->
            AGeom.Point3d.t * AGeom.Point3d.t * AGeom.Point3d.t *
            AGeom.Point3d.t
          val srand :
            Random.State.t ->
            AGeom.Point3d.t ->
            AGeom.Point3d.t ->
            AGeom.Point3d.t * AGeom.Point3d.t * AGeom.Point3d.t *
            AGeom.Point3d.t
        end
    end
  module CubicHermiteSpline :
    sig
      val pnt :
        float ->
        p_pred:AGeom.Point3d.t ->
        p0:AGeom.Point3d.t ->
        p1:AGeom.Point3d.t ->
        p_succ:AGeom.Point3d.t -> float -> AGeom.Point3d.t
    end
end