10 #ifndef __GQ_PolyDelaunay_h__ 
   11 #define __GQ_PolyDelaunay_h__ 
   36 namespace GQ_PolyDelaunayImpl {
 
   37     class gqTriangleSplitNode;
 
  131                      { myRemoveDuplicatePoints = 
value; }
 
  136                      { myKeepBoundingTriangle = 
value; }
 
  140                      { myRemoveOutsideConstraints = 
value; }
 
  144                      { myNewConstraintPoints = 
enabled; }
 
  148                      { myConstraintNewPointGroupName.harden(name); }
 
  150                      { myConstraintNewPointGroup = new_pt_grp; }
 
  155                      { myMaxNewPoints = maxNewPoints; }
 
  160                      { myMaxArea = maxArea; }
 
  169                      { myMinAngle = minAngle; }
 
  173     void             buildGeometry(
bool updatePointNormals = 
true,
 
  192         typedef std::pair<GA_Index,GA_Index> gqEdgePointIds;
 
  193         typedef std::pair<gqEdgePointIds, GA_Primitive *> gqConstraint;
 
  204         gqEdgePointIds               myOnEdge;
 
  218     enum gq_ChangeConstraintType
 
  223     void             changeConstraints(gq_ChangeConstraintType 
type,
 
  227                                        gqGBEdgeGroup &constrainedEdges,
 
  228                                        gqJournal *journal) 
const;
 
  234     gqInsertStatus   insertPoint(
int pid, 
GQ_Edge *onEdge,
 
  235                                  gqGBEdgeGroup &constrainedEdges,
 
  238     void             undoInsertPoint(
int pid, gqGBEdgeGroup &constrainedEdges,
 
  239                                      const gqJournal &journal);
 
  242     void             flipEdge(
GQ_Edge &edge, 
bool updateDAG);
 
  248                                   gqGBEdgeGroup &constrainedEdges,
 
  253     bool             enforceConstraints(gqGBEdgeGroup &constrainedEdges);
 
  255     void             removeBoundingTriangle();
 
  257     void             removeOutsideEdges(
const gqGBEdgeGroup &constrainedEdges);
 
  259     void             removeHoles(
const gqGBEdgeGroup &constrainedEdges);
 
  266     void             eatEdges(gqEdgeQueue &
queue,
 
  267                               const gqGBEdgeGroup &constrainedEdges);
 
  270     bool             refine(gqGBEdgeGroup &constrainedEdges);
 
  272     void             calcFaceStats(
const GQ_Face &face,
 
  274                                    const gqGBEdgeGroup *constrainedEdges,
 
  276     bool             isFaceTooLarge(
const GQ_Face &face) 
const;
 
  279     bool             isFaceBad(
const GQ_Face &face,
 
  280                                const gqGBEdgeGroup &constrainedEdges) 
const;
 
  283     bool             isEncroached(
const GQ_Edge &edge,
 
  286     bool             isEncroachedLeft(
const GQ_Edge &edge,
 
  292                                       gqGBEdgeGroup &constrainedEdges,
 
  294                                       bool isConstraintEdge);
 
  297                                gqGBEdgeGroup &constrainedEdges);
 
  300     void             splitConstraint(gqGBEdgeGroup &constrainedEdges,
 
  303                                      gqJournal *journal) 
const;
 
  304     bool             splitEncroachedEdges(gqGBEdgeGroup &constrainedEdges,
 
  305                                           gqEdgeQueue &edgeQueue,
 
  306                                           gqFaceQueue *faceQueuePtr);
 
  307     void             updateQueuesAfterNewPoint(
const GQ_Point &newPoint,
 
  308                                 const gqGBEdgeGroup &constrainedEdges,
 
  309                                 gqEdgeQueue &edgeQueue,
 
  310                                 gqFaceQueue *faceQueue);
 
  311     void             deletePoint(
int pid, gqGBEdgeGroup &constrainedEdges,
 
  312                                  gqEdgeQueue *edgeQueue,
 
  313                                  gqFaceQueue *faceQueue);
 
  322     bool             myNewConstraintPoints;
 
  326     bool             myRemoveDuplicatePoints;
 
  327     bool             myKeepBoundingTriangle;
 
  328     bool             myRemoveOutsideConstraints;
 
  329     fpreal           myMaxArea, myMinAngle;
 
  330     bool             myHasBoundingTriangle;
 
void enableRefinement(bool enabled)
Allow refinement. 
 
void setRemoveOutsideConstraints(bool value)
 
GLsizei const GLfloat * value
 
GQ_PolyDelaunayImpl::gqTriangleSplitNode gqTriangleSplitNode
 
void setMinAngle(fpreal minAngle)
 
void setRemoveDuplicatePoints(bool value)
 
GLenum GLenum GLsizei const GLuint GLboolean enabled
 
void setMaxNewPoints(int maxNewPoints)
 
GLint GLint GLsizei GLint GLenum GLenum type
 
GQ_PolyDelaunayImpl::gqFaceQueue gqFaceQueue
 
GQ_PolyDelaunayImpl::gqGBEdgeGroup gqGBEdgeGroup
 
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the queue
 
GLuint const GLchar * name
 
GQ_PolyDelaunayImpl::gqEdgeQueue gqEdgeQueue
 
void setConstraintNewPointGroupName(const UT_String &name)
 
void enableNewConstraintPoints(bool enabled)
 
void setMaxArea(fpreal maxArea)
 
void setKeepBoundingTriangle(bool value)
 
void setConstraintNewPointGroup(GA_PointGroup *new_pt_grp)
 
SIM_API const UT_StringHolder distance
 
GA_API const UT_StringHolder area