FreeCAD

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

23
#include "PreCompiled.h"
24

25
#include "GeometryBoolExtensionPy.h"
26
#include "GeometryBoolExtensionPy.cpp"
27

28

29
using namespace Part;
30

31
// returns a string which represents the object e.g. when printed in python
32
std::string GeometryBoolExtensionPy::representation() const
33
{
34
    std::stringstream str;
35
    bool val = getGeometryBoolExtensionPtr()->getValue();
36
    str << "<GeometryBoolExtension (" ;
37

38
    if(!getGeometryBoolExtensionPtr()->getName().empty())
39
        str << "\'" << getGeometryBoolExtensionPtr()->getName() << "\', ";
40

41
    str << (val?"True":"False") << ") >";
42

43

44
    return str.str();
45
}
46

47
PyObject *GeometryBoolExtensionPy::PyMake(struct _typeobject *, PyObject *, PyObject *)  // Python wrapper
48
{
49
    // create a new instance of the python object and the Twin object
50
    return new GeometryBoolExtensionPy(new GeometryBoolExtension);
51
}
52

53
// constructor method
54
int GeometryBoolExtensionPy::PyInit(PyObject* args, PyObject* /*kwd*/)
55
{
56

57
    if (PyArg_ParseTuple(args, "")) {
58
        // default extension
59
        return 0;
60
    }
61

62
    PyErr_Clear();
63
    PyObject* val;
64
    if (PyArg_ParseTuple(args, "O!", &PyBool_Type, &val)) {
65
        this->getGeometryBoolExtensionPtr()->setValue(Base::asBoolean(val));
66
        return 0;
67
    }
68

69
    PyErr_Clear();
70
    char * pystr;
71
    if (PyArg_ParseTuple(args, "O!s", &PyBool_Type, &val, &pystr)) {
72
        this->getGeometryBoolExtensionPtr()->setValue(Base::asBoolean(val));
73
        this->getGeometryBoolExtensionPtr()->setName(pystr);
74
        return 0;
75
    }
76

77
    PyErr_SetString(PyExc_TypeError, "GeometryBoolExtension constructor accepts:\n"
78
    "-- empty parameter list\n"
79
    "-- Boolean\n"
80
    "-- Boolean, string\n");
81
    return -1;
82
}
83

84
Py::Boolean GeometryBoolExtensionPy::getValue() const
85
{
86
    return {this->getGeometryBoolExtensionPtr()->getValue()};
87
}
88

89
void GeometryBoolExtensionPy::setValue(Py::Boolean value)
90
{
91
    this->getGeometryBoolExtensionPtr()->setValue(value);
92
}
93

94
PyObject *GeometryBoolExtensionPy::getCustomAttributes(const char* /*attr*/) const
95
{
96
    return nullptr;
97
}
98

99
int GeometryBoolExtensionPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/)
100
{
101
    return 0;
102
}
103

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

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

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

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