13 #if !defined(KRATOS_FIND_INTERSECTED_GEOMETRICAL_OBJECTS_WITH_OBB_PROCESS_H_INCLUDED )
14 #define KRATOS_FIND_INTERSECTED_GEOMETRICAL_OBJECTS_WITH_OBB_PROCESS_H_INCLUDED
107 const double BoundingBoxFactor = -1.0,
108 const Flags Options = FindIntersectedGeometricalObjectsProcess::INTERSECTING_CONDITIONS|
109 FindIntersectedGeometricalObjectsProcess::INTERSECTING_ELEMENTS|
110 FindIntersectedGeometricalObjectsProcess::INTERSECTED_CONDITIONS|
111 FindIntersectedGeometricalObjectsProcess::INTERSECTED_ELEMENTS|
112 FindIntersectedGeometricalObjectsWithOBBProcess::DEBUG_OBB.AsFalse()|
113 FindIntersectedGeometricalObjectsWithOBBProcess::SEPARATING_AXIS_THEOREM|
114 FindIntersectedGeometricalObjectsWithOBBProcess::BUILD_OBB_FROM_BB
136 const Parameters GetDefaultParameters()
const override;
150 std::string
Info()
const override {
151 return "FindIntersectedGeometricalObjectsWithOBBProcess";
174 double mBoundingBoxFactor = -1.0;
188 void SetOctreeBoundingBox()
override;
195 bool HasIntersection(
205 virtual bool HasIntersection2D(
215 virtual bool HasDirectIntersection2D(
225 virtual bool HasIntersection3D(
235 virtual bool HasDirectIntersection3D(
246 void CreateDebugOBB2D(
248 Properties::Pointer pProperties,
258 void CreateDebugOBB3D(
260 Properties::Pointer pProperties,
271 if (rString ==
"Direct" || rString ==
"direct")
272 BaseType::mOptions.Set(FindIntersectedGeometricalObjectsWithOBBProcess::SEPARATING_AXIS_THEOREM,
false);
273 else if (rString ==
"SeparatingAxisTheorem" || rString ==
"separating_axis_theorem")
274 BaseType::mOptions.Set(FindIntersectedGeometricalObjectsWithOBBProcess::SEPARATING_AXIS_THEOREM,
true);
276 BaseType::mOptions.Set(FindIntersectedGeometricalObjectsWithOBBProcess::SEPARATING_AXIS_THEOREM,
true);
285 if (BaseType::mOptions.Is(FindIntersectedGeometricalObjectsWithOBBProcess::SEPARATING_AXIS_THEOREM))
350 rOStream << std::endl;
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
This class takes two modelparts and marks the intersected ones with SELECTED flag.
Definition: find_intersected_geometrical_objects_process.h:321
This class takes two modelparts and marks the intersected ones with SELECTED flag....
Definition: find_intersected_geometrical_objects_with_obb_process.h:55
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: find_intersected_geometrical_objects_with_obb_process.h:160
std::string Info() const override
Turn back information as a string.
Definition: find_intersected_geometrical_objects_with_obb_process.h:150
KRATOS_CLASS_POINTER_DEFINITION(FindIntersectedGeometricalObjectsWithOBBProcess)
Pointer definition of FindIntersectedGeometricalObjectsWithOBBProcess.
std::size_t IndexType
Definition of the index type.
Definition: find_intersected_geometrical_objects_with_obb_process.h:69
FindIntersectedGeometricalObjectsWithOBBProcess(FindIntersectedGeometricalObjectsWithOBBProcess const &rOther)=delete
Copy constructor.
std::size_t SizeType
Definition of the size type.
Definition: find_intersected_geometrical_objects_with_obb_process.h:72
Parameters mThisParameters
The factor to be consider when computing the bounding box (if negative not considered)
Definition: find_intersected_geometrical_objects_with_obb_process.h:175
OBBHasIntersectionType GetOBBHasIntersectionType()
This returns the interesection type from the flag.
Definition: find_intersected_geometrical_objects_with_obb_process.h:283
KRATOS_DEFINE_LOCAL_FLAG(SEPARATING_AXIS_THEOREM)
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: find_intersected_geometrical_objects_with_obb_process.h:155
FindIntersectedGeometricalObjectsWithOBBProcess()=delete
Default constructor.
KRATOS_DEFINE_LOCAL_FLAG(BUILD_OBB_FROM_BB)
~FindIntersectedGeometricalObjectsWithOBBProcess() override
Destructor.
Definition: find_intersected_geometrical_objects_with_obb_process.h:131
Point PointType
Definition of the point type.
Definition: find_intersected_geometrical_objects_with_obb_process.h:75
FindIntersectedGeometricalObjectsProcess BaseType
Definition of the base type.
Definition: find_intersected_geometrical_objects_with_obb_process.h:78
void ConvertIntersection(const std::string &rString)
This sets the interesection flag.
Definition: find_intersected_geometrical_objects_with_obb_process.h:269
KRATOS_DEFINE_LOCAL_FLAG(DEBUG_OBB)
Local Flags.
BaseType::OctreeType OctreeType
Octree type definition.
Definition: find_intersected_geometrical_objects_with_obb_process.h:81
Geometry base class.
Definition: geometry.h:71
This class aims to manage different model parts across multi-physics simulations.
Definition: model.h:60
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class defines the node.
Definition: node.h:65
This class defines the Oriented bounding box class.
Definition: oriented_bounding_box.h:77
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
Point class.
Definition: point.h:59
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
OBBHasIntersectionType
This enum defines the different types of checks that can be done for the HasIntersection:
Definition: oriented_bounding_box.h:47
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432