Skip to content
Permalink
Browse files

Remove interpolation internal classes from stable API

These classes still need a lot of cleanup (e.g. use of proper
3d geometry classes instead of their own 3d line classes, etc)
and we don't want them locked into the 3.0 API.

Better to remove them from the API and reintroduce them after
they have been cleaned up (in >3.0). They are mostly implementation
details anyway, and unlikely to be used outside of the high
level interpolation classes.
  • Loading branch information
nyalldawson committed Aug 29, 2017
1 parent 90d1422 commit 04fec09c3ea378b90280dcfd5f4b5a16c9f4b6fa
@@ -249,6 +249,8 @@ Removed Classes {#qgis_api_break_3_0_removed_classes}
- QgsAnnotationItem was removed. This was replaced by QgsAnnotation and QgsMapCanvasAnnotationItem.
- QgsAttributeAction was removed, and replaced by QgsActionManager.
- QgsAttributeEditor was removed. Use QgsEditorWidgetRegistry::create() instead.
- Bezier3D.
- CloughTocherInterpolator.
- QgsColorbutton was removed. QgsColorButtonV2 has now been renamed to QgsColorButton. Hence, QgsColorButtonV2 does not exist anymore.
- QgsColorDialog was removed, and QgsColorDialogV2 was renamed to QgsColorDialog. Hence, QgsColorButtonV2 does not exist anymore.
All the functionality from the old QgsColorDialog has been moved to the new class.
@@ -266,10 +268,12 @@ should now call QgsCoordinateReferenceSystem::invalidateCache() and QgsCoordinat
- QgsDataDefinedButton was removed. Use QgsPropertyOverrideButton instead.
- QgsDataDefinedSymbolDialog was removed. Code using this dialog should be reworked to use QgsPropertyOverrideButton
- QgsDefaultPluginLayerLegend was removed. Use QgsMapLayer::setLegend() to provide legend nodes for plugin layers.
- DualEdgeTriangulation
- QgsFileNameWidgetWrapper was removed. Use QgsExternalResourceWidgetWrapper instead.
- QgsFileDropEdit was removed. Use QgsFileWidget instead.
- QgsFormAnnotationItem. Use QgsFormAnnotation instead.
- QgsGeometryAnalyzer. Use the equivalent Processing algorithms instead.
- HalfEdge.
- QgsHtmlAnnotationItem. Use QgsHtmlAnnotation instead.
- QgsHttpTransaction. This class was outdated and code should be ported to native Qt or Python implementations.
- QgsGenericProjectionSelector. Use QgsProjectionSelectionTreeWidget instead.
@@ -282,11 +286,16 @@ should now call QgsCoordinateReferenceSystem::invalidateCache() and QgsCoordinat
- addLegendLayerActionForLayer() moved to QgisInterface::addCustomActionForLayer()
- removeLegendLayerAction() moved to QgisInterface::removeCustomActionForLayerType()
- QgsLegendModel was removed.
- Line3D.
- LinTriangleInterpolator.
- QgsMapCanvasLayer. Map canvas and overview canvas are updated separately with their own setLayers() calls.
- QgsMapCanvasMap. It is an internal class used by map canvas.
- QgsMapLayerRegistry. Its functionality has been moved to QgsProject.
- QgsMapRenderer. It has been replaced by QgsMapRendererJob with subclasses and QgsMapSettings.
- QgsMapToolTouch. The touch navigation functionality is now built into the standard QgsMapToolPan tool.
- Node.
- NormVecDecorator.
- ParametericLine.
- QgsPhotoWidgetWrapper was removed. Use QgsExternalResourceWidgetWrapper instead.
- QgsPointSample. Use the Processing "Random Points in Polygon" algorithm instead.
- QgsPseudoColorShader. This shader has been broken for some time and was replaced by QgsSingleBandPseudoColorRenderer.
@@ -302,10 +311,13 @@ should now call QgsCoordinateReferenceSystem::invalidateCache() and QgsCoordinat
- QgsSvgAnnotationItem. Use QgsSvgAnnotation instead.
- QgsSymbologyV2Conversion was removed. Reading of renderers from pre-1.0 versions is not supported anymore.
- QgsTextAnnotationItem. Use QgsTextAnnotation instead.
- TriangleInterpolator.
- Triangulation.
- TriDecorator.
- QgsSnapper. Use QgsSnappingUtils instead.
- QgsSnappingResult. Use QgsSnappingUtils instead.
- QgsMapCanvasSnapper. Use QgsMapCanvas::snappingUtils() instead.

- Vector3D

General changes {#qgis_api_break_3_0_global}
---------------
@@ -18,19 +18,6 @@
%Include interpolation/qgsgridfilewriter.sip
%Include interpolation/qgsidwinterpolator.sip
%Include interpolation/qgstininterpolator.sip
%Include interpolation/Bezier3D.sip
%Include interpolation/ParametricLine.sip
%Include interpolation/CloughTocherInterpolator.sip
%Include interpolation/TriangleInterpolator.sip
%Include interpolation/Vector3D.sip
%Include interpolation/DualEdgeTriangulation.sip
%Include interpolation/Node.sip
%Include interpolation/TriDecorator.sip
%Include interpolation/Triangulation.sip
%Include interpolation/HalfEdge.sip
%Include interpolation/LinTriangleInterpolator.sip
%Include interpolation/NormVecDecorator.sip
%Include interpolation/Line3D.sip
%Include openstreetmap/qgsosmbase.sip
%Include openstreetmap/qgsosmdatabase.sip
%Include network/qgsgraph.sip
@@ -21,8 +21,12 @@
#include "qgslogger.h"
#include "qgis_analysis.h"

#define SIP_NO_FILE

/** \ingroup analysis
* Class Bezier3D represents a bezier curve, represented by control points. Parameter t is running from 0 to 1. The class is capable to calculate the curve point and the first two derivatives belonging to t.*/
* Class Bezier3D represents a bezier curve, represented by control points. Parameter t is running from 0 to 1. The class is capable to calculate the curve point and the first two derivatives belonging to it.
* \note Not available in Python bindings
*/
class ANALYSIS_EXPORT Bezier3D: public ParametricLine
{
protected:
@@ -23,8 +23,12 @@

class NormVecDecorator;

#define SIP_NO_FILE

/** \ingroup analysis
* This is an implementation of a Clough-Tocher interpolator based on a triangular tessellation. The derivatives orthogonal to the boundary curves are interpolated linearly along a triangle edge.*/
* This is an implementation of a Clough-Tocher interpolator based on a triangular tessellation. The derivatives orthogonal to the boundary curves are interpolated linearly along a triangle edge.
* \note Not available in Python bindings
*/
class ANALYSIS_EXPORT CloughTocherInterpolator : public TriangleInterpolator
{
protected:
@@ -34,8 +34,12 @@
#include <QCursor>
#include "qgis_analysis.h"

#define SIP_NO_FILE

/** \ingroup analysis
* DualEdgeTriangulation is an implementation of a triangulation class based on the dual edge data structure*/
* DualEdgeTriangulation is an implementation of a triangulation class based on the dual edge data structure.
* \note Not available in Python bindings.
*/
class ANALYSIS_EXPORT DualEdgeTriangulation: public Triangulation
{
public:
@@ -19,8 +19,11 @@

#include "qgis_analysis.h"

#define SIP_NO_FILE

/** \ingroup analysis
* \class HalfEdge
* \note Not available in Python bindings.
*/
class ANALYSIS_EXPORT HalfEdge
{
@@ -21,8 +21,12 @@
#include "DualEdgeTriangulation.h"
#include "qgis_analysis.h"

#define SIP_NO_FILE

/** \ingroup analysis
* LinTriangleInterpolator is a class which interpolates linearly on a triangulation*/
* LinTriangleInterpolator is a class which interpolates linearly on a triangulation.
* \note Not available in Python bindings.
*/
class ANALYSIS_EXPORT LinTriangleInterpolator : public TriangleInterpolator
{
public:
@@ -21,8 +21,12 @@
#include "qgis_analysis.h"
#include "qgis_sip.h"

#define SIP_NO_FILE

/** \ingroup analysis
* This class represents a line. It is implemented as a single directed linked list of nodes (with related QgsPoint objects). Attention: the points inserted in a line are not deleted from Line3D*/
* This class represents a line. It is implemented as a single directed linked list of nodes (with related QgsPoint objects). Attention: the points inserted in a line are not deleted from Line3D
* \note Not available in Python bindings
*/
class ANALYSIS_EXPORT Line3D SIP_NODEFAULTCTORS
{
private:
@@ -20,8 +20,12 @@
#include "qgspoint.h"
#include "qgis_analysis.h"

#define SIP_NO_FILE

/** \ingroup analysis
* Node is a class used by Line3D. It represents a node in the single directed linked list. Associated QgsPoint objects are deleted when the node is deleted.*/
* Node is a class used by Line3D. It represents a node in the single directed linked list. Associated QgsPoint objects are deleted when the node is deleted.
* \note Not available in Python bindings
*/
class ANALYSIS_EXPORT Node
{
protected:
@@ -25,10 +25,14 @@
#include "qgslogger.h"
#include "qgis_analysis.h"

#define SIP_NO_FILE

class QgsFeedback;

/** \ingroup analysis
* Decorator class which adds the functionality of estimating normals at the data points*/
* Decorator class which adds the functionality of estimating normals at the data points.
* \note Not available in Python bindings.
*/
class ANALYSIS_EXPORT NormVecDecorator: public TriDecorator
{
public:
@@ -24,9 +24,13 @@

class Vector3D;

#define SIP_NO_FILE

/** \ingroup analysis
* ParametricLine is an Interface for parametric lines. It is possible, that a parametric line is composed of several parametric
* lines (see the composite pattern in Gamma et al. 'Design Patterns'). Do not build instances of it since it is an abstract class.*/
* lines (see the composite pattern in Gamma et al. 'Design Patterns'). Do not build instances of it since it is an abstract class.
* \note Not available in Python bindings
*/
class ANALYSIS_EXPORT ParametricLine
{
protected:
@@ -21,8 +21,12 @@
#include "qgis.h"
#include "qgis_analysis.h"

#define SIP_NO_FILE

/** \ingroup analysis
* Decorator class for Triangulations (s. Decorator pattern in Gamma et al.)*/
* Decorator class for Triangulations (s. Decorator pattern in Gamma et al.).
* \note Not available in Python bindings.
*/
class ANALYSIS_EXPORT TriDecorator : public Triangulation
{
public:
@@ -21,8 +21,12 @@
#include "Vector3D.h"
#include "qgis_analysis.h"

#define SIP_NO_FILE

/** \ingroup analysis
* This is an interface for interpolator classes for triangulations*/
* This is an interface for interpolator classes for triangulations.
* \note Not available in Python bindings.
*/
class ANALYSIS_EXPORT TriangleInterpolator
{
public:
@@ -25,8 +25,12 @@

class Line3D;

#define SIP_NO_FILE

/** \ingroup analysis
* Interface for Triangulation classes*/
* Interface for Triangulation classes.
* \note Not available in Python bindings.
*/
class ANALYSIS_EXPORT Triangulation
{
public:
@@ -20,10 +20,13 @@
#include <cmath>
#include "qgis_analysis.h"

#define SIP_NO_FILE

/** \ingroup analysis
* Class Vector3D represents a 3D-Vector, capable to store x-,y- and
* z-coordinates in double values. In fact, the class is the same as QgsPoint.
* The name 'vector' makes it easier to understand the programs.
* \note Not available in Python bindings
*/

class ANALYSIS_EXPORT Vector3D

0 comments on commit 04fec09

Please sign in to comment.
You can’t perform that action at this time.