24#ifndef __ODGIORTOCLIPPEREX_H__ 
   25#define __ODGIORTOCLIPPEREX_H__ 
   67  virtual void set(
bool bInverted,
 
   70                   bool bClipLowerZ = 
false, 
double dLowerZ = 0.0,
 
   71                   bool bClipUpperZ = 
false, 
double dUpperZ = 0.0) = 0;
 
   83  virtual void set(
bool bInverted,
 
   85                   bool bClipLowerZ = 
false, 
double dLowerZ = 0.0,
 
   86                   bool bClipUpperZ = 
false, 
double dUpperZ = 0.0) = 0;
 
   99                   bool& bClipLowerZ, 
double& dLowerZ,
 
  100                   bool& bClipUpperZ, 
double& dUpperZ) 
const = 0;
 
  117  virtual void set(
bool bPreprocess, 
OdUInt32 nCounts, 
const int *counts,
 
  119                   bool bClipLowerZ = 
false, 
double dLowerZ = 0.0,
 
  120                   bool bClipUpperZ = 
false, 
double dUpperZ = 0.0) = 0;
 
  134                   bool bClipLowerZ = 
false, 
double dLowerZ = 0.0,
 
  135                   bool bClipUpperZ = 
false, 
double dUpperZ = 0.0) = 0;
 
  148                   bool& bClipLowerZ, 
double& dLowerZ,
 
  149                   bool& bClipUpperZ, 
double& dUpperZ) 
const = 0;
 
  167           bool bClipLowerZ = 
false, 
double dLowerZ = 0.0,
 
  168           bool bClipUpperZ = 
false, 
double dUpperZ = 0.0)
 
  169  { 
set(
false, nCounts, counts, nPoints, points, bClipLowerZ, dLowerZ, bClipUpperZ, dUpperZ); }
 
  182           bool bClipLowerZ = 
false, 
double dLowerZ = 0.0,
 
  183           bool bClipUpperZ = 
false, 
double dUpperZ = 0.0)
 
  184  { 
set(
false, counts, points, bClipLowerZ, dLowerZ, bClipUpperZ, dUpperZ); }
 
  337    TolOverride() : m_tolOverride(1.e-10), m_overrideType(kNoOverride) {}
 
  399    kCSDisabled        = (1 << 0),
 
  401    kCSInverted        = (1 << 1),
 
  403    kCSEnableSections  = (1 << 2),
 
  405    kCSEnableCutting   = (1 << 3),
 
  407    kCSPassNonSections = (1 << 4)
 
  428    kCCClassifiedBySignedXor  
 
  624    kStatusInvisible = -1,
 
  723  virtual void flushSection(
bool bFlushClosed = 
true, 
bool bFlushOpened = 
false,
 
  724                            bool bReleaseData = 
true) = 0;
 
OdSmartPtr< OdGiOrthoClipperEx > OdGiOrthoClipperExPtr
 
OdSmartPtr< OdGiClippedGeometryConnector > OdGiClippedGeometryConnectorPtr
 
virtual void setClippedGeometryOutputSkip(bool bSkip)=0
 
virtual void setExternalClippedGeometryOutputInterface(OdGiClippedGeometryOutput::ClippedGeometryOutputInterface *pIface)=0
 
virtual bool isClippedGeometryOutputSkipping() const =0
 
virtual void setDrawContext(OdGiConveyorContext *pDrawCtx)=0
 
ODRX_DECLARE_MEMBERS(OdGiClippedGeometryConnector)
 
virtual bool isGeometryOutputDisabled() const =0
 
virtual OdGiClippedGeometryOutput * getClippedGeometryOutput() const =0
 
virtual bool hasClippedGeometryOutput() const =0
 
virtual OdGiClippedGeometryOutput::ClippedGeometryOutputInterface & clippedGeometryOutputInterface()=0
 
virtual void disableGeometryOutput(bool bDisable)=0
 
