Back

KeyreleasedEvent

sofa::core::objectmodel::KeyreleasedEvent
Event
Doc (from source)

@author Juan Pablo de la Plata @brief This event is propagated along the objects when a key on the keyboard is released.

Abstract (AI generated)

The `KeyreleasedEvent` signals when a keyboard key has been released, propagating through the object hierarchy to notify components of user input.

Metadata
module
Sofa.framework.Core
namespace
sofa::core::objectmodel
include
sofa/core/objectmodel/KeyreleasedEvent.h
inherits
  • Event
description

The KeyreleasedEvent component in the SOFA framework is an event class that propagates through the object hierarchy to notify relevant components when a keyboard key has been released. This component does not contribute directly to any mathematical or physical aspects of the simulation, such as governing equations, constitutive laws, or discretization methods. Instead, it serves a purely functional role in the software architecture by facilitating communication between different parts of the simulation and user interface.

Governing Equations and Operators

  • Governing Equations: None; KeyreleasedEvent does not implement any governing equations related to continuum mechanics or other physical phenomena.
  • Operators: No operators such as mass matrix $M$, stiffness matrix $K$, internal force $oldsymbol{f}_{int}$, residual $R$, etc., are implemented or contributed by this component.

Constitutive and Kinematic Laws

  • Constitutive Laws: None; KeyreleasedEvent does not implement any constitutive laws such as strain measures, stress tensors, hyperelastic potentials, or damping models.
  • Kinematic Laws: None; no kinematic laws are involved in this component's functionality.

Role in the Global FEM Pipeline

  • Assembly Phase: No contribution to assembly of global mass and force matrices or other operators.
  • Time Integration: No involvement in time integration schemes such as implicit Euler or Newmark-type methods.
  • Nonlinear Resolution: Not involved in nonlinear resolution techniques like Newton–Raphson iteration.
  • Linear Resolution: No role in linear resolution steps, including iterative solvers or preconditioning.
  • Constraint Handling and Mapping: Does not handle constraints or mappings within the simulation pipeline.

Numerical Methods and Discretization Choices

  • None; KeyreleasedEvent does not encode any numerical methods or discretization choices relevant to FEM simulations.

Variational / Lagrangian Mechanics Framework

  • No contribution to variational formulations, weak forms, or Lagrangian mechanics principles. This component is purely a software event for user interaction and does not affect the mathematical framework of the simulation.

In summary, KeyreleasedEvent serves as an event-driven mechanism in SOFA for handling keyboard input but has no direct involvement in the computational mechanics aspects of the FEM pipeline.

Methods
int getEventTypeIndex ()
bool checkEventType (const Event * event)
char getKey ()
const char * GetClassName ()
{
  "name": "KeyreleasedEvent",
  "namespace": "sofa::core::objectmodel",
  "module": "Sofa.framework.Core",
  "include": "sofa/core/objectmodel/KeyreleasedEvent.h",
  "doc": "@author Juan Pablo de la Plata\n\t@brief This event is propagated along the objects when a key on the keyboard is released.",
  "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": "getKey",
      "return_type": "char",
      "params": [],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "GetClassName",
      "return_type": "const char *",
      "params": [],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": true,
      "access": "public"
    }
  ],
  "description": "<p>The <code>KeyreleasedEvent</code> is an event in the SOFA framework that signals when a keyboard key has been released. It inherits from the base <code>Event</code> class and propagates through the object hierarchy to notify relevant components of the key release action.</p><p>This component interacts with other SOFA components by being part of the event system, which is used for communication between different parts of a simulation or user interface. The <code>checkEventType</code> method allows static verification if an event matches the type of this specific event class, and the <code>getKey</code> method retrieves the released key.</p><p>In practical usage, <code>KeyreleasedEvent</code> can be utilized to respond to user input in interactive simulations or control interfaces within SOFA. No data fields are explicitly defined beyond the inherited members from the base event class.</p>",
  "maths": "The `KeyreleasedEvent` component in the SOFA framework is an event class that propagates through the object hierarchy to notify relevant components when a keyboard key has been released. This component does not contribute directly to any mathematical or physical aspects of the simulation, such as governing equations, constitutive laws, or discretization methods. Instead, it serves a purely functional role in the software architecture by facilitating communication between different parts of the simulation and user interface.\n\n### Governing Equations and Operators\n- **Governing Equations:** None; `KeyreleasedEvent` does not implement any governing equations related to continuum mechanics or other physical phenomena.\n- **Operators:** No operators such as mass matrix $M$, stiffness matrix $K$, internal force $\boldsymbol{f}_{int}$, residual $R$, etc., are implemented or contributed by this component.\n\n### Constitutive and Kinematic Laws\n- **Constitutive Laws:** None; `KeyreleasedEvent` does not implement any constitutive laws such as strain measures, stress tensors, hyperelastic potentials, or damping models.\n- **Kinematic Laws:** None; no kinematic laws are involved in this component's functionality.\n\n### Role in the Global FEM Pipeline\n- **Assembly Phase:** No contribution to assembly of global mass and force matrices or other operators.\n- **Time Integration:** No involvement in time integration schemes such as implicit Euler or Newmark-type methods.\n- **Nonlinear Resolution:** Not involved in nonlinear resolution techniques like Newton–Raphson iteration.\n- **Linear Resolution:** No role in linear resolution steps, including iterative solvers or preconditioning.\n- **Constraint Handling and Mapping:** Does not handle constraints or mappings within the simulation pipeline.\n\n### Numerical Methods and Discretization Choices\n- None; `KeyreleasedEvent` does not encode any numerical methods or discretization choices relevant to FEM simulations.\n\n### Variational / Lagrangian Mechanics Framework\n- No contribution to variational formulations, weak forms, or Lagrangian mechanics principles. This component is purely a software event for user interaction and does not affect the mathematical framework of the simulation.\n\nIn summary, `KeyreleasedEvent` serves as an event-driven mechanism in SOFA for handling keyboard input but has no direct involvement in the computational mechanics aspects of the FEM pipeline.",
  "abstract": "The `KeyreleasedEvent` signals when a keyboard key has been released, propagating through the object hierarchy to notify components of user input.",
  "sheet": "<h1>KeyreleasedEvent</h1>\n\n<h2>Overview</h2>\n<p>The <code>KeyreleasedEvent</code> is an event class in SOFA that signals when a keyboard key has been released. It propagates through the object hierarchy to notify relevant components of this user input action.</p>\n\n<h2>Parameters and Data</h2>\n<p>This component does not have any explicit data fields beyond those inherited from its base <code>Event</code> class. The methods provided include:</p>\n<ul>\n<li><code>getEventTypeIndex()</code>: Returns the event type index.</li>\n<li><code>checkEventType(const Event*)</code>: Static method to verify if an event matches this specific event type.</li>\n<li><code>getKey()</code>: Retrieves the released key.</li>\n<li><code>GetClassName()</code>: Static method that returns the class name as a string.</li>\n</ul>"
}