Back

CollisionEndEvent

The `CollisionEndEvent` is an event class in the SOFA framework, defined within the `sofa::simulation` namespace and part of the `Sofa.framework.Simulation.Core` module. It inherits from the base `Event` class and serves to signal the completion of a collision detection step performed by the CollisionVisitor. This event facilitates communication between different simulation components that rely on collision information, marking the end of a phase where collisions are detected but before any response or reaction is applied. The `CollisionEndEvent` interacts with other SOFA components through its API methods: - **getEventTypeIndex**: Returns an integer representing the type index of this event. - **checkEventType**: A static method that checks if another given event is a `CollisionEndEvent`, returning true or false accordingly. - **GetClassName**: Provides the class name, 'CollisionEndEvent', as a string for identification purposes. Practical usage involves handling collision-related events in simulation pipelines where knowing when collisions are detected can trigger subsequent actions such as applying forces or updating visual representations. The event does not contain any specific data fields but serves its purpose through these methods.

abstract
`CollisionEndEvent` is an event class that signals the completion of collision detection in SOFA simulations, facilitating communication between components involved in handling collisions.
sheet
# CollisionEndEvent **Overview:** `CollisionEndEvent` is a component within the `sofa::simulation` namespace and part of the `Sofa.framework.Simulation.Core` module. It inherits from the base `Event` class and serves to signal the completion of collision detection performed by the CollisionVisitor, marking a critical point in the simulation workflow where collisions are detected but not yet processed further. **Parameters and Data:** The component does not have any significant data fields or parameters exposed through its API. **Dependencies and Connections:** `CollisionEndEvent` is typically used in conjunction with other components that rely on collision information, such as force fields or constraint solvers. It fits into the scene graph by facilitating communication between these components after the collision detection phase. **Practical Notes:** The event does not contain any specific data but serves its purpose through methods like `getEventTypeIndex`, `checkEventType`, and `GetClassName`. These methods are used for event classification, type checking, and identification purposes.
description
The `CollisionEndEvent` is an event class in the SOFA framework, defined within the `sofa::simulation` namespace and part of the `Sofa.framework.Simulation.Core` module. It inherits from the base `Event` class and serves to signal the completion of a collision detection step performed by the CollisionVisitor. This event facilitates communication between different simulation components that rely on collision information, marking the end of a phase where collisions are detected but before any response or reaction is applied. The `CollisionEndEvent` interacts with other SOFA components through its API methods: - **getEventTypeIndex**: Returns an integer representing the type index of this event. - **checkEventType**: A static method that checks if another given event is a `CollisionEndEvent`, returning true or false accordingly. - **GetClassName**: Provides the class name, 'CollisionEndEvent', as a string for identification purposes. Practical usage involves handling collision-related events in simulation pipelines where knowing when collisions are detected can trigger subsequent actions such as applying forces or updating visual representations. The event does not contain any specific data fields but serves its purpose through these methods.
maths
The `CollisionEndEvent` is an event class in the SOFA framework designed to signal the completion of a collision detection step within the simulation pipeline. It does not contribute directly to any governing equations, constitutive laws, or kinematic relations typically associated with FEM formulations. Instead, it serves as a communication mechanism between different components involved in handling collisions and interactions during simulations. **Role in the Global FEM Pipeline:** - **Collision Detection:** The `CollisionEndEvent` is fired by the CollisionVisitor after completing the collision detection phase. This phase identifies potential intersections or near-misses between geometrical objects in the simulation, but it does not yet apply any physical responses (such as forces) to these collisions. **Numerical Methods and Discretization Choices:** - The `CollisionEndEvent` itself does not implement numerical methods or discretization schemes. Instead, its purpose is to mark a critical point in the simulation process where collision information has been gathered but not yet processed further. **Fitting into Variational/Lagrangian Mechanics Framework:** - In the broader context of variational and Lagrangian mechanics, the `CollisionEndEvent` plays an auxiliary role. It signifies the end of a detection phase that is necessary for enforcing constraints or applying forces due to collisions in subsequent steps. However, it does not directly influence the mathematical formulation of the equations governing deformation or motion. **Mathematical Content:** - The event class `CollisionEndEvent` has no direct mathematical content related to FEM operators (such as mass matrix M, stiffness matrix K, internal force \(\mathbf{f}_{int}\), residual R, etc.). Instead, it serves a functional role in the simulation workflow by providing an event notification mechanism. **API Methods:** - **getEventTypeIndex**: This method returns an integer index representing the type of this event. It is used for event classification and dispatching within the SOFA framework. - **checkEventType**: A static method to determine if a given event is of the `CollisionEndEvent` type, returning true or false accordingly. - **GetClassName**: Provides the class name 'CollisionEndEvent' as a string, useful for identification purposes in debugging and logging.
{
  "name": "CollisionEndEvent",
  "main": {
    "name": "CollisionEndEvent",
    "namespace": "sofa::simulation",
    "module": "Sofa.framework.Simulation.Core",
    "include": "sofa/simulation/CollisionEndEvent.h",
    "doc": "Event fired by CollisionVisitor after performing the collision detection step.",
    "inherits": [
      "Event"
    ],
    "templates": [],
    "data_fields": [],
    "links": [],
    "methods": [
      {
        "name": "getEventTypeIndex",
        "return_type": "int",
        "params": [],
        "is_virtual": false,
        "is_pure_virtual": false,
        "is_static": false,
        "access": "public"
      },
      {
        "name": "checkEventType",
        "return_type": "bool",
        "params": [
          {
            "name": "event",
            "type": "const Event *"
          }
        ],
        "is_virtual": false,
        "is_pure_virtual": false,
        "is_static": true,
        "access": "public"
      },
      {
        "name": "GetClassName",
        "return_type": "const char *",
        "params": [],
        "is_virtual": false,
        "is_pure_virtual": false,
        "is_static": true,
        "access": "public"
      }
    ]
  },
  "desc": {
    "description": "The `CollisionEndEvent` is an event class in the SOFA framework, defined within the `sofa::simulation` namespace and part of the `Sofa.framework.Simulation.Core` module. It inherits from the base `Event` class and serves to signal the completion of a collision detection step performed by the CollisionVisitor. This event facilitates communication between different simulation components that rely on collision information, marking the end of a phase where collisions are detected but before any response or reaction is applied.\n\nThe `CollisionEndEvent` interacts with other SOFA components through its API methods:\n- **getEventTypeIndex**: Returns an integer representing the type index of this event.\n- **checkEventType**: A static method that checks if another given event is a `CollisionEndEvent`, returning true or false accordingly.\n- **GetClassName**: Provides the class name, 'CollisionEndEvent', as a string for identification purposes.\n\nPractical usage involves handling collision-related events in simulation pipelines where knowing when collisions are detected can trigger subsequent actions such as applying forces or updating visual representations. The event does not contain any specific data fields but serves its purpose through these methods."
  },
  "maths": {
    "maths": "The `CollisionEndEvent` is an event class in the SOFA framework designed to signal the completion of a collision detection step within the simulation pipeline. It does not contribute directly to any governing equations, constitutive laws, or kinematic relations typically associated with FEM formulations. Instead, it serves as a communication mechanism between different components involved in handling collisions and interactions during simulations.\n\n**Role in the Global FEM Pipeline:**\n- **Collision Detection:** The `CollisionEndEvent` is fired by the CollisionVisitor after completing the collision detection phase. This phase identifies potential intersections or near-misses between geometrical objects in the simulation, but it does not yet apply any physical responses (such as forces) to these collisions.\n\n**Numerical Methods and Discretization Choices:**\n- The `CollisionEndEvent` itself does not implement numerical methods or discretization schemes. Instead, its purpose is to mark a critical point in the simulation process where collision information has been gathered but not yet processed further.\n\n**Fitting into Variational/Lagrangian Mechanics Framework:**\n- In the broader context of variational and Lagrangian mechanics, the `CollisionEndEvent` plays an auxiliary role. It signifies the end of a detection phase that is necessary for enforcing constraints or applying forces due to collisions in subsequent steps. However, it does not directly influence the mathematical formulation of the equations governing deformation or motion.\n\n**Mathematical Content:**\n- The event class `CollisionEndEvent` has no direct mathematical content related to FEM operators (such as mass matrix M, stiffness matrix K, internal force \\(\\mathbf{f}_{int}\\), residual R, etc.). Instead, it serves a functional role in the simulation workflow by providing an event notification mechanism.\n\n**API Methods:**\n- **getEventTypeIndex**: This method returns an integer index representing the type of this event. It is used for event classification and dispatching within the SOFA framework.\n- **checkEventType**: A static method to determine if a given event is of the `CollisionEndEvent` type, returning true or false accordingly.\n- **GetClassName**: Provides the class name 'CollisionEndEvent' as a string, useful for identification purposes in debugging and logging."
  },
  "summary": {
    "abstract": "`CollisionEndEvent` is an event class that signals the completion of collision detection in SOFA simulations, facilitating communication between components involved in handling collisions.",
    "sheet": "# CollisionEndEvent\n\n**Overview:**\n`CollisionEndEvent` is a component within the `sofa::simulation` namespace and part of the `Sofa.framework.Simulation.Core` module. It inherits from the base `Event` class and serves to signal the completion of collision detection performed by the CollisionVisitor, marking a critical point in the simulation workflow where collisions are detected but not yet processed further.\n\n**Parameters and Data:**\nThe component does not have any significant data fields or parameters exposed through its API.\n\n**Dependencies and Connections:**\n`CollisionEndEvent` is typically used in conjunction with other components that rely on collision information, such as force fields or constraint solvers. It fits into the scene graph by facilitating communication between these components after the collision detection phase.\n\n**Practical Notes:**\nThe event does not contain any specific data but serves its purpose through methods like `getEventTypeIndex`, `checkEventType`, and `GetClassName`. These methods are used for event classification, type checking, and identification purposes."
  }
}