Base: start of refactoring of InventorBuilder

This commit is contained in:
wmayer
2022-11-27 16:45:16 +01:00
parent dafe5f11fb
commit f0e22410db
6 changed files with 186 additions and 214 deletions

View File

@@ -1172,15 +1172,15 @@ void MeshObject::trimByPlane(const Base::Vector3f& base, const Base::Vector3f& n
// Apply the inverted mesh placement to the plane because the trimming is done
// on the untransformed mesh data
Base::Vector3f baseL, normalL;
Base::Vector3f basePlane, normalPlane;
Base::Placement meshPlacement = getPlacement();
meshPlacement.invert();
meshPlacement.multVec(base, baseL);
meshPlacement.getRotation().multVec(normal, normalL);
meshPlacement.multVec(base, basePlane);
meshPlacement.getRotation().multVec(normal, normalPlane);
MeshCore::MeshFacetGrid meshGrid(this->_kernel);
trim.CheckFacets(meshGrid, baseL, normalL, trimFacets, removeFacets);
trim.TrimFacets(trimFacets, baseL, normalL, triangle);
trim.CheckFacets(meshGrid, basePlane, normalPlane, trimFacets, removeFacets);
trim.TrimFacets(trimFacets, basePlane, normalPlane, triangle);
if (!removeFacets.empty())
this->deleteFacets(removeFacets);
if (!triangle.empty())

View File

@@ -273,8 +273,8 @@ MeshCore::MeshKernel* MeshAlgos::boolean(MeshCore::MeshKernel* pMesh1,
self_intersects = gts_surface_is_self_intersecting (s3);
if (self_intersects != NULL) {
// if (verbose)
// gts_surface_print_stats (self_intersects, stderr);
// gts_surface_write (self_intersects, stdout);
// gts_surface_print_stats (self_intersects, stderr);
// gts_surface_write (self_intersects, stdout);
gts_object_destroy (GTS_OBJECT (self_intersects));
gts_object_destroy (GTS_OBJECT (s1));
gts_object_destroy (GTS_OBJECT (s2));
@@ -350,7 +350,7 @@ GtsSurface* MeshAlgos::createGTSSurface(MeshCore::MeshKernel* Mesh)
// creating the edges and add the face to the surface
gts_surface_add_face (Surf,
gts_face_new (Surf->face_class,
gts_face_new (Surf->face_class,
new_edge (aVertex[p1],aVertex[p2]),
new_edge (aVertex[p2],aVertex[p3]),
new_edge (aVertex[p3],aVertex[p1])));

View File

@@ -1091,7 +1091,7 @@ void TopoShape::exportFaceSet(double dev, double ca,
builder.addShapeHints((float)ca);
if (supportFaceColors) {
App::Color c = colors[index];
builder.addMaterial(c.r, c.g, c.b, c.a);
builder.addMaterial(Base::ColorRGB{c.r, c.g, c.b}, c.a);
}
builder.beginPoints();
@@ -1133,7 +1133,9 @@ void TopoShape::exportLineSet(std::ostream& str) const
vertices.push_back(Base::convertTo<Base::Vector3f>(p));
});
builder.addLineSet(vertices, 2, 0, 0, 0);
Base::DrawStyle drawStyle;
drawStyle.lineWidth = 2.0F;
builder.addLineSet(vertices, drawStyle, Base::ColorRGB{0, 0, 0});
}
}

View File

@@ -25,6 +25,7 @@
#include "Mod/Points/App/Points.h"
#include <Base/Builder3D.h>
#include <Base/Converter.h>
#include <Base/VectorPy.h>
#include <Base/GeometryPyCXX.h>
#include <boost/math/special_functions/fpclassify.hpp>
@@ -126,7 +127,7 @@ PyObject* PointsPy::writeInventor(PyObject * args)
builder.beginPoints();
PointKernel* kernel = getPointKernelPtr();
for (Points::PointKernel::const_iterator it = kernel->begin(); it != kernel->end(); ++it)
builder.addPoint((float)it->x,(float)it->y,(float)it->z);
builder.addPoint(Base::convertTo<Base::Vector3f>(*it));
builder.endPoints();
builder.addPointSet();
builder.close();