CollisionDetector.ViewProviderCollisionDetectorProxy Class Reference

Proxy class for Gui.ViewProviderDocumentObject CollisionDetector.ViewObject. More...

Inheritance diagram for CollisionDetector.ViewProviderCollisionDetectorProxy:

Public Member Functions

def __init__ (self, vp)
 Initialization method for ViewProviderCollisionDetectorProxy. More...
 
def onDelete (self, vp, subelements)
 Method called when CollisionDetector is about to be deleted. More...
 
def getIcon (self)
 Method used to get a path to an icon which will appear in the tree view. More...
 
def setProperties (self, vp)
 Method to hide properties and attach CollisionDetectorProxy. More...
 
def doubleClicked (self, vp)
 Method called when CollisionDetector is double-clicked in the Tree View. More...
 
def setupContextMenu (self, vp, menu)
 Method editing a context menu for right click on a CollisionDetector. More...
 
def __getstate__ (self)
 Necessary method to avoid errors when trying to save unserializable objects. More...
 
def __setstate__ (self, state)
 Necessary method to avoid errors when trying to restore unserializable objects. More...
 
def claimChildren (self)
 Method necessary for maintaining a tree structure. More...
 
def canDropObject (self, obj)
 Method deciding which objects can be added to a CollisionDetector group. More...
 

Public Attributes

 fp
 A CollisionDetector object. More...
 

Detailed Description

Proxy class for Gui.ViewProviderDocumentObject CollisionDetector.ViewObject.

A ViewProviderCollisionDetectorProxy instance provides a CollisionDetector's icon, double-click response and context menu with "Check collisions" and "Reset collision display".

To connect this Proxy object to a Gui.ViewProviderDocumentObject CollisionDetector.ViewObject do:

a = FreeCAD.ActiveDocument.addObject("App::DocumentObjectGroupPython",
"CollisionDetector")
ViewProviderCollisionDetectorProxy(a.ViewObject)

Definition at line 782 of file CollisionDetector.py.

Constructor & Destructor Documentation

◆ __init__()

def CollisionDetector.ViewProviderCollisionDetectorProxy.__init__ (   self,
  vp 
)

Initialization method for ViewProviderCollisionDetectorProxy.

A class instance is created and made a Proxy for a generic Gui.ViewProviderDocumentObject CollisionDetector.ViewObject. During initialization number of properties are specified and preset.

Parameters
vpA barebone CollisionDetector.ViewObject.

Definition at line 797 of file CollisionDetector.py.

797  def __init__(self, vp):
798  vp.Proxy = self
799  self.setProperties(vp)
800 

Member Function Documentation

◆ __getstate__()

def CollisionDetector.ViewProviderCollisionDetectorProxy.__getstate__ (   self)

Necessary method to avoid errors when trying to save unserializable objects.

This method is used by JSON to serialize unserializable objects during autosave. Without this an Error would rise when JSON would try to do that itself.

We need this for unserializable fp attribute, but we don't serialize it, because it's enough to reset it when object is restored.

Returns
None, because we don't serialize anything.

Definition at line 893 of file CollisionDetector.py.

893  def __getstate__(self):
894  return None
895 

◆ __setstate__()

def CollisionDetector.ViewProviderCollisionDetectorProxy.__setstate__ (   self,
  state 
)

Necessary method to avoid errors when trying to restore unserializable objects.

This method is used during a document restoration. We need this for unserializable fp attribute, but we do not restore it, because it's enough to reset it.

Returns
None, because we don't restore anything.

Definition at line 906 of file CollisionDetector.py.

906  def __setstate__(self, state):
907  return None
908 

◆ canDropObject()

def CollisionDetector.ViewProviderCollisionDetectorProxy.canDropObject (   self,
  obj 
)

Method deciding which objects can be added to a CollisionDetector group.

Returns always False so that no foreign objects are added.

Parameters
objAn object to be added inside the group.
Returns
False to signal any obj can't be added to a CollisionDetector group.

