CSG JS CPP Library Polygon Simplification

The CSGJS-CPP is a C++ port of the constructive solid geometry javascript library, available here: [url removed, login to view]

I require a few functions to be added to this library:

1) A function to accept non-triangular faces.

2) A function to merge coplanar adjacent faces.

3) A function to export a list of faces (some non-triangular).

All functions must work robustly with the current CSGJS-CPP library.

The above requirements, in more detail:

1) A function to allow non-triangular (possibly concave) polygons to be operated upon. Currently it only accepts triangular faces, and it can process convex polygons as well, but doesn't have a suitable function exported to accept them. It would be acceptable to break concave polygons into a number of convex polygons.

The function prototype will be:

csgjs_csgnode *createShape(int numFaces, int numVerticesPerFace[], double vertexTriples[][3]);

2) A function to merge adjacent coplanar faces into a single face, which would then be split into convex polygons, as required. Currently CSGJS generates many odd triangular faces; these need to be merged into fewer faces, in the CSGJS BSP (binary space partition) structure.

The function prototype will be:

csgjs_csgnode *mergeCoplanarFaces(csgjs_csgnode *shape);

3) A function to convert from the CSGJS BSP shape into a list of faces. Faces will be non-triangular where possible.

The function prototype will be:

vector<vector<csgjs_vertex> > getShape(csgjs_csgnode *shape);

Beceriler: 3B Tasarım, Algoritma, C Programlama, C++ Programlama

Daha fazlasını gör: csg cpp, csgjs port, csgjs cpp, vector vector int, vector library, vector int int, vector int, vector in geometry, vector in cpp, vector geometry, vector cpp, vector cplusplus, vector and geometry, programming with cpp, programming vector, programming library, library vector, library prototype, library programming, geometry vector, geometry convex, geometry 2, c vector library, c programming break, cpp vector

İşveren Hakkında:
( 0 değerlendirme ) Sunnybank, Australia

Proje NO: #6516112

Bu iş için 1 freelancer ortalamada $200 teklif veriyor


I certainly can do that but due to everyday workload I ask for 7 days, including tests and documentation.

in %bids___i_period_sub_35% gün içinde200%project_currencyDetails_sign_sub_37% %project_currencyDetails_code_sub_38%
(2 Değerlendirme)