virtual void setClippedGeometryOutput(OdGiClippedGeometryOutput *pOutput)=0
 
virtual bool isOpenedSectionsOutputEnabled() const =0
 
virtual bool isClosedSectionsOutputEnabled() const =0
 
virtual void clearClipStatus()=0
 
virtual OdGiClippedGeometryOutput::ClippedGeometryOutputInterface * nativeClippingGeometryInterface()=0
 
virtual bool isClipStageSectionable(OdUInt32 nStage) const =0
 
virtual void set(OdGiClipBoundary *pBoundary, OdGiAbstractClipBoundary *pClipInfo=NULL, const OdGeMatrix3d *pXform=NULL)=0
 
virtual void get(OdIntArray &counts, OdGePoint2dArray &points, bool &bClipLowerZ, double &dLowerZ, bool &bClipUpperZ, double &dUpperZ) const =0
 
virtual void clearClipping(bool bClearCache=false)=0
 
virtual bool getClipStage(OdUInt32 nStage, OdIntArray &counts, OdGePoint3dArray &points, OdGeVector3d *pNormal=NULL) const =0
 
virtual void set(bool bInverted, const OdGePoint2dArray &points, bool bClipLowerZ=false, double dLowerZ=0.0, bool bClipUpperZ=false, double dUpperZ=0.0)=0
 
virtual void clearTemporaryArrays()=0
 
virtual bool isClipStageEnabled(OdUInt32 nStage) const =0
 
void set(const OdIntArray &counts, const OdGePoint2dArray &points, bool bClipLowerZ=false, double dLowerZ=0.0, bool bClipUpperZ=false, double dUpperZ=0.0)
 
virtual void set(bool bPreprocess, const OdIntArray &counts, const OdGePoint2dArray &points, bool bClipLowerZ=false, double dLowerZ=0.0, bool bClipUpperZ=false, double dUpperZ=0.0)=0
 
virtual bool isLoggingEnabled() const =0
 
virtual VisibilityStatus checkSphereVisibility(const OdGePoint3d &origin, double radius) const =0
 
virtual void pushClipStage(OdUInt32 numPlanes, const ClipPlane *pPlanes, const OdGeMatrix3d *pXform=NULL, OdUInt32 stageFlags=kCSNoFlags)=0
 
virtual VisibilityStatus checkBoundsVisibility(const OdGeBoundBlock3d &bb) const =0
 
virtual OdGiConveyorOutput & sectionOutput(OdGiMultipleClippedOutputExt *pExt=NULL)=0
 
ODRX_DECLARE_MEMBERS(OdGiOrthoClipperEx)
 
virtual bool popClipStage()=0
 
virtual void enableClipStage(OdUInt32 nStage, bool bEnable)=0
 
virtual void disableLogging()=0
 
virtual OdUInt32 numClipStages() const =0
 
virtual OdGiConveyorOutput & cuttingOutput(OdGiMultipleClippedOutputExt *pExt=NULL)=0
 
void set(OdUInt32 nCounts, const int *counts, OdUInt32 nPoints, const OdGePoint2d *points, bool bClipLowerZ=false, double dLowerZ=0.0, bool bClipUpperZ=false, double dUpperZ=0.0)
 
virtual OdUInt32 getLimit(ClipLimit clipLimit) const =0
 
virtual bool getClipStage(OdUInt32 nStage, ClipPlanesArray &planes) const =0
 
virtual void flushSection(bool bFlushClosed=true, bool bFlushOpened=false, bool bReleaseData=true)=0
 
virtual void pushClipStage(OdUInt32 nCounts, const int *counts, OdUInt32 nPoints, const OdGePoint3d *points, const OdGeVector3d *pNormal=NULL, OdUInt32 stageFlags=kCSNoFlags, CountsClassify countsClass=kCCDontClassify, const OdGeMatrix3d *pXform=NULL, OdUInt32 numPlanes=0, const ClipPlane *pPlanes=NULL, PolyTolOverride *pPolyTol=NULL)=0
 
