mmg3d
bezier_3d.c File Reference

Functions for Bezier surface computation. More...

#include "mmg3d.h"
Include dependency graph for bezier_3d.c:

Functions

int MMG5_BezierTgt (double c1[3], double c2[3], double n1[3], double n2[3], double t1[3], double t2[3])
 
double MMG5_BezierGeod (double c1[3], double c2[3], double t1[3], double t2[3])
 
int MMG5_BezierEdge (MMG5_pMesh mesh, int ip0, int ip1, double b0[3], double b1[3], int8_t ised, double v[3])
 
int MMG5_mmg3dBezierCP (MMG5_pMesh mesh, MMG5_Tria *pt, MMG5_pBezier pb, int8_t ori)
 
int MMG3D_bezierInt (MMG5_pBezier pb, double uv[2], double o[3], double no[3], double to[3])
 

Variables

int8_t ddb
 

Detailed Description

Functions for Bezier surface computation.

Author
Charles Dapogny (UPMC)
Cécile Dobrzynski (Bx INP/Inria/UBordeaux)
Pascal Frey (UPMC)
Algiane Froehly (Inria/UBordeaux)
Version
5

Function Documentation

◆ MMG3D_bezierInt()

int MMG3D_bezierInt ( MMG5_pBezier  pb,
double  uv[2],
double  o[3],
double  no[3],
double  to[3] 
)
Parameters
pbpointer toward the Bezier structure.
uvcoordinates of the point in the parametric space.
ocomputed coordinates of the point in the real space.
nocomputed normal.
tocomputed tangent.
Returns
1.

Compute o, no and to at $(u,v)$ in Bezier patch.

Here is the caller graph for this function:

◆ MMG5_BezierEdge()

int MMG5_BezierEdge ( MMG5_pMesh  mesh,
int  ip0,
int  ip1,
double  b0[3],
double  b1[3],
int8_t  ised,
double  v[3] 
)
inline
Parameters
meshpointer toward the mesh structure.
ip0index of the first point of the curve.
ip1index of the second point of the curve.
b0the first computed extrapolated control point.
b1the second computed extrapolated control point.
isedflag for special edge.
vdirection for normal vectors.

Compute control points associated to the underlying curve to $[p0;p1]$. ised = 1 if $[p0;p1]$ must be considered as a special edge. Provide a direction v which will be considered as reference when dealing with choice of normal vectors.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MMG5_BezierGeod()

double MMG5_BezierGeod ( double  c1[3],
double  c2[3],
double  t1[3],
double  t2[3] 
)
inline
Parameters
c1coordinates of the first point of the curve.
c2coordinates of the second point of the curve.
t1normal at the first point of the curve.
t2normal at the second point of the curve.
Returns
The parameter value.

Compute value of the parameter that makes the underlying Bezier curve with 'constant speed'

Here is the caller graph for this function:

◆ MMG5_BezierTgt()

int MMG5_BezierTgt ( double  c1[3],
double  c2[3],
double  n1[3],
double  n2[3],
double  t1[3],
double  t2[3] 
)
inline
Parameters
c1coordinates of the first point of the curve.
c2coordinates of the second point of the curve.
n1normal at the first point of the curve.
n2normal at the second point of the curve.
t1computed normal at the first point of the curve.
t2computed normal at the second point of the curve.
Returns
0 if failed, 1 otherwise.

Compute tangent to geometric support curve passing through c1,c2, with normals n1,n2

Here is the caller graph for this function:

◆ MMG5_mmg3dBezierCP()

int MMG5_mmg3dBezierCP ( MMG5_pMesh  mesh,
MMG5_Tria pt,
MMG5_pBezier  pb,
int8_t  ori 
)
Parameters
meshpointer toward the mesh structure.
ptpointer toward the triangle structure.
pbpointer toward the computed Bezier structure.
oritriangle orientation.
Returns
1.

Compute Bezier control points on triangle pt (cf. Vlachos)

Todo:
merge with the MMG5_mmg3dBeizerCP function and remove the pointer toward this functions.

Orientation of the normals at non-manifold points

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ ddb

int8_t ddb
extern