75#ifndef vtkCollisionDetectionFilter_h
76#define vtkCollisionDetectionFilter_h
79#include "vtkFiltersModelingModule.h"
82VTK_ABI_NAMESPACE_BEGIN
104 VTK_ALL_CONTACTS = 0,
105 VTK_FIRST_CONTACT = 1,
106 VTK_HALF_CONTACTS = 2
115 vtkSetClampMacro(CollisionMode,
int, VTK_ALL_CONTACTS, VTK_HALF_CONTACTS);
116 vtkGetMacro(CollisionMode,
int);
123 if (this->CollisionMode == VTK_ALL_CONTACTS)
125 return "AllContacts";
127 else if (this->CollisionMode == VTK_FIRST_CONTACT)
129 return "FirstContact";
133 return "HalfContacts";
147 double bounds2[6],
double tol2,
double x1[3],
double x2[3],
int CollisionMode);
194 vtkSetMacro(BoxTolerance,
float);
195 vtkGetMacro(BoxTolerance,
float);
201 vtkSetMacro(CellTolerance,
double);
202 vtkGetMacro(CellTolerance,
double);
210 vtkSetMacro(GenerateScalars,
int);
211 vtkGetMacro(GenerateScalars,
int);
212 vtkBooleanMacro(GenerateScalars,
int);
230 vtkGetMacro(NumberOfBoxTests,
int);
237 vtkSetMacro(NumberOfCellsPerNode,
int);
238 vtkGetMacro(NumberOfCellsPerNode,
int);
246 vtkSetClampMacro(Opacity,
float, 0.0, 1.0);
247 vtkGetMacro(Opacity,
float);
Proxy object to connect input/output ports.
performs collision determination between two polyhedral surfaces
vtkAlgorithmOutput * GetContactsOutputPort()
Get the output with the points where the contacting cells intersect.
vtkPolyData * GetContactsOutput()
Get the output with the points where the contacting cells intersect.
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called by the superclass.
void SetCollisionModeToFirstContact()
Set the collision mode to VTK_ALL_CONTACTS to find all the contacting cell pairs with two points per ...
void SetTransform(int i, vtkLinearTransform *transform)
vtkIdTypeArray * GetContactCells(int i)
Get an array of the contacting cells.
vtkPolyData * GetInputData(int i)
Set and Get the input vtk polydata models.
vtkMTimeType GetMTime() override
Return this object's modified time.
vtkMatrix4x4 * GetMatrix(int i)
static vtkCollisionDetectionFilter * New()
Standard methods for construction, type and printing.
int GetNumberOfContacts()
~vtkCollisionDetectionFilter() override
void SetCollisionModeToHalfContacts()
Set the collision mode to VTK_ALL_CONTACTS to find all the contacting cell pairs with two points per ...
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for construction, type and printing.
void SetInputData(int i, vtkPolyData *model)
Set and Get the input vtk polydata models.
vtkCollisionDetectionFilter()
int IntersectPolygonWithPolygon(int npts, double *pts, double bounds[6], int npts2, double *pts2, double bounds2[6], double tol2, double x1[3], double x2[3], int CollisionMode)
Description: Intersect two polygons, return x1 and x2 as the two points of intersection.
const char * GetCollisionModeAsString()
Set the collision mode to VTK_ALL_CONTACTS to find all the contacting cell pairs with two points per ...
void SetMatrix(int i, vtkMatrix4x4 *matrix)
void SetCollisionModeToAllContacts()
Set the collision mode to VTK_ALL_CONTACTS to find all the contacting cell pairs with two points per ...
vtkLinearTransform * GetTransform(int i)
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
generate oriented bounding box (OBB) tree
represent and manipulate 3D points
Superclass for algorithms that produce only polydata as output.
concrete dataset represents vertices, lines, polygons, and triangle strips
vtkTypeUInt32 vtkMTimeType