svcco.collision package¶
Submodules¶
svcco.collision.collision module¶
- svcco.collision.collision.collision_free(data, results, idx, terminal, vessel, radius_buffer)[source]¶
svcco.collision.obb module¶
- svcco.collision.obb.obb(data, edge)[source]¶
start = time.time() collision = False start = time.time() cyl_2 = vtk.vtkTubeFilter() line2 = vtk.vtkLineSource() line2.SetPoint1(edge[0],edge[1],edge[2]) line2.SetPoint2(edge[3],edge[4],edge[5]) cyl_2.SetInputConnection(line2.GetOutputPort()) cyl_2.SetRadius(edge[21]) cyl_2.SetNumberOfSides(20) cyl_2.CappingOn() for i in range(data.shape[0]):
cyl_1 = vtk.vtkTubeFilter() line1 = vtk.vtkLineSource() line1.SetPoint1(data[i,0],data[i,1],data[i,2]) line1.SetPoint2(data[i,3],data[i,4],data[i,5]) cyl_1.SetInputConnection(line1.GetOutputPort()) cyl_1.SetRadius(data[i,21]) cyl_1.SetNumberOfSides(20) cyl_1.CappingOn() collision = vtk.vtkCollisionDetectionFilter() collision.SetInputConnection(0,cyl_1.GetOutputPort()) collision.SetInputConnection(1,cyl_2.GetOutputPort()) transform = vtk.vtkTransform() matrix = vtk.vtkMatrix4x4() collision.SetTransform(0,transform) collision.SetMatrix(1,matrix) collision.SetCollisionModeToAllContacts() collision.GenerateScalarsOn() collision.Update() if collision.GetNumberOfContacts() > 0:
collision = True break
#print('OBB: {}'.format(time.time()-start)) end = time.time() - start #print(end) return collision