Polygon Crucher SDK - Documentation
Documentation
Loading...
Searching...
No Matches
GeomCompare.h
1#ifndef __GEOM_COMPARE_H__
2#define __GEOM_COMPARE_H__
3
4#pragma once
5
6BEGIN_MOOTOOLS_NAMESPACE
7
8typedef enum MeshCompareMethod
9{
10 MESHCOMPARE_HAUSDORFF_METHOD = 0x01,
11} MeshCompareMethod;
12
13typedef enum CHausdorffFlags
14{
15 HAUSDORFF_NONE = 0X00,
16 HAUSDORFF_VERTEX_SAMPLING = 0X01,
17 HAUSDORFF_EDGE_SAMPLING = 0X02,
18 HAUSDORFF_FACE_SAMPLING = 0X04,
19 HAUSDORFF_EXCLUDE_ISOLATED_VERTEX = 0X08,
20 HAUSDORFF_MONTECARLO_SAMPLING = 0x10, // Sample face using a random sampling
21 HAUSDORFF_SUBDIVISION_SAMPLING = 0x20, // Sample face using barycenter of the face recursively subdivided
22 HAUSDORFF_SIMILAR_SAMPLING = 0x40, // Sample face sampling it uniformely
23 HAUSDORFF_NORMALIZE_ON_BBOX_MIN = 0x80, // Normalize hausdorff on smallest bbox size. This prevents degradation on the smallest direction, which can be important for planar surface (wide ground surface)
24
25 HAUSDORFF_DRAFT_SPEED = 0x10000, // This define the number of target sample. The higher it is, the slower and accurate is the process
26 HAUSDORFF_MEDIUM_SPEED = 0x20000,
27 HAUSDORFF_ACCURATE_SPEED = 0x40000,
28 HAUSDORFF_SPEED = HAUSDORFF_DRAFT_SPEED | HAUSDORFF_MEDIUM_SPEED | HAUSDORFF_ACCURATE_SPEED,
29
30 HAUSDORFF_SINGLE_THREAD = 0x100000, // By default GeomCompare is multithreaded, but in case several GeomCompare are already launched in different thread, this limit the thread overhead
31
32 HAUSDORFF_DEFAULT = HAUSDORFF_VERTEX_SAMPLING | HAUSDORFF_EDGE_SAMPLING | HAUSDORFF_FACE_SAMPLING | HAUSDORFF_MEDIUM_SPEED,
33} CHausdorffFlags;
34
35DLL_3DFUNCTION extern bool limitCell;
36
37DLL_3DFUNCTION double GeomCompare(const C3DGeomObject *geom1, const C3DGeomObject *geom2, MeshCompareMethod method = MESHCOMPARE_HAUSDORFF_METHOD, double limit = HUGE_VAL, unsigned int specificCompareFlags = HAUSDORFF_DEFAULT); // Compare 2 geometries with the given comparison method. limit stop the process if reach. return HUGE_VAL if fails
38
39END_MOOTOOLS_NAMESPACE
40
41#endif
This is the base class for any object containing geometry (curve, polygonal object,...
Definition 3DGeomObject.h:49
The class defines an x, y, z 3D point which can use int, float or double.
Definition 3DPoint.h:27