10C Inc 3 + 4: I/O and text — the app's whole OCP surface is bound
138/138 symbols across 53 modules. New: IFSelect, Interface, XSControl, IGESData, STEPControl, IGESControl, RWStl, Graphic3d, NCollection, StdPrs. **The full app suite passes against this wheel: 1797 passed, 1 skipped — the same result as the stock wheel**, run from the parity venv. Getting there needed six methods that no static analysis could have found: `inventory --check` only sees symbols reached through an import, so a method called on an instance is invisible to it. The suite found them in one pass, and one of them (gp_Vec.Reverse, which every outward-normal probe calls) accounted for 311 of the 255 failing tests on its own. The others: gp_Trsf.SetMirror over a plane and a point, Geom_Surface.D0, BRep_Builder.MakeFace from a triangulation, MakePipeShell.SetMode with a fixed binormal, and MakeFace from a surface plus tolerance. Open question **S5 is settled: no**. The wheel does not need OCCT's share/ resources. test_inc3_io.py asserts no CSF_* variable is set and then round-trips STEP and IGES, reading the declared units back off both — which is exactly the resource-less container the question was about. The XSTEP readers keep the GIL, amending the blanket "file readers and writers" line in design.md's GIL policy. STEP and IGES traffic in process-global Interface_Static state, the IGES reader is documented as not thread-safe, and the app already serialises imports behind a lock — so holding it costs nothing and removes a class of question. RWStl, which touches no global state, releases. XSControl_Reader and IGESData are registered although the app imports neither: they are the reader base both concrete readers inherit their transfer surface from, and the model-to-global-section chain the IGES unit probe walks.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
OCP.Graphic3d — text alignment.
|
||||
|
||||
Only the two alignment enums, which the text-emboss feature passes to the
|
||||
BRep text builder. Nothing else in Graphic3d is a modelling concept, and
|
||||
the app draws nothing through OCCT.
|
||||
*/
|
||||
|
||||
#include "../common/occt_module.h"
|
||||
|
||||
#include <Graphic3d_HorizontalTextAlignment.hxx>
|
||||
#include <Graphic3d_VerticalTextAlignment.hxx>
|
||||
|
||||
void register_Graphic3d(nb::module_ &root) {
|
||||
nb::module_ m = ocp_submodule(root, "Graphic3d");
|
||||
|
||||
nb::enum_<Graphic3d_HorizontalTextAlignment>(
|
||||
m, "Graphic3d_HorizontalTextAlignment", nb::is_arithmetic())
|
||||
.value("Graphic3d_HTA_LEFT", Graphic3d_HTA_LEFT)
|
||||
.value("Graphic3d_HTA_CENTER", Graphic3d_HTA_CENTER)
|
||||
.value("Graphic3d_HTA_RIGHT", Graphic3d_HTA_RIGHT)
|
||||
.export_values();
|
||||
|
||||
nb::enum_<Graphic3d_VerticalTextAlignment>(
|
||||
m, "Graphic3d_VerticalTextAlignment", nb::is_arithmetic())
|
||||
.value("Graphic3d_VTA_BOTTOM", Graphic3d_VTA_BOTTOM)
|
||||
.value("Graphic3d_VTA_CENTER", Graphic3d_VTA_CENTER)
|
||||
.value("Graphic3d_VTA_TOP", Graphic3d_VTA_TOP)
|
||||
.value("Graphic3d_VTA_TOPFIRSTLINE", Graphic3d_VTA_TOPFIRSTLINE)
|
||||
.export_values();
|
||||
}
|
||||
Reference in New Issue
Block a user