File: ExampleGLPlugin.cpp

package info (click to toggle)
cloudcompare 2.10.1-2
  • links: PTS
  • area: main
  • in suites: buster
  • size: 55,916 kB
  • sloc: cpp: 219,837; ansic: 29,944; makefile: 67; sh: 45
file content (71 lines) | stat: -rw-r--r-- 2,765 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//##########################################################################
//#                                                                        #
//#             CLOUDCOMPARE PLUGIN: ExampleGLPlugin                       #
//#                                                                        #
//#  This program is free software; you can redistribute it and/or modify  #
//#  it under the terms of the GNU General Public License as published by  #
//#  the Free Software Foundation; version 2 or later of the License.      #
//#                                                                        #
//#  This program is distributed in the hope that it will be useful,       #
//#  but WITHOUT ANY WARRANTY; without even the implied warranty of        #
//#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the          #
//#  GNU General Public License for more details.                          #
//#                                                                        #
//#          COPYRIGHT: EDF R&D / TELECOM ParisTech (ENST-TSI)             #
//#                                                                        #
//##########################################################################

// First:
//	Replace all occurrences of 'ExampleGLPlugin' by your own plugin class name in this file.
//	This includes the resource path to info.json in the constructor.

// Second:
//	Open ExampleGLPlugin.qrc, change the "prefix" and the icon filename for your plugin.
//	Change the name of the file to <yourPluginName>.qrc

// Third:
//	Open the info.json file and fill in the information about the plugin.
//	 "type" should be: "GL" (required)
//	 "name" is the name of the plugin (required)
//	 "icon" is the Qt resource path to the plugin's icon (from the .qrc file)
//	 "description" is used as a tootip if the plugin has actions and is displayed in the plugin dialog
//	 "authors", "maintainers", and "references" show up in the plugin dialog as well

#include <QInputDialog>
#include <QtMath>

#include "ccBilateralFilter.h"

#include "ExampleGLPlugin.h"


ExampleGLPlugin::ExampleGLPlugin( QObject *parent )
	: QObject( parent )
	, ccGLFilterPluginInterface( ":/CC/plugin/ExampleGLPlugin/info.json" )
{
}

ccGlFilter *ExampleGLPlugin::getFilter()
{
	bool ok = false;
	double sigma = QInputDialog::getDouble( nullptr,
											"Bilateral filter",
											"Sigma (pixel)",
											1.0,
											0.1, 8.0,
											1,
											&ok );
	
	if (!ok || sigma < 0)
	{
		return nullptr;
	}
	
	unsigned int halfFilterSize = static_cast<unsigned int>(qCeil( 2.5 * sigma ));
	
	ccBilateralFilter* filter = new ccBilateralFilter;
	
	filter->setParams( halfFilterSize, static_cast<float>(sigma), 0.0f );
	
	return filter;
}