Sofa.Core.BasePrefab

class Sofa.Core.BasePrefab

Bases: Node

Base class for prefabs (for more see Sofa.prefab)

class SearchDirection(self: Sofa.Core.BaseContext.SearchDirection, value: int)

Bases: pybind11_object

Members:

SearchUp

Local

SearchDown

SearchRoot

SearchParents

property name
add(self: Sofa.Core.Node, arg0: object, **kwargs) object

Add an prefab,

Example

def Cube(parentNodes, name="Cube"):
    cube = parentNode.addChild(name)
    cube.addObject("MechanicalObject")
    return cube

node.add(Cube, name="MyCube"")
addChild(*args, **kwargs)

Overloaded function.

  1. addChild(self: Sofa.Core.Node, arg0: str, **kwargs) -> object

    Add a new node as a child

    param name:

    name of the child node to be added

    type name:

    str

    param kwargs:

    Extra parameters passed to the created Sofa.Node

    type kwargs:

    dict

    rtype:

    the created :class: Sofa.Simulation.Node

  2. addChild(self: Sofa.Core.Node, arg0: Sofa.Core.Node) -> Sofa.Core.Node

    Add an existing node as child

    param node:

    the node to be added

    type node:
    class:

    Sofa.Simulation.Node

    rtype:

    the added :class: Sofa.Simulation.Node

addData(*args, **kwargs)

Overloaded function.

  1. addData(self: object, name: str, value: object = None, default: object = None, help: str = ‘’, group: str = ‘’, type: str = ‘’) -> Sofa.Core.Data

    Create a data field, then adds it to the base

    Note that this method should only be called if the field was not initialized with the initData method

    param self:

    the base itself

    param name:

    the name of the data to be added

    param value:

    the value from which the data can be created

    param help:

    help message that describes the data to be created

    param group:

    the group the data belongs to

    param type:

    the type of the data

    type self:

    object

    type name:

    string

    type value:

    object

    type help:

    string

    type group:

    string

    type type:

    string

  2. addData(self: Sofa.Core.Base, arg0: object) -> Sofa.Core.Data

    Add a data field

    param self:

    the base itself

    param d:

    the data to be added

    type self:

    Base*

    type d:

    object

    This method should only be called if the field was not initialized with the initData method

Create a Link to a SOFA component and adds it to the base

Parameters:
  • self (object) – the base itself

  • name (string) – the name of the link to be added

  • value (object) – the value from which the data can be created (either a pathname or a SofaBase)

  • help (string) – help message that describes the link to be created

This method should only be called if the field was not initialized with the initLink method

addObject(*args, **kwargs)

Overloaded function.

  1. addObject(self: Sofa.Core.Node, arg0: str, **kwargs) -> object

    Add an object.

    param component_type:

    the Sofa component’s type name to add

    type component_type:

    str

    param kwargs:

    additional keyword arguments

    type kwargs:

    dict

    rtype:

    the created :class: Sofa.Core.Object

  2. addObject(self: Sofa.Core.Node, arg0: Sofa.Core.Object) -> object

    Add an existing sofa object.

    param component:

    The Sofa component

    type component:
    class:

    Sofa.Core.Object

    rtype:

    the added :class: Sofa.Core.Object

canChangeSleepingState(self: Sofa.Core.BaseContext) bool

Whether the context can change its sleeping state or not

property children

Field interface to acces the children of a node. The returned object is a iteratable featuring the following operations: len, remove_at, __contains__, get_at

Example: >>> n = Sofa.Core.Node(“MyNode”) >>> n.addChild(“child1”) >>> for child in n.children: >>> print(child.name) >>> >>> if “child1” in n.children: >>> print(“Yes”) >>> print(len(n.children))

clearLoggedMessages(self: Sofa.Core.Base) object

Remove all logged messages in the object’s logs

countLoggedMessages(self: Sofa.Core.Base) object

Returns the number of messages in the object’s logs

createChild(self: Sofa.Core.Node, arg0: str, **kwargs) object

Deprecated, see addChild

createObject(self: Sofa.Core.Node, arg0: str, **kwargs) object

Deprecated, see addObject

detachFromGraph(self: Sofa.Core.Node) None

Remove the current node from the graph: depending on the type of Node, it can have one or several parents.

findData(self: Sofa.Core.Base, arg0: str) Sofa.Core.Data

Find a data field given its name

If more than one field is found (due to aliases), only the first is returned.

:param name :type name: string :return: the data field or None

Find a link given its name

Return NULL if not found. If more than one link is found (due to aliases), only the first is returned.

Parameters:

name (string) – the name of the link

Returns:

the link

getAnimate(self: Sofa.Core.BaseContext) bool

Animation flag

getAsACreateObjectParameter(self: Sofa.Core.Node) str

Get the link of the current node :rtype: string

getChild(self: Sofa.Core.Node, arg0: str) object

Get the child of a node.

Parameters:
  • n (Sofa.Simulation.Node)

  • name (string)

Returns:

the child with ‘name’, None otherwise

getClass(self: Sofa.Core.Base) Sofa.Core.BaseClass

Return the class of the object

getClassName(self: Sofa.Core.Base) str

Get the name of the class of the Base.

getData(self: Sofa.Core.Base, arg0: str) object

Get the data field given its name

Parameters:
  • self (Base&)

  • s (string)

Returns:

the first data found of this name

getDataFields(self: Sofa.Core.Base) list

Accessor to the vector containing all the fields of this object :return: A vector containing the data fields

getDefinitionSourceFileName(self: Sofa.Core.Base) str

Returns the name of the file that contains the object definition.

getDefinitionSourceFilePos(self: Sofa.Core.Base) int

Returns the line number where the object is defined.

getDt(self: Sofa.Core.BaseContext) float

Simulation timestep

getForceField(self: Sofa.Core.Node, arg0: int) object

Get the force field of a node, given an index. :param index: index of the force field :type index: unsigned int.

getGravity(self: Sofa.Core.BaseContext) sofa::type::Vec<3u, double>

Gravity in local coordinates

getInstanciationFileName(self: Sofa.Core.Base) str

Returns the line number where the object is instanciatiated.

getInstanciationSourceFilePos(self: Sofa.Core.Base) int

Returns the line number where the object is instanciatiated.

getLinkPath(self: Sofa.Core.Node) str

Get the link of the current node :param node: :type node: Sofa.Simulation.Node*

Accessor to the vector containing all the links of this object

Returns:

A vector containing the links

getLoggedMessagesAsString(self: Sofa.Core.Base) object

Returns a single string with all the messages logged in the internal buffer of a sofa object. Return empty string if there is no messages.

getMass(self: Sofa.Core.Node) object

Get the mass of the node

getMechanicalMapping(self: Sofa.Core.Node) object

Get the mechanical mapping of the node.

getMechanicalState(self: Sofa.Core.Node) object

Get the mechanical state of the node.

getMeshTopology(self: Sofa.Core.BaseContext, SearchDirection: Sofa.Core.BaseContext.SearchDirection = <SearchDirection.SearchUp: -1>) Sofa.Core.BaseMeshTopology

Mesh Topology (unified interface for both static and dynamic topologies)

Mesh Topology (unified interface for both static and dynamic topologies)

getName(self: Sofa.Core.Base) str

Return the name of the entity

Return type:

string

getObject(self: Sofa.Core.Node, arg0: str, **kwargs) object

Get a sofa component hold by a node.

Parameters:

name (string)

Returns:

the component with ‘name’, None otherwise

Note

The extra arguments allowed in the SofaPython (warning=True/False) binding are not supported SofaPython3.

# SofaPython3:
if node.getObject("MyObject") != None:
    pass

if node.hasObject("MyObject"):
    pass

if "MyObject" in node.objects:
    pass
getPathName(self: Sofa.Core.Node) str

Get the path name of the current node :rtype: string

getRoot(self: Sofa.Core.Node) object

Get the root node of the current node. :rtype: Sofa.Simulation.BaseNode*

getRootContext(self: Sofa.Core.BaseContext) Sofa.Core.BaseContext

Get the root context of the graph

getRootPath(self: Sofa.Core.Node) str

Return the path from this node to the root node

getState(self: Sofa.Core.BaseContext) sofa::core::BaseState

Mechanical Degrees-of-Freedom

getTemplateName(self: Sofa.Core.Base) str

Get the name of the template of the Base.

getTime(self: Sofa.Core.BaseContext) float

Simulation time

getTopology(self: Sofa.Core.BaseContext) Sofa.Core.Topology

Topology

hasODESolver(self: Sofa.Core.Node) object

Return true if the node includes an ODE Solver

hasObject(self: Sofa.Core.Node, arg0: str) object

Check if there is a component with provided name.

:param n :param name :type n: Sofa.Simulation.Node :type name: string :return: True if the node has an object with correspdonding name.

init(self: Sofa.Core.Node) None

Initialize the components of this node and all the nodes which depend on it. (beware this is not the python __init__, this is sofa’s init())

Parameters:

self (Sofa.Simulation.Node&) – the node to initialize

Return type:

Sofa.Simulation.Node

isActive(self: Sofa.Core.BaseContext) bool

The Context is active

isInitialized(self: Sofa.Core.Node) bool

Checks if the node has been initialized :return: true if it has been initialized

isSleeping(self: Sofa.Core.BaseContext) bool

Sleeping state of the context

moveChild(self: Sofa.Core.Node, arg0: Sofa.Core.BaseNode, arg1: Sofa.Core.BaseNode) None

Move a node from another node. :param child: the node to be moved :param prevParent: the previous parent of the node to be moved :type child: Sofa.Simulation.Node :type prevParent: Sofa.Simulation.Node

property objects

Field interface to acces the objects of a node. The returned object is a iteratable featuring the following operations: len, remove_at, __contains__, get_at

Example: >>> n = Sofa.Core.Node(“MyNode”) >>> n.addObject(“MechanicalObject”, name=”object1”) >>> n.addObject(“MechanicalObject”, name=”object2”) >>> for object in n.objects: >>> print(object.name) >>> >>> if “object2” in c.objects: >>> print(“Yes”) >>> print(len(n.objects))

property parents

Field interface to acces the parents of a node. The returned object is a iteratable featuring the following operations: len, remove_at, __contains__, get_at

Example: >>> n = Sofa.Core.Node(“parent1”) >>> c = n.addChild(“child1”) >>> for parent in c.parents: >>> print(parent.name) >>> >>> if “parent1” in c.parents: >>> print(“Yes”) >>> print(len(n.parents))

removeChild(*args, **kwargs)

Overloaded function.

  1. removeChild(self: Sofa.Core.Node, arg0: Sofa.Core.Node) -> None

    Remove a child of a node. :param self: the node itself :param n: the child to remove :type self: Sofa.Simulation.Node :type n: Sofa.Simulation.Node Example: >>> node1.removeChild(node2)

  2. removeChild(self: Sofa.Core.Node, arg0: str) -> object

    Remove a child of a node. :param n: the node itself :param name: the name of the child to remove :type n: Sofa.Simulation.Node& :type name: string Example: >>> node1.removeChild(“nameNode2”)

removeObject(self: Sofa.Core.Node, arg0: Sofa.Core.Object) None

Remove an object :param object: the object to be removed :type object: BaseObject

sendEvent(self: Sofa.Core.Node, arg0: object, arg1: str) None

Send an event to other nodes, by creating a PythonScriptEvent and propagating it to the rest of the tree. Only the nodes and objects downstream will receive the message. :param pyUserData: the user data that can be sent :param eventName: the name of the event :type pyUserData: py::object :type eventName: string

setActive(self: Sofa.Core.BaseContext, arg0: bool) None

State of the context

setAnimate(self: Sofa.Core.BaseContext, arg0: bool) None

Animation flag

setChangeSleepingState(self: Sofa.Core.BaseContext, arg0: bool) None

Sleeping state change of the context

setDataValues(self: Sofa.Core.Base, **kwargs) object

Set values for a the given data field, multiple pairs of args are allowed.

setDefinitionSourceFileName(self: Sofa.Core.Base, arg0: str) None

set the name of the file that contains the object definition.

setDefinitionSourceFilePos(self: Sofa.Core.Base, arg0: int) None

Set the line number where the object is defined.

setDt(self: Sofa.Core.BaseContext, arg0: float) None

Simulation timestep

setGravity(self: Sofa.Core.BaseContext, arg0: sofa::type::Vec<3u, double>) None

Gravity in local coordinates

setInstanciationSourceFileName(self: Sofa.Core.Base, arg0: str) None

Set the line number where the object is instanciatiated.

setInstanciationSourceFilePos(self: Sofa.Core.Base, arg0: int) None

Set the line number where the object is instanciatiated.

setName(self: Sofa.Core.Base, arg0: str) None

Set the name of this object

:param n :type n: string

setSleeping(self: Sofa.Core.BaseContext, arg0: bool) None

Sleeping state of the context