Definition at line 932 of file CollisionDetector.py.

932  def canDropObject(self, obj):
933  # Don't accept any objects
934  return False
935 
936 

◆ claimChildren()

def CollisionDetector.ViewProviderCollisionDetectorProxy.claimChildren (   self)

Method necessary for maintaining a tree structure.

Returns
Group A list of objects which are grouped by CollisionDetector.

Definition at line 915 of file CollisionDetector.py.

915  def claimChildren(self):
916  if hasattr(self, "fp"):
917  if self.fp:
918  return self.fp.Group
919  return []
920 

◆ doubleClicked()

def CollisionDetector.ViewProviderCollisionDetectorProxy.doubleClicked (   self,
  vp 
)

Method called when CollisionDetector is double-clicked in the Tree View.

It tries to check collisions.

Parameters
vpA double-clicked CollisionDetector.ViewObject.
Returns
True to specify that it was implemented and executed.

Definition at line 854 of file CollisionDetector.py.

854  def doubleClicked(self, vp):
855  # pass do something
856  try:
857  vp.Object.Proxy.checkCollisions()
858  finally:
859  return True
860 

◆ getIcon()

def CollisionDetector.ViewProviderCollisionDetectorProxy.getIcon (   self)

Method used to get a path to an icon which will appear in the tree view.

Returns
A path to the icon.

Definition at line 823 of file CollisionDetector.py.

823  def getIcon(self):
824  return path.join(PATH_TO_ICONS, "CollisionDetector.png")
825 

◆ onDelete()

def CollisionDetector.ViewProviderCollisionDetectorProxy.onDelete (   self,
  vp,
  subelements 
)

Method called when CollisionDetector is about to be deleted.

This method is used to return observed objects to their original style.

Parameters
vpA Gui.ViewProviderDocumentObject CollisionDEtector.ViewObject.
subelementsAn unused argument from C++ binding.
Returns
True to specify that it was implemented and executed.

Definition at line 813 of file CollisionDetector.py.

813  def onDelete(self, vp, subelements):
814  vp.Object.Proxy.reset()
815  return True
816 

◆ setProperties()

def CollisionDetector.ViewProviderCollisionDetectorProxy.setProperties (   self,
  vp 
)

Method to hide properties and attach CollisionDetectorProxy.

This method is called during initialization or document restoration. All unused unnecessary view properties are hidden.

Parameters
vpA Gui.ViewProviderDocumentObject CollisionDetector.ViewObject.

Definition at line 835 of file CollisionDetector.py.

835  def setProperties(self, vp):
836  # Hide unnecessary view properties
837  vp.setEditorMode("DisplayMode", 2)
838  vp.setEditorMode("Visibility", 2)
839 
840  # Add feature python as it's necessary to claimChildren
841  self.fp = vp.Object
842 

◆ setupContextMenu()

def CollisionDetector.ViewProviderCollisionDetectorProxy.setupContextMenu (   self,
  vp,
  menu 
)

Method editing a context menu for right click on a CollisionDetector.

The Transform and Set colors... items are removed from the context menu shown upon right click on CollisionDetector in the Tree View. The option to Check collisions, or Reset collision display is added instead.

Parameters
vpA right-clicked CollisionDetector.ViewObject.
menuA Qt's QMenu to be edited.

Definition at line 872 of file CollisionDetector.py.

872  def setupContextMenu(self, vp, menu):
873  menu.clear()
874  action = menu.addAction("Check collisions")
875  action.triggered.connect(
876  vp.Object.Proxy.checkCollisions)
877  action = menu.addAction("Reset collision display")
878  action.triggered.connect(vp.Object.Proxy.reset)
879 

Member Data Documentation

◆ fp

CollisionDetector.ViewProviderCollisionDetectorProxy.fp

A CollisionDetector object.

Definition at line 841 of file CollisionDetector.py.


The documentation for this class was generated from the following file: