maspack.geometry
Class NagataInterpolator

java.lang.Object
  extended by maspack.geometry.NagataInterpolator

public class NagataInterpolator
extends java.lang.Object

Class that implements quadratic surface interpolation based on the paper "Simple local interpolation of surfaces using normal vectors", by Takashi Nagata.


Field Summary
static int EDGE_1
           
static int EDGE_2
           
static int EDGE_3
           
static int INSIDE
           
static int VERTEX_1
           
static int VERTEX_2
           
static int VERTEX_3
           
 
Constructor Summary
NagataInterpolator()
           
 
Method Summary
 void checkMesh(PolygonalMesh mesh)
           
 double distanceToCurve(Point3d nearest, Vector2d svec, Vector2d dir, Point3d pos, double posTol)
           
 double distanceToEdge(Point3d nearest, Point3d pos, int edgeNum)
           
 int findMinimumOnEdge(Vector2d svec, Point3d pos, int edgeNum)
           
 void interpolateCurve(Point3d pos, double xi, Point3d pos0, Vector2d svec, Vector2d dir)
           
 void interpolateNormal(Vector3d nrm, double eta, double zeta)
           
 void interpolateVertex(Point3d pnt, double eta, double zeta)
           
 double nearestPointOnCurve(Point3d x0, Vector3d gv, Vector3d cv, Point3d pos, double ximin, double ximax)
           
 int nearestPointOnFace(Point3d nearest, Vector3d nrm, Face face, PolygonalMesh mesh, Vector2d svec, Point3d pos, double posTol)
           
 void nearestPointOnMesh(Point3d nearest, Vector3d nrm, PolygonalMesh mesh, Point3d pos, double posTol, BVFeatureQuery query)
           
 void setBoundsForCurve(double[] bounds, Vector2d svec, Vector2d dir)
           
 void setFace(Face face, Vector3d n0, Vector3d n1, Vector3d n2)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INSIDE

public static final int INSIDE
See Also:
Constant Field Values

VERTEX_1

public static final int VERTEX_1
See Also:
Constant Field Values

VERTEX_2

public static final int VERTEX_2
See Also:
Constant Field Values

VERTEX_3

public static final int VERTEX_3
See Also:
Constant Field Values

EDGE_1

public static final int EDGE_1
See Also:
Constant Field Values

EDGE_2

public static final int EDGE_2
See Also:
Constant Field Values

EDGE_3

public static final int EDGE_3
See Also:
Constant Field Values
Constructor Detail

NagataInterpolator

public NagataInterpolator()
Method Detail

checkMesh

public void checkMesh(PolygonalMesh mesh)

setFace

public void setFace(Face face,
                    Vector3d n0,
                    Vector3d n1,
                    Vector3d n2)

interpolateVertex

public void interpolateVertex(Point3d pnt,
                              double eta,
                              double zeta)

interpolateNormal

public void interpolateNormal(Vector3d nrm,
                              double eta,
                              double zeta)

setBoundsForCurve

public void setBoundsForCurve(double[] bounds,
                              Vector2d svec,
                              Vector2d dir)

interpolateCurve

public void interpolateCurve(Point3d pos,
                             double xi,
                             Point3d pos0,
                             Vector2d svec,
                             Vector2d dir)

distanceToEdge

public double distanceToEdge(Point3d nearest,
                             Point3d pos,
                             int edgeNum)

distanceToCurve

public double distanceToCurve(Point3d nearest,
                              Vector2d svec,
                              Vector2d dir,
                              Point3d pos,
                              double posTol)

nearestPointOnCurve

public double nearestPointOnCurve(Point3d x0,
                                  Vector3d gv,
                                  Vector3d cv,
                                  Point3d pos,
                                  double ximin,
                                  double ximax)

findMinimumOnEdge

public int findMinimumOnEdge(Vector2d svec,
                             Point3d pos,
                             int edgeNum)

nearestPointOnFace

public int nearestPointOnFace(Point3d nearest,
                              Vector3d nrm,
                              Face face,
                              PolygonalMesh mesh,
                              Vector2d svec,
                              Point3d pos,
                              double posTol)

nearestPointOnMesh

public void nearestPointOnMesh(Point3d nearest,
                               Vector3d nrm,
                               PolygonalMesh mesh,
                               Point3d pos,
                               double posTol,
                               BVFeatureQuery query)