.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/fusion.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_fusion.py: Custom fusion example ===================== Creating a new custom fusion type in Anatomist .. GENERATED FROM PYTHON SOURCE LINES 40-118 .. code-block:: default from soma import aims import os import anatomist.direct.api as anatomist a = anatomist.Anatomist() class MyAObjectKrakboumCallback(anatomist.cpp.ObjectMenuCallback): def __init__(self): anatomist.cpp.ObjectMenuCallback.__init__(self) def doit(self, objects): print('MyAObjectKrakboumCallback:', objects) class MyAObject(anatomist.cpp.AObject): _type = anatomist.cpp.AObject.registerObjectType('MyAObject') _menus = None icon = os.path.join(str(a.anatomistSharedPath()), 'icons', 'list_cutmesh.xpm') ot = anatomist.cpp.QObjectTree ot.setObjectTypeName(_type, 'Example of a custom AObject') ot.setObjectTypeIcon(_type, icon) def __init__(self, filename=''): anatomist.cpp.AObject.__init__(self, filename) self.setType(MyAObject._type) self.setReferential(a.centralReferential()) def optionTree(self): # set new option menus on this new object type if MyAObject._menus is None: m = anatomist.cpp.ObjectMenu() krak = MyAObjectKrakboumCallback() m.insertItem(['File'], 'Reload', anatomist.cpp.ObjectActions.fileReloadMenuCallback()) m.insertItem(['Color'], 'Material', anatomist.cpp.ObjectActions.colorMaterialMenuCallback()) m.insertItem(['Rototo', 'pouet'], 'krakboum', krak) MyAObject._menus = m.releaseTree() # avoid deleting the python part of the callback MyAObject._nodelete = [krak] return MyAObject._menus class MyFusion(anatomist.cpp.FusionMethod): def __init__(self): anatomist.cpp.FusionMethod.__init__(self) print("init myfusion") def canFusion(self, objects): print("MyFusion : canFusion") return 120 def fusion(self, objects): print("MyFusion : fusion") return MyAObject() def ID(self): return 'myFusion' def orderingMatters(self): return False # Register MyFusion anatomist.cpp.FusionFactory.registerMethod(MyFusion()) # Load an object obj = a.loadObject('test.mesh') # if __name__ == '__main__' : # import qt # if qt.QApplication.startingUp(): # qt.qApp.exec_loop() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.000 seconds) .. _sphx_glr_download_auto_examples_fusion.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: fusion.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: fusion.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_