65 #ifndef vtkCollisionDetectionFilter_h
66 #define vtkCollisionDetectionFilter_h
69 #include "vtkFiltersModelingModule.h"
72 VTK_ABI_NAMESPACE_BEGIN
95 VTK_FIRST_CONTACT = 1,
105 vtkSetClampMacro(CollisionMode,
int, VTK_ALL_CONTACTS, VTK_HALF_CONTACTS);
106 vtkGetMacro(CollisionMode,
int);
113 if (this->CollisionMode == VTK_ALL_CONTACTS)
115 return "AllContacts";
117 else if (this->CollisionMode == VTK_FIRST_CONTACT)
119 return "FirstContact";
123 return "HalfContacts";
137 double bounds2[6],
double tol2,
double x1[3],
double x2[3],
int CollisionMode);
184 vtkSetMacro(BoxTolerance,
float);
185 vtkGetMacro(BoxTolerance,
float);
191 vtkSetMacro(CellTolerance,
double);
192 vtkGetMacro(CellTolerance,
double);
200 vtkSetMacro(GenerateScalars,
int);
201 vtkGetMacro(GenerateScalars,
int);
202 vtkBooleanMacro(GenerateScalars,
int);
220 vtkGetMacro(NumberOfBoxTests,
int);
227 vtkSetMacro(NumberOfCellsPerNode,
int);
228 vtkGetMacro(NumberOfCellsPerNode,
int);
236 vtkSetClampMacro(Opacity,
float, 0.0, 1.0);
237 vtkGetMacro(Opacity,
float);
276 VTK_ABI_NAMESPACE_END
Proxy object to connect input/output ports.
vtkAlgorithmOutput * GetOutputPort()
performs collision determination between two polyhedral surfaces
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 ...
vtkMatrix4x4 * GetMatrix(int i)
void SetTransform(int i, vtkLinearTransform *transform)
const char * GetCollisionModeAsString()
Set the collision mode to VTK_ALL_CONTACTS to find all the contacting cell pairs with two points per ...
static vtkCollisionDetectionFilter * New()
Standard methods for construction, type and printing.
vtkMTimeType GetMTime() override
Return this object's modified time.
vtkIdTypeArray * GetContactCells(int i)
Get an array of the contacting cells.
vtkLinearTransform * GetTransform(int i)
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 ...
vtkPolyData * GetInputData(int i)
Set and Get the input vtk polydata models.
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.
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 ...
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.
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.
vtkPolyData * GetOutput()
Get the output data object for a port on this algorithm.
concrete dataset represents vertices, lines, polygons, and triangle strips
vtkTypeUInt32 vtkMTimeType