Fade2.5D Documentation pages v2.16.8
Delaunay Features
Fade2.5D Documentation

C++ Delaunay Triangulation Library Fade2.5D

Fast Delaunay Triangulation Library

  • 2D for classic (constrained) Delaunay triangulations and polygons.
  • 2.5D for triangulations of lifted point clouds (e.g., terrain models).
  • Free student license. Commercial licenses and support are available.
  • Support for Windows (Visual Studio or MinGW), macOS and iOS, Linux (GCC).
#include <Fade_2D.h>
using namespace GEOM_FADE2D;
int main() // **A minimal example**
{
// Create 4 input points
std::vector<Point2> vInputPoints;
vInputPoints.emplace_back(Point2(0.0,0.0));
vInputPoints.emplace_back(Point2(0.0,1.0));
vInputPoints.emplace_back(Point2(2.0,0.5));
vInputPoints.emplace_back(Point2(0.5,0.5));
// Insert them into a triangulation and draw a PDF
Fade_2D dt;
dt.insert(vInputPoints);
dt.show("example.pdf");
return 0;
}

Download and Documentation

Download the Fade package with examples and documentation.

New to Fade2D?

Start your journey with the Getting Started guide and learn how to integrate Fade2D into your projects.

Getting Started




Recent Releases


Version 2.16.8 (January 16, 2025)
New Features:

  • Fade_2D::replicateZoneBoundary(): This new method replicates the boundary of a given Zone2 within the current Fade_2D instance. This functionality simplifies boolean operations between zones from different triangulations, as all input zones for such operations must reside within the same Fade_2D instance.
  • Fade_2D::deleteConstraintsAndZones(): This method removes all existing Zone2, ConstraintGraph2, and ConstraintSegment2 objects without altering the triangulation edges, effectively making all edges unprotected. Use this method only if you are fully aware of the consequences.
  • New Zone2::show() Methods: Two additional show() methods have been added to the Zone2 class, offering more flexibility in choosing colors for both edges and triangles. This is intended to support your development.
  • Enhanced C++ Example: The existing C++ example examples_real/mergingTriangulations has been enhanced with a third demo that demonstrates how to merge two triangulated meshes.

Version 2.16.7 (January 9, 2025)
Bug Fixes:

  • Resolved an issue where the new clipPolygon() function (of the 2.5D version) did not project the polygon to the surface although bWithDrape=true was specified.
  • Resolved a problem with the new Fade_2D::createZone_cookieCutter2() function (of the 2.5D version), where 'knife'-segments were not fully projected onto the surface.
  • In the C++ example remove-unwanted-triangles, the median length computation has been replaced by Fade_2D::getMedianEdgeLength2D().

New Features:

  • This release includes a significant documentation update with improved explanations and images.

Version 2.16.6 (December 16, 2024)
New Features

  • Morphological Operations: Morphological opening and closing
  • Log class

Version 2.16.3 (October 22nd, 2024)
Bug Fixes:

  • Strict floating-point arithmetic in critical code sections to fix unreliable computations in the VS2015 and VS2017 versions.
  • Fixed Zone2::getOffsetBoundary(), which could return the offset of the zone's convex hull in some situations.

New Features:

#define FADE_VERSION_MAJ 2
#define FADE_VERSION_MIN 16
#define FADE_VERSION_REV 3
#define FADE_VERSION_NUM 21603
#define FADE_VERSION_STR "2.16.3"
  • Introducing the new method Fade_2D::createZone_cookieCutter2() which allows for zones with holes, provides improved numerical accuracy, and is faster than the previous method Fade_2D::createZone_cookieCutter() (which works as expected, but does not support zones with holes). To avoid behavioral changes, the old method has not been improved but has been deprecated in favor of the new one.
  • Introducing the new method Zone2::smoothing2(), which yields better quality compared to the old method Zone2::smoothing(). While the old method remains unchanged to avoid behavioral changes, it is now deprecated.


Version 2.15 (September 13th, 2024)
Bug fixes

  • Quality meshing: Angle computation corrected.
  • Zone2: In case that the boundary of a Zone2 selfintersects collinearly, the boundary is now nevertheless respected. Selfintersections of the boundary are illegal anyway. However, in rare cases they may occur due to the limited accuracy of floating point arithmetic, and this fix increases the robustness.

New features

  • Offset Polygons: The new Zone2::getOffsetBoundary() method provides an easy way to create positive and negative offset polygons which are free of selfintersections.



Visit Release Notes for the Fade_2D Library for a complete list of release notes since 2012.