> Moreover it seems to me that > InteractionGeometryMetaEngine doesn't care if interactions are real or > not. On the contrary it chooses if it is the case or not : > l.46 InteractionGeometryMetaEngine.cpp : > interaction->isReal = > b1->interactingGeometry && b2->interactingGeometry && // > some bodies do not have interactingGeometry > // FIXME put this inside VolatileInteractionCriterion dynlib > ( > persistentInteractions->find(interaction->getId1(),interaction->getId2()) > == 0 ) > && > operator()( b1->interactingGeometry , > b2->interactingGeometry , b1->physicalParameters->se3 , > b2->physicalParameters->se3 , interaction ); > > So ??? > >
Yes. But! Any body that can interact with something gets its InteractingGeometry with its creation. E.q. if (body->interactingGeometry) then body_is_interactable else body_is_non_interactable InteractionGeometryMetaEngine cares about creating the _InteractionGeometry_ from two InteractingGeometries. E.q. the _InteractionGeometryMetaEngine_ determines whether interaction isReal or only potential. Therefore, there is no controversy: 1. A collider find the potential interaction (intersecting bounding volumes). The Interaction isNew=1, isReal=0. 2. InteractionPhysicsMetaEngine create InteractionPhysics for new interaction (once for all interaction time). The Interaction isNew=0, isReal=0. 3. InteractionGeometryMetaEngine create InteractingGeometry if the bodies are really in contact (on each time step). The Interaction isNew=0, isReal=1. 4. Calculating forces, ect... 5. The bodies separated. They surfaces not intersect, but AABBs intersect yet. Interaction potential again. Do not have to calculate physics. Do not have to calculate geometry. isNew=0, isReal=0. 6. They AABBs not intersect. The interaction is removed. -- Best regards, Sergei D. _______________________________________________ yade-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/yade-dev
