Commit Graph

126 Commits

Author SHA1 Message Date
Andrew
1eaf8a724e Clean Mod/Part. remove old OCC <7.3 and #if 0 code. 2023-03-26 21:17:18 +02:00
Abdullah Tahiri
ee0c3ad5c1 Console/ILogger: Refactor and extension
=======================================

Refactor:
 - Substitute the use of variadic templates with parameter packs.
 - Use recently incorporated external library "fmt" to handle printf like formating.
 - Extensive cleaning of pragmas and unnecessary forward declarations.
 - Parameter packs and libfmt provide a much stronger type checking now, so
   conversions that are by standard implicit as bool to int need an explicit static_cast
   to avoid compilation warnings.

Extension:
 - Include a notifier field, so that the originator of the message can be provided. E.g. Document#DocumentObject
 - Include a new type of message called CriticalMessage, this message is intended to have
   special behaviour in the future. Namely, it will be used to notify forward compatilibity issues.
   It will be used to substitute the current signal/slot mechanism.
 - Include two new types of messages for user notifications (Notification and TranslatedNotification). This messages
   will be use to convey UI notifications intended for the user (such as non-intrusive message about the usage of a tool). There
   are two versions to mark whether the string provided as a message is already translated or not. When using the console system for
   notifications, these notifications may originate from the App or the Gui. In the former, it is generally the case that the strings
   of messages are not (yet) translated (but they can be marked with QT_TRANSLATE_NOOP). In the latter, often the messages to be provided
   are already translated.

Python support for CriticalMessage, Notification and TranslatedNofification, including shortcuts:

    Crt = FreeCAD.Console.PrintCritical
    Ntf = FreeCAD.Console.PrintNotification
    Tnf = FreeCAD.Console.PrintTranslatedNotification
2023-03-07 16:13:23 +01:00
Uwe
48e9c09426 [skip ci] [Part] TopoShapePyImp.cpp: clang formatting fixes 2022-11-22 03:09:43 +01:00
wmayer
cdb953c462 Part: [skip ci] fix some warnings reported by GH actions 2022-11-19 15:57:54 +01:00
marioalexis
6d74cfa383 Part: Fix endless-loop in TopoShapePy::proximity function 2022-11-19 15:31:13 +01:00
wmayer
1309b86ea5 App: move from float to double for accuracy parameter, add a virtual method to determine a default accuracy 2022-09-15 09:52:14 +02:00
wmayer
ad7375380a Part: modernize C++: replace 'typedef' with 'using' 2022-08-29 19:31:50 +02:00
wmayer
8c298493de Mod: replace std::ifstream/std::ofstream with Base::ifstream/Base::ofstream 2022-08-21 12:46:53 +02:00
berniev
f4ffd15864 Mod: redundant void 2 2022-08-08 10:27:50 +02:00
wmayer
cdaff7f550 Part: fix TopoShape.isInside() for faces 2022-07-22 15:32:30 +02:00
wmayer
b6494085b4 Part: replace PyObject_IsTrue with Base::asBoolean 2022-07-16 13:31:10 +02:00
Uwe
86eb643854 [Part] Arc*: remove unneeded includes
- also sort includes
2022-07-09 14:38:13 +02:00
Uwe
a44d4b9b87 [Part] Topo*: remove unneeded includes
- also sort includes
2022-07-03 17:41:42 +02:00
andrea
c66aadeb60 removed references to OCC<7 2022-06-25 14:29:24 +02:00
marioalexis
eaf01ab0c6 Part: Use PyObject_IsTrue in combination with conditional ternary operator 2022-06-22 19:50:03 -04:00
wmayer
2d5c2f0700 Part: adjust TopoShape::transformGShape() to reduce code duplication of TopoShape::makeGTransform
Revert changes of 4e7efd68d42a68 as otherwise there is no way to handle a failure in client code
2022-04-29 14:57:05 +02:00
Zheng, Lei
8bec44934b Fix mixed line endings 2022-04-26 12:52:55 -05:00
marioalexis
5da2eb947a Part: Add functions to replace indentical code structure in TopoShapePyImp.cpp 2022-04-23 16:40:48 +02:00
marioalexis
fcf9deb2fc Part: Clean up code in TopoShapePyImp.cpp 2022-04-23 16:40:48 +02:00
marioalexis
3d434ec4b7 Part: Fix getElement method in Python TopoShape class 2022-04-15 17:38:17 +02:00
Chris Hennes
2ecc125497 Part: PR6497 move return statement to new line 2022-03-29 12:37:00 -05:00
wmayer
6d2d45ceb7 Part: modernize C++11
* use nullptr
2022-03-23 19:26:14 +01:00
wmayer
e4d1ed8366 Base: rename BaseExceptionFreeCADError to PyExc_FC_GeneralError 2022-03-17 14:45:48 +01:00
wmayer
91e4e468dd Base: move ILogger sub-classes to their own source files in order to reduce including stream classes in client code 2022-03-06 10:13:47 +01:00
wmayer
0c583fb7fa Part: fix typos in make* functions 2022-02-16 12:48:02 +01:00
wmayer
12fe72e66e Part: for vertex, edge, wire use BRepExtrema_DistShapeShape to check whether point is inside 2021-10-23 16:39:28 +02:00
wmayer
6ed0352a4d Part: for faster execution make sewing optional when creating shape from mesh 2021-10-01 19:29:49 +02:00
luz paz
e0ab0382b3 Part: remove py2 code 2021-04-25 11:29:35 +02:00
tomate44
2daf6a03e4 Part: Shape.ReflectLines: add 2D/3D, visibility and EdgeType options 2021-04-18 08:26:26 +02:00
marioalexis
b263c2aa87 Part: Crash when calling SubShapes of empty shape from Python 2021-01-18 19:47:35 +01:00
wmayer
51245f3851 Part: [skip ci] add TopoShape::isInfinite 2020-12-19 16:07:00 +01:00
wmayer
b3cd06afe8 Py: fix memory leaks by incorrect use of PyList_Append 2020-12-13 16:30:04 +01:00
wmayer
93a331c3ba Part: [skip ci] fix crash when trying to scale null shape 2020-10-09 08:31:48 +02:00
wmayer
31197e5cdc Part: add method to return a reversed shape 2020-09-25 15:59:08 +02:00
luz.paz
17ada69518 Part: [skip ci] fix header uniformity
This PR fixes header uniformity across all Part WB files
2019-12-22 00:59:47 +01:00
wmayer
508412ee41 Part: [skip ci] fix two little copy&paste errors 2019-12-17 11:04:13 +01:00
DeepSOIC
1aa635e782 Part: fixup (to make gcc happy) 2019-12-17 10:52:28 +01:00
DeepSOIC
7554c2111c Part: fix memory leak in distToShape
https://forum.freecadweb.org/viewtopic.php?f=10&t=41620
2019-12-17 10:52:20 +01:00
wmayer
df8e09196d set default deflection of 0.01 when exporting shape as STL 2019-11-29 13:46:30 +01:00
asapelkin
ced8100ab9 use emplace_back instead of push_back where justified 2019-11-21 14:48:09 +01:00
Zheng, Lei
8426ebe2ba Fix various Py::Object leak 2019-10-08 17:53:20 +02:00
Zheng, Lei
f028ba42ff Part: changes to Part Module
* Added Part::Feature::getTopoShape/getShape() function that can obtain
  shape from any object with proper implementation of getSubObject(). It
  can even construct compound from group object with proper implementation
  of getSubObjects().