virtual void pushClipStage(OdGiClipBoundary *pBoundary, OdGiAbstractClipBoundary *pClipInfo=NULL, const OdGeMatrix3d *pXform=NULL)=0
 
virtual OdUInt32 clipStatus() const =0
 
virtual OdGiAbstractClipBoundary::BoundaryType getType() const =0
 
virtual bool enabled() const =0
 
virtual void classifyClipStage(OdUInt32 nStage, OdUInt32 *pNPlanes, OdUInt32 *pNPolys=NULL, bool *bFirstPolyInverted=NULL) const =0
 
TD_USING(OdGiOrthoClipper::get)
 
virtual bool isExtended() const =0
 
virtual bool isEmptyClipSet() const =0
 
virtual void enableLogging(OdStreamBuf *pStream)=0
 
OdArray< ClipPlane, OdObjectsAllocator< ClipPlane > > ClipPlanesArray
 
virtual void set(bool bPreprocess, OdUInt32 nCounts, const int *counts, OdUInt32 nPoints, const OdGePoint2d *points, bool bClipLowerZ=false, double dLowerZ=0.0, bool bClipUpperZ=false, double dUpperZ=0.0)=0
 
virtual bool isAnalyticCurvesClippingEnabled() const =0
 
virtual VisibilityStatus checkExtentsVisibility(const OdGeExtents3d &extents) const =0
 
virtual void setTextsNoClip(bool bOn)=0
 
TD_USING(OdGiOrthoClipper::set)
 
virtual bool isInverted() const =0
 
virtual bool isSingleClipStage() const =0
 
virtual void pushClipStage(OdUInt32 nCounts, const int *counts, OdUInt32 nPoints, const OdGePoint2d *points, OdUInt32 stageFlags=kCSNoFlags, CountsClassify countsClass=kCCDontClassify, const OdGeMatrix3d *pXform=NULL, OdUInt32 numPlanes=0, const ClipPlane *pPlanes=NULL, PolyTolOverride *pPolyTol=NULL)=0
 
virtual void setLimit(ClipLimit clipLimit, OdUInt32 nLimit)=0
 
virtual bool isEmpty() const =0
 
virtual bool isClipStageCuttable(OdUInt32 nStage) const =0
 
virtual void enableAnalyticCurvesClipping(bool bEnable)=0
 
virtual void get(bool &bInverted, OdGePoint2dArray &points, bool &bClipLowerZ, double &dLowerZ, bool &bClipUpperZ, double &dUpperZ) const =0
 
virtual bool getClipStage(OdUInt32 nStage, OdIntArray &counts, OdGePoint2dArray &points, OdGeVector3d *pNormal=NULL) const =0
 
virtual void set(bool bInverted, OdUInt32 nPoints, const OdGePoint2d *points, bool bClipLowerZ=false, double dLowerZ=0.0, bool bClipUpperZ=false, double dUpperZ=0.0)=0
 
@ kCCClassifiedByInclusion
 
virtual void setSkipExtentsCheck(bool bOn)=0
 
virtual VisibilityStatus checkPointVisibility(const OdGePoint3d &pt) const =0
 
virtual void get(OdGePoint2dArray &points, bool &bClipLowerZ, double &dLowerZ, bool &bClipUpperZ, double &dUpperZ) const =0
 
virtual void set(OdUInt32 nPoints, const OdGePoint2d *points, bool bClipLowerZ=false, double dLowerZ=0.0, bool bClipUpperZ=false, double dUpperZ=0.0)=0
 
virtual void selectClipOutput(OdInt32 nClipClient=-1)=0
 
TolOverride m_clipTolOverride
 
TolOverride m_sectionTolOverride
 
TolOverride m_localTolOverride
 
TolOverride m_boundaryTolOverride
 
TolOverride m_sectionTolOverride
 
TolOverride m_clipTolOverride