132 #ifndef vtkModifiedBSPTree_h
133 #define vtkModifiedBSPTree_h
136 #include "vtkFiltersFlowPathsModule.h"
139 VTK_ABI_NAMESPACE_BEGIN
140 class Sorted_cell_extents_Lists;
172 int IntersectWithLine(
const double p1[3],
const double p2[3],
double tol,
double& t,
double x[3],
196 const double p1[3],
const double p2[3],
double tolerance,
vtkIdList* cellsIds)
override
198 this->Superclass::FindCellsAlongLine(p1, p2, tolerance, cellsIds);
209 double pcoords[3],
double* weights)
override;
221 virtual void GenerateRepresentationLeafs(
vtkPolyData* pd);
249 void Subdivide(BSPNode* node, Sorted_cell_extents_Lists* lists,
vtkDataSet* dataSet,
261 #ifndef DOXYGEN_SHOULD_SKIP_THIS
269 mChild[0] = mChild[1] = mChild[2] =
nullptr;
270 for (
int i = 0; i < 6; i++)
271 sorted_cell_lists[i] =
nullptr;
272 for (
int i = 0; i < 3; i++)
281 for (
int i = 0; i < 3; i++)
283 for (
int i = 0; i < 6; i++)
284 delete[] sorted_cell_lists[i];
287 void setMin(
double minx,
double miny,
double minz)
289 this->Bounds[0] = minx;
290 this->Bounds[2] = miny;
291 this->Bounds[4] = minz;
294 void setMax(
double maxx,
double maxy,
double maxz)
296 this->Bounds[1] = maxx;
297 this->Bounds[3] = maxy;
298 this->Bounds[5] = maxz;
301 bool Inside(
double point[3])
const;
317 void Classify(
const double origin[3],
const double dir[3],
double& rDist, BSPNode*& Near,
318 BSPNode*& Mid, BSPNode*& Far)
const;
322 static int VTKFILTERSFLOWPATHS_EXPORT getDominantAxis(
const double dir[3]);
327 VTK_ABI_NAMESPACE_END
virtual void BuildLocator()=0
Build the locator from the input dataset.
void FindCellsAlongLine(const double p1[3], const double p2[3], double tolerance, vtkIdList *cellsIds) override
Take the passed line segment and intersect it with the data set.
abstract class to specify dataset behavior
an abstract base class for locators which find cells
concrete dataset represents vertices, lines, polygons, and triangle strips
virtual void FreeSearchStructure()=0
Free the memory required for the spatial data structure.
provides thread-safe access to cells
virtual void ShallowCopy(vtkAbstractCellLocator *)
Shallow copy of a vtkAbstractCellLocator.
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.
a simple class to control print indentation
virtual void BuildLocatorInternal()
This function is not pure virtual to maintain backwards compatibility.
virtual vtkIdType FindCell(double x[3])
Returns the Id of the cell containing the point, returns -1 if no cell found.
list of point or cell ids
maintain an ordered list of IdList objects
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...
std::shared_ptr< BSPNode > mRoot
virtual void GenerateRepresentation(int level, vtkPolyData *pd)=0
Method to build a representation at a particular level.
represent and manipulate 3D points
virtual void ForceBuildLocator()
Build the locator from the input dataset (even if UseExistingSearchStructure is on).
Generate axis aligned BBox tree for ray-casting and other Locator based searches. ...