* Modified ViewProviderExt to work on any object, because it now obtain
  the shape using Part::Feature::getShape()

* Modified various Part features to obtain base/tool shapes using
  Part::getShape(), which allows them to be any type of object,
  including Link and groups.

* Modified various Part command to relax type requirement on selected
  objects.

* Add support of link and group to dimension, and add dimension refresh
  command

* Support link and group in simple command command, and add a few more
  copy command variations.

* Add special handling of 'Shape' attribute in PropertyContainerPy and
  use Part::Feature::getShape() to return shape for any object without
  Shape property. This allows many python feature work with any object
  without modification.

* GeometrySurface/CurvePy, add convenience attribute 'Rotation'

* TopoShapePy:

    * Extended support of sub shape attribute, e.g. Compound1, Solid2,
      SubShape3 ('SubShape' is used to access child shape of a compound)

    * makeWires(), new API to sort and return wires given a list of edges.

    * transformed/translated/rotated/scaled(), return a new shape with
      some transformation.

    * findPlane(), find the plane of a planar shape

    * isCoplanar(), check if two shape are coplanar
2019-08-17 15:08:35 +02:00
wmayer
53fc2f3ec9 improve exception handling Shape.distToShape 2019-06-13 21:49:13 +02:00
Abdullah Tahiri
216926233f Part: Make 3rd party libraries into PCH 2019-05-02 07:09:22 +02:00
wmayer
dc1720a7f2 continue PCH on Part module 2019-05-01 16:10:38 +02:00
wmayer
d4c3f9a264 add method to Python interface to get reflect lines of a shape 2019-02-25 10:50:38 +01:00
wmayer
2aee1e8368 fixes 0003771: Memory leak in Part.Face.Surface 2019-01-23 22:38:51 +01:00
wmayer
4f10d2fac9 support face colors when writing in OpenInventor format 2019-01-12 15:06:25 +01:00
wmayer
0e80292c2f prepare for OCCT 7.3.1 2018-12-13 23:10:10 +01:00
wmayer
461884c2ea add missing headers, prepare for OCCT 7.3.1 2018-12-13 23:08:48 +01:00