24#ifndef __ODGIPLINECONTOUR_H__ 
   25#define __ODGIPLINECONTOUR_H__ 
   71template <
typename SimplClass = OdGiGeometrySimplifier>
 
   91      m_pPlineCtrCalcInterface->
plineCalcShellWires(faceListSize, faceList, pEdgeData, pFaceData);
 
  103      SimplClass::generateShellWires(faceListSize, faceList, pEdgeData, pFaceData);
 
  140      m_pPlineCtrCalcSimplifier->
generateShellWires(faceListSize, faceList, pEdgeData, pFaceData);
 
  152template <
typename VectClass = OdGiPlineContourCalcEmptyInheritance, 
typename SimplClass = OdGiPlineContourCalcNonSimplifierInheritance>
 
  187          rv = cmp_el(first.x, p2.first.x); 
if (rv >= 0) 
return rv > 0;
 
  188          rv = cmp_el(first.y, p2.first.y); 
if (rv >= 0) 
return rv > 0;
 
  189          rv = cmp_el(first.z, p2.first.z); 
if (rv >= 0) 
return rv > 0;
 
  190          rv = cmp_el(second.x, p2.second.x); 
if (rv >= 0) 
return rv > 0;
 
  191          rv = cmp_el(second.y, p2.second.y); 
if (rv >= 0) 
return rv > 0;
 
  209    { 
bool bFirst = 
false;
 
  211      const OdGsMarker gsMarker = curPair->subentMarker();
 
  220          bool bSecond = 
false;
 
  221          if ((bFirst) ? (it->first == curPair->first) : (it->first == curPair->second))
 
  223            if (it->subentMarker() == gsMarker)
 
  228          else if ((bFirst) ? (it->second == curPair->first) : (it->second == curPair->second))
 
  230            if (it->subentMarker() == gsMarker)
 
  291      VectClass::pline(polyline, fromIndex, numSegs);
 
  316        const OdUInt8 *pEdgeVis = pEdgeData ? pEdgeData->visibility() : NULL;
 
  317        for (
OdInt32 nFaceList = 0; nFaceList < faceListSize; nFaceList++)
 
  319          for (
OdInt32 nSeg = 1; nSeg < nElems; nSeg++)
 
  320          { 
if (!pEdgeVis || *pEdgeVis++)
 
  321              filterPlineCalcMap(pVtx[faceList[nFaceList + nSeg]], pVtx[faceList[nFaceList + nSeg + 1]], gsMarker);
 
  323          if (!pEdgeVis || *pEdgeVis++)
 
  324            filterPlineCalcMap(pVtx[faceList[nFaceList + nElems]], pVtx[faceList[nFaceList + 1]], gsMarker);
 
  370        { outPts[0] = it->first; outPts[1] = it->second;
 
  371          if (curMarker != it->subentMarker())
 
  383          if (curMarker != gsMarker)
 
#define SETBIT(flags, bit, value)
 
#define SETBIT_0(flags, bit)
 
bool OdLess(double x, double y, double tol=1.e-10)
 
bool OdGreater(double x, double y, double tol=1.e-10)
 
#define GETBIT(flags, bit)
 
#define SETBIT_1(flags, bit)
 
void push_back(const T &value)
 
double equalPoint() const
 
virtual OdUInt32 drawContextFlags() const
 
@ kForceMarkersOnModified
 
virtual const OdGiPathNode * currentGiPath() const =0
 
virtual OdGiSubEntityTraits & subEntityTraits() const =0
 
virtual void onTraitsModified()=0
 
const OdGePoint3d * vertexDataList() const
 
virtual void generateShellWires(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)
 
virtual void polylineOut(OdInt32 numPoints, const OdGePoint3d *vertexList)
 
OdGiConveyorContext * drawContext()
 
virtual OdGsMarker selectionMarker() const =0
 
OdGsMarker subentMarker() const
 
bool operator<(const PlineCtrCalcNode &p2) const
 
PlineCtrCalcNode(const OdGePoint3d &pt1, const OdGePoint3d &pt2, OdGsMarker gsMarker)
 
OdGePoint3dArray m_plineCtrCalcStrip
 
bool plineContoursCalcEnabled() const
 
void enablePlineContoursCalc(bool bSet)
 
std::pair< OdGePoint3d, OdGePoint3d > EdgePointsPair
 
virtual void dropPlineCalcShellWires(bool bStrips)
 
bool plineCalcDroppingState() const
 
void filterPlineCalcMap(const OdGePoint3d &p1, const OdGePoint3d &p2, OdGsMarker gsMarker)
 
PlineCtrCalcMap m_plineCtrCalcMap
 
std::pair< OdInt32, OdInt32 > EdgePointsKey
 
std::set< PlineCtrCalcNode > PlineCtrCalcMap
 
void enablePlineCalcSrips(bool bSet)
 
bool plineCalcStripsEnabled() const
 
virtual void plineCalcShellWires(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)
 
OdGsMarker buildPlineCalcStrip()
 
bool hasPlineStarted() const
 
virtual void pline(const OdGiPolyline &polyline, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
 
OdUInt32 m_nPlineCtrCalcFlags
 
void setPlineCalcInterface(OdGiPlineContourCalcSimplifierInterface *)
 
void plineCalcRedirectGenerateShellWires(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData, const OdGiFaceData *pFaceData)
 
void setPlineCalcSimplifier(OdGiGeometrySimplifier *pSimplifier)
 
OdGiPlineContourCalcNonSimplifierInheritance()
 
OdGiGeometrySimplifier * plineCalcSimplifier()
 
OdGiGeometrySimplifier * plineCalcSimplifier()
 
void plineCalcRedirectGenerateShellWires(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData, const OdGiFaceData *pFaceData)
 
virtual void generateShellWires(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)
 
void setPlineCalcInterface(OdGiPlineContourCalcSimplifierInterface *pInterface)
 
virtual void setSelectionMarker(OdGsMarker selectionMarker)=0
 
static GE_STATIC_EXPORT OdGeTol gTol
 
void pline(const OdGiPolyline &, OdUInt32=0, OdUInt32=0)
 
virtual void plineCalcShellWires(OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)=0
 
virtual void dropPlineCalcShellWires(bool bStrips)=0