ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cvSelectionFilter Class Reference

Advanced selection filtering system. More...

#include <cvSelectionAlgebra.h>

Inheritance diagram for cvSelectionFilter:
Collaboration diagram for cvSelectionFilter:

Public Types

enum  FilterType {
  ATTRIBUTE_RANGE , GEOMETRIC_AREA , GEOMETRIC_ANGLE , SPATIAL_BBOX ,
  SPATIAL_DISTANCE , TOPOLOGY_NEIGHBORS
}
 Filter types. More...
 
enum  ComparisonOp {
  EQUAL , NOT_EQUAL , LESS_THAN , LESS_EQUAL ,
  GREATER_THAN , GREATER_EQUAL , BETWEEN , OUTSIDE
}
 Comparison operators. More...
 

Signals

void progressChanged (int percentage)
 Emitted when filtering progress changes. More...
 
void filteringComplete (const cvSelectionData &result)
 Emitted when filtering is complete. More...
 

Public Member Functions

 cvSelectionFilter (QObject *parent=nullptr)
 
 ~cvSelectionFilter () override
 
cvSelectionData filterByAttributeRange (vtkPolyData *polyData, const cvSelectionData &input, const QString &attributeName, double minValue, double maxValue)
 Filter by attribute value range. More...
 
cvSelectionData filterByAttributeComparison (vtkPolyData *polyData, const cvSelectionData &input, const QString &attributeName, ComparisonOp op, double value)
 Filter by attribute comparison. More...
 
cvSelectionData filterByArea (vtkPolyData *polyData, const cvSelectionData &input, double minArea, double maxArea)
 Filter cells by area. More...
 
cvSelectionData filterByNormalAngle (vtkPolyData *polyData, const cvSelectionData &input, double refX, double refY, double refZ, double minAngleDeg, double maxAngleDeg)
 Filter by normal angle relative to reference direction. More...
 
cvSelectionData filterByBoundingBox (vtkPolyData *polyData, const cvSelectionData &input, const double bounds[6])
 Filter by bounding box. More...
 
cvSelectionData filterByDistanceFromPoint (vtkPolyData *polyData, const cvSelectionData &input, double x, double y, double z, double minDistance, double maxDistance)
 Filter by distance from point. More...
 
cvSelectionData filterByNeighborCount (vtkPolyData *polyData, const cvSelectionData &input, int minNeighbors, int maxNeighbors)
 Filter by neighbor count (topology) More...
 

Static Public Member Functions

static cvSelectionData combineAND (const cvSelectionData &a, const cvSelectionData &b)
 Combine two selections with AND operation. More...
 
static cvSelectionData combineOR (const cvSelectionData &a, const cvSelectionData &b)
 Combine two selections with OR operation. More...
 
static cvSelectionData invert (vtkPolyData *polyData, const cvSelectionData &input)
 Invert selection (NOT operation) More...
 
static QStringList getAttributeNames (vtkPolyData *polyData, bool pointData=true)
 Get attribute names available in polyData. More...
 

Detailed Description

Advanced selection filtering system.

Provides various filters to refine selections:

  • Attribute-based filtering (scalar values, colors, etc.)
  • Geometric filtering (area, angle, distance)
  • Spatial filtering (bounding box, distance from point)
  • Combinatorial filtering (AND, OR, NOT operations)

Based on ParaView's selection filter functionality.

Definition at line 271 of file cvSelectionAlgebra.h.

Member Enumeration Documentation

◆ ComparisonOp

Comparison operators.

Enumerator
EQUAL 
NOT_EQUAL 
LESS_THAN 
LESS_EQUAL 
GREATER_THAN 
GREATER_EQUAL 
BETWEEN 
OUTSIDE 

Definition at line 290 of file cvSelectionAlgebra.h.

◆ FilterType

Filter types.

Enumerator
ATTRIBUTE_RANGE 

Filter by attribute value range.

GEOMETRIC_AREA 

Filter by cell area.

GEOMETRIC_ANGLE 

Filter by normal angle.

SPATIAL_BBOX 

Filter by bounding box.

SPATIAL_DISTANCE 

Filter by distance from point.

TOPOLOGY_NEIGHBORS 

Filter by neighbor count.

Definition at line 278 of file cvSelectionAlgebra.h.

Constructor & Destructor Documentation

◆ cvSelectionFilter()

cvSelectionFilter::cvSelectionFilter ( QObject *  parent = nullptr)
explicit

Definition at line 1043 of file cvSelectionAlgebra.cpp.

References CVLog::PrintVerbose().

◆ ~cvSelectionFilter()

cvSelectionFilter::~cvSelectionFilter ( )
override

Definition at line 1048 of file cvSelectionAlgebra.cpp.

Member Function Documentation

◆ combineAND()

cvSelectionData cvSelectionFilter::combineAND ( const cvSelectionData a,
const cvSelectionData b 
)
static

◆ combineOR()

cvSelectionData cvSelectionFilter::combineOR ( const cvSelectionData a,
const cvSelectionData b 
)
static

◆ filterByArea()

cvSelectionData cvSelectionFilter::filterByArea ( vtkPolyData *  polyData,
const cvSelectionData input,
double  minArea,
double  maxArea 
)

◆ filterByAttributeComparison()

cvSelectionData cvSelectionFilter::filterByAttributeComparison ( vtkPolyData *  polyData,
const cvSelectionData input,
const QString &  attributeName,
ComparisonOp  op,
double  value 
)

◆ filterByAttributeRange()

cvSelectionData cvSelectionFilter::filterByAttributeRange ( vtkPolyData *  polyData,
const cvSelectionData input,
const QString &  attributeName,
double  minValue,
double  maxValue 
)

◆ filterByBoundingBox()

cvSelectionData cvSelectionFilter::filterByBoundingBox ( vtkPolyData *  polyData,
const cvSelectionData input,
const double  bounds[6] 
)

◆ filterByDistanceFromPoint()

cvSelectionData cvSelectionFilter::filterByDistanceFromPoint ( vtkPolyData *  polyData,
const cvSelectionData input,
double  x,
double  y,
double  z,
double  minDistance,
double  maxDistance 
)

◆ filterByNeighborCount()

cvSelectionData cvSelectionFilter::filterByNeighborCount ( vtkPolyData *  polyData,
const cvSelectionData input,
int  minNeighbors,
int  maxNeighbors 
)

◆ filterByNormalAngle()

cvSelectionData cvSelectionFilter::filterByNormalAngle ( vtkPolyData *  polyData,
const cvSelectionData input,
double  refX,
double  refY,
double  refZ,
double  minAngleDeg,
double  maxAngleDeg 
)

◆ filteringComplete

void cvSelectionFilter::filteringComplete ( const cvSelectionData result)
signal

Emitted when filtering is complete.

◆ getAttributeNames()

QStringList cvSelectionFilter::getAttributeNames ( vtkPolyData *  polyData,
bool  pointData = true 
)
static

Get attribute names available in polyData.

Definition at line 1514 of file cvSelectionAlgebra.cpp.

References data.

◆ invert()

cvSelectionData cvSelectionFilter::invert ( vtkPolyData *  polyData,
const cvSelectionData input 
)
static

◆ progressChanged

void cvSelectionFilter::progressChanged ( int  percentage)
signal

Emitted when filtering progress changes.


The documentation for this class was generated from the following files: