InciseAlongPathPerformer
The `InciseAlongPathPerformer` is a component designed to perform incisions (topological cuts) along a path defined by user interactions in a simulation environment, such as within the SOFA framework. This component primarily handles two modes of operation for making incisions: incrementally from click-to-click and completing an entire cut when freezing the performer. ### Key Functionalities: - **Incremental Incision:** In this mode (`currentMethod == 0`), the user can make a series of clicks to define points along which incisions are made. Each click updates the current body's collision element indices and performs topological modifications accordingly. - **Freeze Mode:** When the performer is frozen (`m_freezePerformer == true`), it can complete an open cut (if `fullcut == true`). The component ensures that the initial point of incision remains consistent even if the simulation environment has moved. ### Core Methods: - **execute():** This method performs the core logic for handling both incremental and freezing modes. It checks for different conditions based on user interactions to determine how and where to make topological modifications. - **setPerformerFreeze():** Sets the performer into freeze mode, which triggers the completion of any open cuts if they are marked as needing a full cut (`fullcut == true`). - **PerformCompleteIncision():** This method ensures that an incision is completed from the initial point to the current body's collision element. It handles finding the correct triangle and point for completing the cut. - **draw():** Renders the path along which the incisions are made, providing visual feedback of the defined incision points and their connections in the simulation environment. ### Component Usage: The `InciseAlongPathPerformer` is integrated into the SOFA framework to interact with user inputs and perform topological changes based on those interactions. It requires a context that includes access to topology modifiers, mechanical objects, and collision models to execute its operations successfully.
- abstract
- The `InciseAlongPathPerformer` manages topological cuts along user-defined paths in SOFA simulations, handling both incremental incisions and complete cuts when the performer is frozen.
- sheet
- # InciseAlongPathPerformer ## Overview The `InciseAlongPathPerformer` is a component designed to perform topological cuts (incisions) along paths defined by user interactions within the SOFA simulation framework. It inherits from `InteractionPerformer` and manages two modes of operation: incremental incision and complete cut when frozen. ## Parameters and Data The `InciseAlongPathPerformer` does not expose any significant data fields or parameters through its API, as it primarily relies on user interactions to define the paths for incisions. Its functionality is driven by method calls rather than configurable settings. ## Dependencies and Connections This component typically requires access to topology modifiers, mechanical objects, and collision models within the SOFA scene graph to execute its operations successfully. It interacts with these components to perform topological modifications based on user-defined paths.
- description
- The `InciseAlongPathPerformer` is a component designed to perform incisions (topological cuts) along a path defined by user interactions in a simulation environment, such as within the SOFA framework. This component primarily handles two modes of operation for making incisions: incrementally from click-to-click and completing an entire cut when freezing the performer. ### Key Functionalities: - **Incremental Incision:** In this mode (`currentMethod == 0`), the user can make a series of clicks to define points along which incisions are made. Each click updates the current body's collision element indices and performs topological modifications accordingly. - **Freeze Mode:** When the performer is frozen (`m_freezePerformer == true`), it can complete an open cut (if `fullcut == true`). The component ensures that the initial point of incision remains consistent even if the simulation environment has moved. ### Core Methods: - **execute():** This method performs the core logic for handling both incremental and freezing modes. It checks for different conditions based on user interactions to determine how and where to make topological modifications. - **setPerformerFreeze():** Sets the performer into freeze mode, which triggers the completion of any open cuts if they are marked as needing a full cut (`fullcut == true`). - **PerformCompleteIncision():** This method ensures that an incision is completed from the initial point to the current body's collision element. It handles finding the correct triangle and point for completing the cut. - **draw():** Renders the path along which the incisions are made, providing visual feedback of the defined incision points and their connections in the simulation environment. ### Component Usage: The `InciseAlongPathPerformer` is integrated into the SOFA framework to interact with user inputs and perform topological changes based on those interactions. It requires a context that includes access to topology modifiers, mechanical objects, and collision models to execute its operations successfully.
- maths
- The `InciseAlongPathPerformer` is primarily a user interaction-driven component designed to perform topological cuts or incisions along specified paths within the SOFA simulation framework. It operates by handling user-defined points and performing modifications based on these inputs. Here is its detailed mathematical and physical description: ### Governing Equations / Operators - **Incision Path Definition**: The component does not directly contribute to the mass matrix $M$, stiffness matrix $K$, internal force $f_{int}$, or residual $R$. Instead, it manages user-defined paths for incisions. - **Topological Modifications**: It interacts with the simulation's topology by removing elements from the mesh. This involves manipulating the mesh connectivity rather than directly solving PDEs or variational problems associated with FEM. ### Constitutive / Kinematic Laws - The component does not define any constitutive laws (e.g., strain measures, stress tensors, hyperelastic potentials). It is focused on topological changes rather than material behavior. ### Role in the Global FEM Pipeline - **Assembly**: This component does not directly participate in the assembly of global mass and force matrices. Instead, it manages user inputs to define incision paths. - **Time Integration / Nonlinear Solve / Linear Solve**: The `InciseAlongPathPerformer` operates outside these stages. Its primary function is to modify the topology based on user interactions, which can indirectly affect subsequent simulation steps by altering the mesh connectivity. - **Constraint Handling and Mapping**: While it does not directly handle constraints in the traditional FEM sense (e.g., enforcing boundary conditions), it ensures that topological changes are consistent with the overall model's integrity. This involves maintaining the coherence of collision models and mechanical objects within the simulation context. ### Numerical Methods / Discretization Choices - **Incremental Incision**: In incremental mode (`currentMethod == 0`), each user click defines a new point along which incisions are made. The component updates topological elements between successive points, removing triangles or other mesh elements as defined by the user. - **Complete Incision**: When freezing the performer (`m_freezePerformer == true`), it completes any open cuts from the initial incision point to the last selected body's collision element. This ensures consistency with the simulation state, even if the environment has moved due to forces like gravity. ### Variational / Lagrangian Mechanics Framework - The `InciseAlongPathPerformer` does not directly contribute to the variational formulation or Lagrangian mechanics within SOFA. Instead, it operates at a higher level by manipulating the simulation's topology based on user inputs. This indirectly affects the overall mechanical behavior of deformable objects by altering their connectivity and shape. ### Summary The `InciseAlongPathPerformer` is an interaction component designed to handle topological changes in SOFA simulations based on user-defined incision paths. It manages these changes without directly influencing the underlying variational or FEM components, focusing instead on ensuring consistent and interactive topological modifications.
{
"name": "InciseAlongPathPerformer",
"main": {
"name": "InciseAlongPathPerformer",
"namespace": "sofa::gui::component::performer",
"module": "Sofa.GUI.Component",
"include": "sofa/gui/component/performer/InciseAlongPathPerformer.h",
"doc": "",
"inherits": [
"InteractionPerformer"
],
"templates": [],
"data_fields": [],
"links": [],
"methods": [
{
"name": "start",
"return_type": "void",
"params": [],
"is_virtual": true,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "execute",
"return_type": "void",
"params": [],
"is_virtual": true,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "draw",
"return_type": "void",
"params": [
{
"name": "vparams",
"type": "const core::visual::VisualParams *"
}
],
"is_virtual": true,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "getFirstIncisionBodyPicked",
"return_type": "BodyPicked &",
"params": [],
"is_virtual": false,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "getLastBodyPicked",
"return_type": "BodyPicked &",
"params": [],
"is_virtual": false,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "setPerformerFreeze",
"return_type": "void",
"params": [],
"is_virtual": true,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "PerformCompleteIncision",
"return_type": "void",
"params": [],
"is_virtual": false,
"is_pure_virtual": false,
"is_static": false,
"access": "protected"
}
]
},
"desc": {
"description": "The `InciseAlongPathPerformer` is a component designed to perform incisions (topological cuts) along a path defined by user interactions in a simulation environment, such as within the SOFA framework. This component primarily handles two modes of operation for making incisions: incrementally from click-to-click and completing an entire cut when freezing the performer.\n\n### Key Functionalities:\n- **Incremental Incision:** In this mode (`currentMethod == 0`), the user can make a series of clicks to define points along which incisions are made. Each click updates the current body's collision element indices and performs topological modifications accordingly.\n- **Freeze Mode:** When the performer is frozen (`m_freezePerformer == true`), it can complete an open cut (if `fullcut == true`). The component ensures that the initial point of incision remains consistent even if the simulation environment has moved.\n\n### Core Methods:\n- **execute():** This method performs the core logic for handling both incremental and freezing modes. It checks for different conditions based on user interactions to determine how and where to make topological modifications.\n- **setPerformerFreeze():** Sets the performer into freeze mode, which triggers the completion of any open cuts if they are marked as needing a full cut (`fullcut == true`).\n- **PerformCompleteIncision():** This method ensures that an incision is completed from the initial point to the current body's collision element. It handles finding the correct triangle and point for completing the cut.\n- **draw():** Renders the path along which the incisions are made, providing visual feedback of the defined incision points and their connections in the simulation environment.\n\n### Component Usage:\nThe `InciseAlongPathPerformer` is integrated into the SOFA framework to interact with user inputs and perform topological changes based on those interactions. It requires a context that includes access to topology modifiers, mechanical objects, and collision models to execute its operations successfully."
},
"maths": {
"maths": "The `InciseAlongPathPerformer` is primarily a user interaction-driven component designed to perform topological cuts or incisions along specified paths within the SOFA simulation framework. It operates by handling user-defined points and performing modifications based on these inputs. Here is its detailed mathematical and physical description:\n\n### Governing Equations / Operators\n- **Incision Path Definition**: The component does not directly contribute to the mass matrix $M$, stiffness matrix $K$, internal force $f_{int}$, or residual $R$. Instead, it manages user-defined paths for incisions.\n- **Topological Modifications**: It interacts with the simulation's topology by removing elements from the mesh. This involves manipulating the mesh connectivity rather than directly solving PDEs or variational problems associated with FEM.\n\n### Constitutive / Kinematic Laws\n- The component does not define any constitutive laws (e.g., strain measures, stress tensors, hyperelastic potentials). It is focused on topological changes rather than material behavior.\n\n### Role in the Global FEM Pipeline\n- **Assembly**: This component does not directly participate in the assembly of global mass and force matrices. Instead, it manages user inputs to define incision paths.\n- **Time Integration / Nonlinear Solve / Linear Solve**: The `InciseAlongPathPerformer` operates outside these stages. Its primary function is to modify the topology based on user interactions, which can indirectly affect subsequent simulation steps by altering the mesh connectivity.\n- **Constraint Handling and Mapping**: While it does not directly handle constraints in the traditional FEM sense (e.g., enforcing boundary conditions), it ensures that topological changes are consistent with the overall model's integrity. This involves maintaining the coherence of collision models and mechanical objects within the simulation context.\n\n### Numerical Methods / Discretization Choices\n- **Incremental Incision**: In incremental mode (`currentMethod == 0`), each user click defines a new point along which incisions are made. The component updates topological elements between successive points, removing triangles or other mesh elements as defined by the user.\n- **Complete Incision**: When freezing the performer (`m_freezePerformer == true`), it completes any open cuts from the initial incision point to the last selected body's collision element. This ensures consistency with the simulation state, even if the environment has moved due to forces like gravity.\n\n### Variational / Lagrangian Mechanics Framework\n- The `InciseAlongPathPerformer` does not directly contribute to the variational formulation or Lagrangian mechanics within SOFA. Instead, it operates at a higher level by manipulating the simulation's topology based on user inputs. This indirectly affects the overall mechanical behavior of deformable objects by altering their connectivity and shape.\n\n### Summary\nThe `InciseAlongPathPerformer` is an interaction component designed to handle topological changes in SOFA simulations based on user-defined incision paths. It manages these changes without directly influencing the underlying variational or FEM components, focusing instead on ensuring consistent and interactive topological modifications."
},
"summary": {
"abstract": "The `InciseAlongPathPerformer` manages topological cuts along user-defined paths in SOFA simulations, handling both incremental incisions and complete cuts when the performer is frozen.",
"sheet": "# InciseAlongPathPerformer\n\n## Overview\nThe `InciseAlongPathPerformer` is a component designed to perform topological cuts (incisions) along paths defined by user interactions within the SOFA simulation framework. It inherits from `InteractionPerformer` and manages two modes of operation: incremental incision and complete cut when frozen.\n\n## Parameters and Data\nThe `InciseAlongPathPerformer` does not expose any significant data fields or parameters through its API, as it primarily relies on user interactions to define the paths for incisions. Its functionality is driven by method calls rather than configurable settings.\n\n## Dependencies and Connections\nThis component typically requires access to topology modifiers, mechanical objects, and collision models within the SOFA scene graph to execute its operations successfully. It interacts with these components to perform topological modifications based on user-defined paths.\n"
}
}