+ implement missing methods of Python API for SelectionObject
This commit is contained in:
parent
f20519d352
commit
a4441f2a41
|
@ -49,9 +49,9 @@ SelectionObject::~SelectionObject()
|
|||
|
||||
const App::DocumentObject * SelectionObject::getObject(void) const
|
||||
{
|
||||
if (DocName != "") {
|
||||
if (!DocName.empty()) {
|
||||
App::Document *doc = App::GetApplication().getDocument(DocName.c_str());
|
||||
if (doc && FeatName != "")
|
||||
if (doc && !FeatName.empty())
|
||||
return doc->getObject(FeatName.c_str());
|
||||
}
|
||||
return 0;
|
||||
|
@ -59,9 +59,9 @@ const App::DocumentObject * SelectionObject::getObject(void) const
|
|||
|
||||
App::DocumentObject * SelectionObject::getObject(void)
|
||||
{
|
||||
if (DocName != "") {
|
||||
if (!DocName.empty()) {
|
||||
App::Document *doc = App::GetApplication().getDocument(DocName.c_str());
|
||||
if (doc && FeatName != "")
|
||||
if (doc && !FeatName.empty())
|
||||
return doc->getObject(FeatName.c_str());
|
||||
}
|
||||
return 0;
|
||||
|
@ -93,9 +93,7 @@ std::string SelectionObject::getAsPropertyLinkSubString(void)const
|
|||
return buf;
|
||||
}
|
||||
|
||||
|
||||
PyObject* SelectionObject::getPyObject()
|
||||
{
|
||||
return new SelectionObjectPy(new SelectionObject(*this));
|
||||
}
|
||||
|
||||
|
|
|
@ -58,8 +58,10 @@ public:
|
|||
inline const char* getDocName(void) const { return DocName.c_str(); }
|
||||
/// get the name of the Document Object of this SelectionObject
|
||||
inline const char* getFeatName(void) const { return FeatName.c_str(); }
|
||||
/// get the Type of the selcted Object
|
||||
/// get the Type of the selected Object
|
||||
inline const char* getTypeName(void) const { return TypeName.c_str(); }
|
||||
/// get the selection points
|
||||
inline const std::vector<Base::Vector3d> getSubPoints(void) const { return SelPoses; }
|
||||
|
||||
/// returns the selected DocumentObject or NULL if the object is already deleted
|
||||
const App::DocumentObject *getObject(void) const;
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<UserDocu>Remove this selection item from the selection. This object becomes invalid.</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<Methode Name="isA">
|
||||
<Methode Name="isObjectTypeOf">
|
||||
<Documentation>
|
||||
<UserDocu>Test for a certain father class.</UserDocu>
|
||||
</Documentation>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<Documentation>
|
||||
<UserDocu>Name of the selected sub-element if any</UserDocu>
|
||||
</Documentation>
|
||||
<Parameter Name="SubElementNames" Type="List" />
|
||||
<Parameter Name="SubElementNames" Type="Tuple" />
|
||||
</Attribute>
|
||||
<Attribute Name="FullName" ReadOnly="true">
|
||||
<Documentation>
|
||||
|
@ -42,7 +42,13 @@
|
|||
</Documentation>
|
||||
<Parameter Name="FullName" Type="String" />
|
||||
</Attribute>
|
||||
<Attribute Name="DocumentName" ReadOnly="true">
|
||||
<Attribute Name="TypeName" ReadOnly="true">
|
||||
<Documentation>
|
||||
<UserDocu>Type name of the selected object</UserDocu>
|
||||
</Documentation>
|
||||
<Parameter Name="TypeName" Type="String" />
|
||||
</Attribute>
|
||||
<Attribute Name="DocumentName" ReadOnly="true">
|
||||
<Documentation>
|
||||
<UserDocu>Name of the document of the selected object</UserDocu>
|
||||
</Documentation>
|
||||
|
@ -64,9 +70,15 @@
|
|||
<Documentation>
|
||||
<UserDocu>Selected sub-element, if any</UserDocu>
|
||||
</Documentation>
|
||||
<Parameter Name="SubObjects" Type="List" />
|
||||
<Parameter Name="SubObjects" Type="Tuple" />
|
||||
</Attribute>
|
||||
<Attribute Name="HasSubObjects" ReadOnly="true">
|
||||
<Attribute Name="SubPoints" ReadOnly="true">
|
||||
<Documentation>
|
||||
<UserDocu>Selection points</UserDocu>
|
||||
</Documentation>
|
||||
<Parameter Name="SubPoints" Type="Tuple" />
|
||||
</Attribute>
|
||||
<Attribute Name="HasSubObjects" ReadOnly="true">
|
||||
<Documentation>
|
||||
<UserDocu>Selected sub-element, if any</UserDocu>
|
||||
</Documentation>
|
||||
|
|
|
@ -22,10 +22,12 @@
|
|||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "Gui/SelectionObject.h"
|
||||
#include "App/Document.h"
|
||||
#include "App/DocumentObject.h"
|
||||
#include "App/Application.h"
|
||||
#include "SelectionObject.h"
|
||||
#include "Selection.h"
|
||||
#include <Base/GeometryPyCXX.h>
|
||||
#include <App/Document.h>
|
||||
#include <App/DocumentObject.h>
|
||||
#include <App/Application.h>
|
||||
|
||||
// inclusion of the generated files (generated out of SelectionObjectPy.xml)
|
||||
#include "SelectionObjectPy.h"
|
||||
|
@ -39,49 +41,56 @@ std::string SelectionObjectPy::representation(void) const
|
|||
return "<SelectionObject>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
PyObject* SelectionObjectPy::remove(PyObject * /*args*/)
|
||||
PyObject* SelectionObjectPy::remove(PyObject * args)
|
||||
{
|
||||
PyErr_SetString(PyExc_NotImplementedError, "Not yet implemented");
|
||||
return 0;
|
||||
if (!PyArg_ParseTuple(args, ""))
|
||||
return 0;
|
||||
Selection().rmvSelection(getSelectionObjectPtr()->getDocName(),
|
||||
getSelectionObjectPtr()->getFeatName());
|
||||
Py_Return;
|
||||
}
|
||||
|
||||
PyObject* SelectionObjectPy::isA(PyObject * /*args*/)
|
||||
PyObject* SelectionObjectPy::isObjectTypeOf(PyObject * args)
|
||||
{
|
||||
PyErr_SetString(PyExc_NotImplementedError, "Not yet implemented");
|
||||
return 0;
|
||||
char* type;
|
||||
if (!PyArg_ParseTuple(args, "s", &type))
|
||||
return 0;
|
||||
Base::Type id = Base::Type::fromName(type);
|
||||
if (id.isBad()) {
|
||||
PyErr_SetString(PyExc_TypeError, "Not a valid type");
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool ok = getSelectionObjectPtr()->isObjectTypeOf(id);
|
||||
|
||||
return Py_BuildValue("O", (ok ? Py_True : Py_False));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Py::String SelectionObjectPy::getObjectName(void) const
|
||||
{
|
||||
return Py::String(getSelectionObjectPtr()->getFeatName());
|
||||
}
|
||||
|
||||
Py::List SelectionObjectPy::getSubElementNames(void) const
|
||||
Py::Tuple SelectionObjectPy::getSubElementNames(void) const
|
||||
{
|
||||
Py::List temp;
|
||||
std::vector<std::string> objs = getSelectionObjectPtr()->getSubNames();
|
||||
|
||||
Py::Tuple temp(objs.size());
|
||||
Py::sequence_index_type index = 0;
|
||||
for(std::vector<std::string>::const_iterator it= objs.begin();it!=objs.end();++it)
|
||||
temp.append(Py::String(*it));
|
||||
temp.setItem(index++, Py::String(*it));
|
||||
|
||||
return temp;
|
||||
}
|
||||
|
||||
Py::String SelectionObjectPy::getFullName(void) const
|
||||
{
|
||||
std::string buf;
|
||||
//buf = getSelectionObjectPtr()->getDocName();
|
||||
//buf += ".";
|
||||
//buf += getSelectionObjectPtr()->getFeatName();
|
||||
//if(getSelectionObjectPtr()->getSubName()){
|
||||
// buf += ".";
|
||||
// buf += getSelectionObjectPtr()->getSubName();
|
||||
//}
|
||||
return Py::String(buf.c_str());
|
||||
return Py::String(getSelectionObjectPtr()->getAsPropertyLinkSubString());
|
||||
}
|
||||
|
||||
Py::String SelectionObjectPy::getTypeName(void) const
|
||||
{
|
||||
return Py::String(getSelectionObjectPtr()->getTypeName());
|
||||
}
|
||||
|
||||
Py::String SelectionObjectPy::getDocumentName(void) const
|
||||
|
@ -99,12 +108,15 @@ Py::Object SelectionObjectPy::getObject(void) const
|
|||
return Py::Object(getSelectionObjectPtr()->getObject()->getPyObject(), true);
|
||||
}
|
||||
|
||||
Py::List SelectionObjectPy::getSubObjects(void) const
|
||||
Py::Tuple SelectionObjectPy::getSubObjects(void) const
|
||||
{
|
||||
Py::List temp;
|
||||
std::vector<PyObject *> objs = getSelectionObjectPtr()->getObject()->getPySubObjects(getSelectionObjectPtr()->getSubNames());
|
||||
|
||||
Py::Tuple temp(objs.size());
|
||||
Py::sequence_index_type index = 0;
|
||||
for(std::vector<PyObject *>::const_iterator it= objs.begin();it!=objs.end();++it)
|
||||
temp.append(Py::Object(*it,true));
|
||||
temp.setItem(index++, Py::asObject(*it));
|
||||
|
||||
return temp;
|
||||
}
|
||||
|
||||
|
@ -113,6 +125,18 @@ Py::Boolean SelectionObjectPy::getHasSubObjects(void) const
|
|||
return Py::Boolean(getSelectionObjectPtr()->hasSubNames());
|
||||
}
|
||||
|
||||
Py::Tuple SelectionObjectPy::getSubPoints(void) const
|
||||
{
|
||||
const std::vector<Base::Vector3d>& points = getSelectionObjectPtr()->getSubPoints();
|
||||
|
||||
Py::Tuple temp(points.size());
|
||||
Py::sequence_index_type index = 0;
|
||||
for(std::vector<Base::Vector3d>::const_iterator it= points.begin();it!=points.end();++it)
|
||||
temp.setItem(index++, Py::Vector(*it));
|
||||
|
||||
return temp;
|
||||
}
|
||||
|
||||
PyObject *SelectionObjectPy::getCustomAttributes(const char* /*attr*/) const
|
||||
{
|
||||
return 0;
|
||||
|
@ -122,5 +146,3 @@ int SelectionObjectPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
#include "propertyeditor/PropertyItem.h"
|
||||
#include "NavigationStyle.h"
|
||||
#include "Flag.h"
|
||||
#include "SelectionObject.h"
|
||||
|
||||
using namespace Gui;
|
||||
using namespace Gui::Inventor;
|
||||
|
@ -140,6 +141,8 @@ void Gui::SoFCDB::init()
|
|||
GLGraphicsItem ::init();
|
||||
GLFlagWindow ::init();
|
||||
|
||||
SelectionObject ::init();
|
||||
|
||||
qRegisterMetaType<Base::Vector3f>("Base::Vector3f");
|
||||
qRegisterMetaType<Base::Vector3d>("Base::Vector3d");
|
||||
qRegisterMetaType<Base::Quantity>("Base::Quantity");
|
||||
|
|
Loading…
Reference in New Issue
Block a user