Files
create/src/Gui/LinkViewPy.xml
Zheng, Lei ebf321fc47 Implementation of Link
This patch includes the actual implementation of Link, which is
implemented as an extension named LinkBaseExtension in App namespace,
and a full view provider ViewProviderLink in Gui. The reason of not
using ViewProviderExtension is because it need full control when
display, not just extending existing functionalities.

Please see [here](https://git.io/fjPue) for more details of the
implementation.

This patch also includes a set of link manipulation commands, and a
task panel for overriding geometry element colors.
2019-08-17 15:08:33 +02:00

166 lines
6.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
<PythonExport
Father="BaseClassPy"
Name="LinkViewPy"
Twin="LinkView"
TwinPointer="LinkView"
Include="Gui/ViewProviderLink.h"
Namespace="Gui"
FatherInclude="Base/BaseClass.h"
FatherNamespace="Base"
Constructor="true"
Delete="true">
<Documentation>
<Author Licence="LGPL" Name="Zheng, Lei" EMail="realthunder.dev@gmail.com" />
<UserDocu>Helper class to link to a view object</UserDocu>
</Documentation>
<Methode Name="reset">
<Documentation>
<UserDocu>Reset the link view and clear the links</UserDocu>
</Documentation>
</Methode>
<Methode Name="setMaterial">
<Documentation>
<UserDocu>
setMaterial(Material): set the override material of the entire linked object
setMaterial([Material,...]): set the materials for the elements of the link
array/group.
setMaterial({Int:Material,...}): set the material for the elements of the
link array/group by index.
If material is None, then the material is unset. If the material of an element
is unset, it defaults to the override material of the linked object, if there
is one
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setType">
<Documentation>
<UserDocu>
setType(type, sublink=True): set the link type.
type=0: override transformation and visibility
type=1: override visibility
type=2: no override
type=-1: sub-object link with override visibility
type=-2: sub-object link with override transformation and visibility
sublink: auto delegate to the sub-object references in the link, if there is
one and only one.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setTransform">
<Documentation>
<UserDocu>
setTransform(matrix): set transformation of the linked object
setTransform([matrix,...]): set transformation for the elements of the link
array/group
setTransform({index:matrix,...}): set transformation for elements of the link
array/group by index
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setChildren">
<Documentation>
<UserDocu>
setChildren([obj...],vis=[],type=0)
Group a list of children objects. Note, this mode of operation is incompatible
with link array. Calling this function will deactivate link array. And calling
setSize() will reset all linked children.
vis: initial visibility status of the children
type: children linking type,
0: override transformation and visibility,
1: override visibility,
2: override none.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="setLink">
<Documentation>
<UserDocu>
setLink(object): Set the link
setLink(object, subname): Set the link with a sub-object reference
setLink(object, [subname,...]): Set the link with a list of sub object references
object: The linked document object or its view object
subname: a string or tuple/list of strings sub-name references to sub object
or sub elements (e.g. Face1, Edge2) belonging to the linked object.
The sub-name must end with a '.' if it is referencing an sub-object,
or else it is considered a sub-element reference.
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getDetailPath">
<Documentation>
<UserDocu>
getDetailPath(element): get the 3d path an detail of an element.
Return a tuple(path,detail) for the coin3D SoPath and SoDetail of the element
</UserDocu>
</Documentation>
</Methode>
<Methode Name="getElementPicked">
<Documentation>
<UserDocu>getElementPicked(pickPoint): get the element under a 3d pick point. </UserDocu>
</Documentation>
</Methode>
<Methode Name="getBoundBox">
<Documentation>
<UserDocu>getBoundBox(vobj=None): get the bounding box. </UserDocu>
</Documentation>
</Methode>
<Attribute Name="LinkedView" ReadOnly="true">
<Documentation>
<UserDocu>The linked view object</UserDocu>
</Documentation>
<Parameter Name="LinkedView" Type="Object" />
</Attribute>
<Attribute Name="SubNames" ReadOnly="true">
<Documentation>
<UserDocu>The sub-object reference of the link</UserDocu>
</Documentation>
<Parameter Name="SubNames" Type="Object" />
</Attribute>
<Attribute Name="RootNode" ReadOnly="true">
<Documentation>
<UserDocu>A pivy node holding the cloned representation of the linked view object</UserDocu>
</Documentation>
<Parameter Name="RootNode" Type="Object" />
</Attribute>
<Attribute Name="Owner">
<Documentation>
<UserDocu>The owner view object of this link handle</UserDocu>
</Documentation>
<Parameter Name="Owner" Type="Object" />
</Attribute>
<Attribute Name="Visibilities">
<Documentation>
<UserDocu>Get/set the child element visibility</UserDocu>
</Documentation>
<Parameter Name="Visibilities" Type="Object" />
</Attribute>
<Attribute Name="Count">
<Documentation>
<UserDocu>Set the element size to create an array of linked object</UserDocu>
</Documentation>
<Parameter Name="Count" Type="Int" />
</Attribute>
<Methode Name="getChildren" Const="true">
<Documentation>
<UserDocu>Get children view objects</UserDocu>
</Documentation>
</Methode>
</PythonExport>
</GenerateModel>