Skip to content

Commit

Permalink
Remove interpolation internal classes from stable API
Browse files Browse the repository at this point in the history
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 04fec09
Show file tree
Hide file tree
Showing 15 changed files with 74 additions and 25 deletions.
14 changes: 13 additions & 1 deletion doc/api_break.dox
Expand Up @@ -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.
Expand All @@ -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.
Expand All @@ -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.
Expand All @@ -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}
---------------
Expand Down
13 changes: 0 additions & 13 deletions python/analysis/analysis_auto.sip
Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/Bezier3D.h
Expand Up @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/CloughTocherInterpolator.h
Expand Up @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/DualEdgeTriangulation.h
Expand Up @@ -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:
Expand Down
3 changes: 3 additions & 0 deletions src/analysis/interpolation/HalfEdge.h
Expand Up @@ -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
{
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/LinTriangleInterpolator.h
Expand Up @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/Line3D.h
Expand Up @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/Node.h
Expand Up @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/NormVecDecorator.h
Expand Up @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/ParametricLine.h
Expand Up @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/TriDecorator.h
Expand Up @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/TriangleInterpolator.h
Expand Up @@ -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:
Expand Down
6 changes: 5 additions & 1 deletion src/analysis/interpolation/Triangulation.h
Expand Up @@ -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:
Expand Down
3 changes: 3 additions & 0 deletions src/analysis/interpolation/Vector3D.h
Expand Up @@ -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
Expand Down

0 comments on commit 04fec09

Please sign in to comment.