File straightSkeleton.h
File List > algorithm > straightSkeleton.h
Go to the documentation of this file
// Copyright (c) 2012-2013, IGN France.
// Copyright (c) 2012-2022, Oslandia.
// SPDX-License-Identifier: LGPL-2.0-or-later
#ifndef _SFCGAL_ALGORITHM_STRAIGHTSKELETON_H_
#define _SFCGAL_ALGORITHM_STRAIGHTSKELETON_H_
#include "SFCGAL/PolyhedralSurface.h"
#include "SFCGAL/algorithm/extrude.h"
#include "SFCGAL/algorithm/union.h"
#include "SFCGAL/config.h"
#include <memory>
namespace SFCGAL {
class Geometry;
class Polygon;
class MultiPolygon;
class MultiLineString;
} // namespace SFCGAL
namespace SFCGAL {
namespace algorithm {
struct NoValidityCheck;
SFCGAL_API std::unique_ptr<MultiLineString>
approximateMedialAxis(const Geometry &g);
SFCGAL_API std::unique_ptr<MultiLineString>
straightSkeleton(const Geometry &g, bool autoOrientation = true,
bool innerOnly = false, bool outputDistanceInM = false,
const double &toleranceAbs = 1e-8);
SFCGAL_API std::unique_ptr<MultiLineString>
straightSkeleton(const Geometry &g, bool autoOrientation, NoValidityCheck,
bool innerOnly = false, bool outputDistanceInM = false,
const double &toleranceAbs = 1e-8);
SFCGAL_API std::unique_ptr<MultiLineString>
straightSkeleton(const Polygon &g, bool autoOrientation = true,
bool innerOnly = false, bool outputDistanceInM = false,
const double &toleranceAbs = 1e-8);
SFCGAL_API std::unique_ptr<MultiLineString>
straightSkeleton(const MultiPolygon &g, bool autoOrientation = true,
bool innerOnly = false, bool outputDistanceInM = false,
const double &toleranceAbs = 1e-8);
SFCGAL_API auto
extrudedStraightSkeleton(const Polygon &g, double height)
-> std::unique_ptr<PolyhedralSurface>;
SFCGAL_API auto
extrudeStraightSkeleton(const Geometry &g, double height)
-> std::unique_ptr<PolyhedralSurface>;
SFCGAL_API auto
extrudeStraightSkeleton(const Geometry &g, double building_height,
double roof_height)
-> std::unique_ptr<PolyhedralSurface>;
SFCGAL_API std::unique_ptr<MultiPolygon>
straightSkeletonPartition(const Geometry &g, bool autoOrientation = true);
SFCGAL_API std::unique_ptr<MultiPolygon>
straightSkeletonPartition(const Polygon &g, bool autoOrientation = true);
SFCGAL_API std::unique_ptr<MultiPolygon>
straightSkeletonPartition(const MultiPolygon &g, bool autoOrientation = true);
} // namespace algorithm
} // namespace SFCGAL
#endif