|  | VTK
    9.0.1
    | 
 
 
 
Go to the documentation of this file.
  143 #ifndef vtkModifiedBSPTree_h 
  144 #define vtkModifiedBSPTree_h 
  147 #include "vtkFiltersFlowPathsModule.h"  
  150 class Sorted_cell_extents_Lists;
 
  194   virtual void GenerateRepresentationLeafs(
vtkPolyData* pd);
 
  200   int IntersectWithLine(
const double p1[3], 
const double p2[3], 
double tol, 
double& t, 
double x[3],
 
  201     double pcoords[3], 
int& subId, 
vtkIdType& cellId) 
override;
 
  207   int IntersectWithLine(
const double p1[3], 
const double p2[3], 
double tol, 
double& t, 
double x[3],
 
  218   virtual int IntersectWithLine(
const double p1[3], 
const double p2[3], 
const double tol,
 
  226     double x[3], 
double tol2, 
vtkGenericCell* GenCell, 
double pcoords[3], 
double* weights) 
override;
 
  248   void Subdivide(BSPNode* node, Sorted_cell_extents_Lists* lists, 
vtkDataSet* dataSet,
 
  255   virtual int IntersectCellInternal(
vtkIdType cell_ID, 
const double p1[3], 
const double p2[3],
 
  256     const double tol, 
double& t, 
double ipt[3], 
double pcoords[3], 
int& subId);
 
  258   void BuildLocatorIfNeeded();
 
  259   void ForceBuildLocator();
 
  260   void BuildLocatorInternal();
 
  271 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
  279     mChild[0] = mChild[1] = mChild[2] = 
nullptr;
 
  280     for (
int i = 0; i < 6; i++)
 
  281       sorted_cell_lists[i] = 
nullptr;
 
  282     for (
int i = 0; i < 3; i++)
 
  291     for (
int i = 0; i < 3; i++)
 
  293     for (
int i = 0; i < 6; i++)
 
  294       delete[] sorted_cell_lists[i];
 
  297   void setMin(
double minx, 
double miny, 
double minz)
 
  299     this->Bounds[0] = minx;
 
  300     this->Bounds[2] = miny;
 
  301     this->Bounds[4] = minz;
 
  304   void setMax(
double maxx, 
double maxy, 
double maxz)
 
  306     this->Bounds[1] = maxx;
 
  307     this->Bounds[3] = maxy;
 
  308     this->Bounds[5] = maxz;
 
  311   bool Inside(
double point[3]) 
const;
 
  327   void Classify(
const double origin[3], 
const double dir[3], 
double& rDist, BSPNode*& Near,
 
  328     BSPNode*& Mid, BSPNode*& Far) 
const;
 
  330   bool RayMinMaxT(
const double origin[3], 
const double dir[3], 
double& rTmin, 
double& rTmax) 
const;
 
  333   friend class vtkParticleBoxTree;
 
  336   static bool VTKFILTERSFLOWPATHS_EXPORT RayMinMaxT(
const double bounds[6], 
const double origin[3],
 
  337     const double dir[3], 
double& rTmin, 
double& rTmax);
 
  338   static int VTKFILTERSFLOWPATHS_EXPORT getDominantAxis(
const double dir[3]);
 
  
represent and manipulate 3D points
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
virtual vtkIdType FindCell(double x[3])
Returns the Id of the cell containing the point, returns -1 if no cell found.
virtual void GenerateRepresentation(int level, vtkPolyData *pd)=0
Method to build a representation at a particular level.
virtual bool InsideCellBounds(double x[3], vtkIdType cell_ID)
Quickly test if a point is inside the bounds of a particular cell.
a simple class to control print indentation
list of point or cell ids
virtual void BuildLocator()=0
Build the locator from the input dataset.
maintain an ordered list of IdList objects
an abstract base class for locators which find cells
abstract class to specify dataset behavior
virtual int IntersectWithLine(const double p1[3], const double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId)
Return intersection point (if any) of finite line with cells contained in cell locator.
concrete dataset represents vertices, lines, polygons, and triangle strips
provides thread-safe access to cells
Generate axis aligned BBox tree for raycasting and other Locator based searches.
virtual void FreeSearchStructure()=0
Free the memory required for the spatial data structure.