The collision between two objects is generally defined as the object bounding boxes intersecting each other.
Thus placing a book on the middle shelf of a bookshelf is a collision, because collision ignores the actual 3D mesh.
More information on the concept of bounding box can be found here : https://en.wikipedia.org/wiki/Bounding_volume.
The bounding box of an assembly is the bounding box of the full combined geometry, unless one node within the assembly is tagged “collide”, in which case the bounding box of this node becomes the collide box of the global assembly. Usage examples include removing fronts and handles from a kitchen cabinet collide box.
In this example, the book is inside the bounding box of the shelf
Product-Product translate collision
Translate collisions between products are generally permitted, but can be prevented through the collide product attribute, in the behaviors section.
- Collide = 0 (yes) : collision permitted (default). Objects can be placed into each other : “soft objects”.
- Collide = 1 (no) : collision forbidden : “hard objects”
|Dragged object||Collided object||Collided object|
|–||behavior.collide = 0||behavior.collide = 1|
|behavior.collide = 0||Collision permitted||Collision permitted|
|behavior.collide = 1||Collision permitted||Collision is forbidden by the manipulator|
Product-Product collision for other manipulators
Collision is always permitted for other manipulators : rotate, elevate, and the measure command. However, a snap generally allows the placement of objects against each other if so desired.
The management of collisions between products and walls, floors, openings, room objects is application-dependant.
targetPosition, defaultAltitude, manipMode, ungroupable, modular, replaceable
These behaviors are application-dependent. For kitchen, they are described here.