loadIntermediate
================

.. py:module:: loadIntermediate

.. autoapi-nested-parse::

   Loads an intermediate file into a kdFlex format.



Attributes
----------

.. autoapisummary::

   loadIntermediate.RTOL
   loadIntermediate.ATOL


Classes
-------

.. autoapisummary::

   loadIntermediate.FreeCadExtraInfo


Functions
---------

.. autoapisummary::

   loadIntermediate.freecadToBasicPrefabDS


Module Contents
---------------

.. py:class:: FreeCadExtraInfo(/, **data: Any)

   Bases: :py:obj:`Karana.KUtils.DataStruct.DataStruct`


   Container for extra information pulled from FreeCAD assemblies.

   Only used for debugging and validation.


   .. py:attribute:: total_mass
      :type:  float

      Total mass of assembly (defaults to units of kg).


   .. py:attribute:: total_com_global
      :type:  Karana.Math.Ktyping.Vec3

      Center of mass in global frame of whole assembly (defaults to units of m).


   .. py:attribute:: cms_global
      :type:  dict[str, Karana.Math.Ktyping.Vec3]

      Mapping of body names to their centers of mass in global frame.


.. py:function:: freecadToBasicPrefabDS(in_file: str | pathlib.Path, verbose: bool = False) -> Karana.KUtils.BasicPrefab.BasicPrefabDS[FreeCadExtraInfo]

   Convert a .freecad.yaml file into a Karana BasicPrefabDS.

   :param in_file: input yaml file containing intermediate representation of FreeCAD system.
   :type in_file: str
   :param verbose: Controls verbosity of conversion; defaults to False.
   :type verbose: bool

   :returns: A BasicPrefab DataStruct containing all bodies, joints, and geometries extracted from the intermediate file. Also contains extra info used for validation in the from of FreeCadParams.
   :rtype: BasicPrefabDS


.. py:data:: RTOL
   :value: 1e-08


.. py:data:: ATOL
   :value: 1e-08


