FreeCAD

Форк
0
/
AppSurfaceGui.cpp 
92 строки · 3.4 Кб
1
/***************************************************************************
2
 *   Copyright (c) 2014 Nathan Miller <Nathan.A.Mill[at]gmail.com>         *
3
 *   Copyright (c) 2014 Balázs Bámer                                       *
4
 *                                                                         *
5
 *   This file is part of the FreeCAD CAx development system.              *
6
 *                                                                         *
7
 *   This library is free software; you can redistribute it and/or         *
8
 *   modify it under the terms of the GNU Library General Public           *
9
 *   License as published by the Free Software Foundation; either          *
10
 *   version 2 of the License, or (at your option) any later version.      *
11
 *                                                                         *
12
 *   This library  is distributed in the hope that it will be useful,      *
13
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
14
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
15
 *   GNU Library General Public License for more details.                  *
16
 *                                                                         *
17
 *   You should have received a copy of the GNU Library General Public     *
18
 *   License along with this library; see the file COPYING.LIB. If not,    *
19
 *   write to the Free Software Foundation, Inc., 59 Temple Place,         *
20
 *   Suite 330, Boston, MA  02111-1307, USA                                *
21
 *                                                                         *
22
 ***************************************************************************/
23

24
#include "PreCompiled.h"
25

26
#include <Base/Console.h>
27
#include <Base/Interpreter.h>
28
#include <Base/PyObjectBase.h>
29
#include <Gui/Application.h>
30

31
#include "Blending/ViewProviderBlendCurve.h"
32

33
#include "TaskFilling.h"
34
#include "TaskGeomFillSurface.h"
35
#include "TaskSections.h"
36
#include "ViewProviderExtend.h"
37
#include "Workbench.h"
38

39

40
// use a different name to CreateCommand()
41
void CreateSurfaceCommands();
42

43

44
namespace SurfaceGui
45
{
46
class Module: public Py::ExtensionModule<Module>
47
{
48
public:
49
    Module()
50
        : Py::ExtensionModule<Module>("SurfaceGui")
51
    {
52
        initialize("This module is the SurfaceGui module.");  // register with Python
53
    }
54

55
private:
56
};
57

58
PyObject* initModule()
59
{
60
    return Base::Interpreter().addModule(new Module);
61
}
62

63
}  // namespace SurfaceGui
64

65
/* Python entry */
66
PyMOD_INIT_FUNC(SurfaceGui)
67
{
68
    if (!Gui::Application::Instance) {
69
        PyErr_SetString(PyExc_ImportError, "Cannot load Gui module in console application.");
70
        PyMOD_Return(nullptr);
71
    }
72

73
    Base::Interpreter().runString("import Surface");
74
    Base::Interpreter().runString("import PartGui");
75

76
    // clang-format off
77
    // instantiating the commands
78
    CreateSurfaceCommands();
79

80
    SurfaceGui::Workbench::init();
81
    SurfaceGui::ViewProviderGeomFillSurface ::init();
82
    SurfaceGui::ViewProviderFilling         ::init();
83
    SurfaceGui::ViewProviderSections        ::init();
84
    SurfaceGui::ViewProviderExtend          ::init();
85
    SurfaceGui::ViewProviderBlendCurve      ::init();
86
    // SurfaceGui::ViewProviderCut::init();
87
    // clang-format on
88

89
    PyObject* mod = SurfaceGui::initModule();
90
    Base::Console().Log("Loading GUI of Surface module... done\n");
91
    PyMOD_Return(mod);
92
}
93

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.