* if 2nd argument of getActiveObject() is False and the requested object doesn't exist then return (None, None, "") * remove the exact same implementations from View3DInventorPy
148 lines
6.1 KiB
C++
148 lines
6.1 KiB
C++
/***************************************************************************
|
|
* Copyright (c) 2005 Jürgen Riegel <juergen.riegel@web.de> *
|
|
* *
|
|
* This file is part of the FreeCAD CAx development system. *
|
|
* *
|
|
* This library is free software; you can redistribute it and/or *
|
|
* modify it under the terms of the GNU Library General Public *
|
|
* License as published by the Free Software Foundation; either *
|
|
* version 2 of the License, or (at your option) any later version. *
|
|
* *
|
|
* This library is distributed in the hope that it will be useful, *
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
* GNU Library General Public License for more details. *
|
|
* *
|
|
* You should have received a copy of the GNU Library General Public *
|
|
* License along with this library; see the file COPYING.LIB. If not, *
|
|
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
|
* Suite 330, Boston, MA 02111-1307, USA *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#ifndef GUI_VIEW3DPY_H
|
|
#define GUI_VIEW3DPY_H
|
|
|
|
#include "MDIView.h"
|
|
#include "MDIViewPy.h"
|
|
|
|
|
|
class SoEventCallback;
|
|
class SoDragger;
|
|
class QImage;
|
|
|
|
namespace Gui {
|
|
|
|
class View3DInventor;
|
|
|
|
class View3DInventorPy : public Py::PythonExtension<View3DInventorPy>
|
|
{
|
|
public:
|
|
using BaseType = Py::PythonExtension<View3DInventorPy>;
|
|
static void init_type(); // announce properties and methods
|
|
|
|
explicit View3DInventorPy(View3DInventor *vi);
|
|
~View3DInventorPy() override;
|
|
|
|
View3DInventor* getView3DIventorPtr();
|
|
Py::Object repr() override;
|
|
Py::Object getattr(const char *) override;
|
|
int setattr(const char *, const Py::Object &) override;
|
|
Py::Object cast_to_base();
|
|
|
|
Py::Object fitAll(const Py::Tuple&);
|
|
Py::Object boxZoom(const Py::Tuple&, const Py::Dict&);
|
|
Py::Object viewBottom();
|
|
Py::Object viewFront();
|
|
Py::Object viewLeft();
|
|
Py::Object viewRear();
|
|
Py::Object viewRight();
|
|
Py::Object viewTop();
|
|
Py::Object viewIsometric();
|
|
Py::Object viewDimetric();
|
|
Py::Object viewTrimetric();
|
|
Py::Object viewDefaultOrientation(const Py::Tuple&);
|
|
Py::Object viewPosition(const Py::Tuple&);
|
|
Py::Object viewRotateLeft();
|
|
Py::Object viewRotateRight();
|
|
Py::Object zoomIn();
|
|
Py::Object zoomOut();
|
|
Py::Object startAnimating(const Py::Tuple&);
|
|
Py::Object stopAnimating();
|
|
Py::Object setAnimationEnabled(const Py::Tuple&);
|
|
Py::Object isAnimationEnabled();
|
|
Py::Object setPopupMenuEnabled(const Py::Tuple&);
|
|
Py::Object isPopupMenuEnabled();
|
|
Py::Object dump(const Py::Tuple&);
|
|
Py::Object dumpNode(const Py::Tuple&);
|
|
Py::Object setStereoType(const Py::Tuple&);
|
|
Py::Object getStereoType();
|
|
Py::Object listStereoTypes();
|
|
Py::Object saveImage(const Py::Tuple&);
|
|
Py::Object saveVectorGraphic(const Py::Tuple&);
|
|
Py::Object getCamera();
|
|
Py::Object getViewDirection();
|
|
Py::Object getUpDirection();
|
|
Py::Object setViewDirection(const Py::Tuple&);
|
|
Py::Object setCamera(const Py::Tuple&);
|
|
Py::Object setCameraOrientation(const Py::Tuple&);
|
|
Py::Object getCameraOrientation();
|
|
Py::Object getCameraType();
|
|
Py::Object setCameraType(const Py::Tuple&);
|
|
Py::Object getCameraNode();
|
|
Py::Object listCameraTypes();
|
|
Py::Object getCursorPos();
|
|
Py::Object getObjectInfo(const Py::Tuple&);
|
|
Py::Object getObjectsInfo(const Py::Tuple&);
|
|
Py::Object getSize();
|
|
Py::Object getPointOnFocalPlane(const Py::Tuple&);
|
|
Py::Object projectPointToLine(const Py::Tuple&);
|
|
Py::Object getPointOnViewport(const Py::Tuple&);
|
|
Py::Object addEventCallback(const Py::Tuple&);
|
|
Py::Object removeEventCallback(const Py::Tuple&);
|
|
Py::Object setAnnotation(const Py::Tuple&);
|
|
Py::Object removeAnnotation(const Py::Tuple&);
|
|
Py::Object getSceneGraph();
|
|
Py::Object getViewer();
|
|
Py::Object addEventCallbackPivy(const Py::Tuple&);
|
|
Py::Object removeEventCallbackPivy(const Py::Tuple&);
|
|
Py::Object listNavigationTypes();
|
|
Py::Object getNavigationType();
|
|
Py::Object setNavigationType(const Py::Tuple&);
|
|
Py::Object setAxisCross(const Py::Tuple&);
|
|
Py::Object hasAxisCross();
|
|
Py::Object addDraggerCallback(const Py::Tuple&);
|
|
Py::Object removeDraggerCallback(const Py::Tuple&);
|
|
Py::Object getViewProvidersOfType(const Py::Tuple&);
|
|
Py::Object redraw();
|
|
Py::Object setName(const Py::Tuple&);
|
|
Py::Object toggleClippingPlane(const Py::Tuple& args, const Py::Dict &);
|
|
Py::Object hasClippingPlane();
|
|
Py::Object graphicsView();
|
|
Py::Object setCornerCrossVisible(const Py::Tuple& args);
|
|
Py::Object isCornerCrossVisible();
|
|
Py::Object setCornerCrossSize(const Py::Tuple& args);
|
|
Py::Object getCornerCrossSize();
|
|
|
|
private:
|
|
void setDefaultCameraHeight(float);
|
|
static void eventCallback(void * ud, SoEventCallback * n);
|
|
static void eventCallbackPivy(void * ud, SoEventCallback * n);
|
|
static void eventCallbackPivyEx(void * ud, SoEventCallback * n);
|
|
static void draggerCallback(void * ud, SoDragger* dragger);
|
|
|
|
private:
|
|
using method_varargs_handler = PyObject* (*)(PyObject *_self, PyObject *_args);
|
|
static method_varargs_handler pycxx_handler;
|
|
static PyObject *method_varargs_ext_handler(PyObject *_self, PyObject *_args);
|
|
Py::Object getattribute(const char *);
|
|
|
|
private:
|
|
Gui::MDIViewPy base;
|
|
std::list<PyObject*> callbacks;
|
|
};
|
|
|
|
} // namespace Gui
|
|
|
|
#endif //GUI_VIEW3DPY_H
|