[3depict] 02/03: * Remove outdated patch

D Haley mycae-guest at moszumanska.debian.org
Sun Feb 5 14:38:52 UTC 2017


This is an automated email from the git hooks/post-receive script.

mycae-guest pushed a commit to branch master
in repository 3depict.

commit 23cf2be2c3103f7c086551871ecc3959664ff20a
Author: D Haley <mycae at gmx.com>
Date:   Sun Feb 5 14:03:22 2017 +0100

    * Remove outdated patch
---
 debian/patches/diff_0.0.19_to_effd078610a7 | 1235 ----------------------------
 debian/patches/series                      |    1 -
 2 files changed, 1236 deletions(-)

diff --git a/debian/patches/diff_0.0.19_to_effd078610a7 b/debian/patches/diff_0.0.19_to_effd078610a7
deleted file mode 100644
index 27e5e88..0000000
--- a/debian/patches/diff_0.0.19_to_effd078610a7
+++ /dev/null
@@ -1,1235 +0,0 @@
-diff -r d478204af715 -r effd078610a7 docs/manual-latex/build-latex.sh
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/docs/manual-latex/build-latex.sh	Tue Jun 21 12:45:20 2016 +0100
-@@ -0,0 +1,37 @@
-+#!/bin/bash
-+LATEXBIN=pdflatex
-+BIBTEXBIN=bibtex
-+if [ x`which $LATEXBIN` == x"" ] ; then
-+	echo "no $LATEXBIN" 
-+	exit 1
-+fi
-+
-+if [ x`which $BIBTEXBIN` == x"" ] ; then
-+	echo "no $BIBTEXBIN" 
-+	exit 1
-+fi
-+
-+MANUAL=manual.tex
-+
-+#check to see if the manual and its bib file are around
-+if [ ! -f $MANUAL  ] ; then
-+	echo "$MANUAL is missing"
-+	exit 1
-+fi
-+
-+#Remove the old manul
-+rm -f manual.pdf
-+
-+
-+
-+#run the multi-pass latex build. 
-+$LATEXBIN $MANUAL || { echo "failed latex build (pass 1 of 2)"; exit 1 ; }
-+$BIBTEXBIN `basename -s .tex $MANUAL` || { echo "failed bibtex build"; exit 1 ; }
-+$LATEXBIN $MANUAL || { echo "failed latex build (pass 2 of 2)"; exit 1 ; }
-+
-+
-+if [ ! -f manual.pdf ] ; then
-+	echo "latex ran, but somehow we did not output the PDF...."
-+	exit 1
-+fi
-+
-diff -r d478204af715 -r effd078610a7 src/backend/filter.cpp
---- a/src/backend/filter.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filter.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -553,7 +553,7 @@
- 		ASSERT(scatterIntensity.empty());
- 
- 
--	ASSERT(plotType < PLOT_TYPE_ENUM_END);
-+	ASSERT(plotStyle < PLOT_TYPE_ENUM_END);
- }
- void RangeStreamData::checkSelfConsistent() const
- {
-diff -r d478204af715 -r effd078610a7 src/backend/filter.h
---- a/src/backend/filter.h	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filter.h	Tue Jun 21 12:45:20 2016 +0100
-@@ -395,7 +395,7 @@
- 		//Label for X, Y axes
- 		std::string xLabel,yLabel;
- 
--		unsigned int plotType;
-+		unsigned int plotStyle;
- 
- 		//!Structured XY data pairs for plotting curve
- 		Array2D<float> xyData;
-diff -r d478204af715 -r effd078610a7 src/backend/filters/algorithms/rdf.cpp
---- a/src/backend/filters/algorithms/rdf.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/algorithms/rdf.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -862,6 +862,8 @@
- 		return RDF_ABORT_FAIL;
- #endif
- 
-+	*progressPtr=100;
-+
- 	return 0;
- }
- 
-@@ -1003,6 +1005,8 @@
- #endif
- 
- 	//Calculations complete!
-+	*progressPtr=100;
-+
- 	return 0;
- }
- 
-diff -r d478204af715 -r effd078610a7 src/backend/filters/annotation.cpp
---- a/src/backend/filters/annotation.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/annotation.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -167,8 +167,15 @@
- 
- 	//If we are not enabled, do not draw anything into the output
- 	if(!active)
-+	{
-+		progress.filterProgress=100;
- 		return 0;
-+	}
- 
-+	progress.step=1;
-+	progress.maxStep=1;
-+	progress.stepName=TRANS("Draw");
-+	
- 	DrawStreamData *d; 
- 	d = new DrawStreamData;
- 	d->parent=this;
-@@ -505,6 +512,7 @@
- 	d->cached=0;
- 	getOut.push_back(d);
- 
-+	progress.filterProgress=100;
- 	return 0;
- }
- 
-diff -r d478204af715 -r effd078610a7 src/backend/filters/boundingBox.cpp
---- a/src/backend/filters/boundingBox.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/boundingBox.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -510,7 +510,6 @@
- 				}
- #endif
- 				bTotal.expand(bThis);
--				progress.filterProgress=100;
- 				break;
- 			}
- 			default:
-@@ -521,6 +520,7 @@
- 		getOut.push_back(dataIn[ui]);	
- 	}
- 
-+	progress.filterProgress=100;
- 	//Append the bounding box if it is valid
- 	if(bTotal.isValid())
- 	{
-diff -r d478204af715 -r effd078610a7 src/backend/filters/clusterAnalysis.cpp
---- a/src/backend/filters/clusterAnalysis.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/clusterAnalysis.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -685,7 +685,7 @@
- 		Plot2DStreamData *p = new Plot2DStreamData;
- 		p->parent=this;
- 
--		p->plotType=PLOT_2D_SCATTER;
-+		p->plotStyle=PLOT_2D_SCATTER;
- 		p->dataLabel=TRANS("Morphology Plot");
- 		p->xLabel=TRANS("\\lambda_1:\\lambda_2 ratio");
- 		p->yLabel=TRANS("\\lambda_2:\\lambda_3 ratio");
-diff -r d478204af715 -r effd078610a7 src/backend/filters/ionColour.cpp
---- a/src/backend/filters/ionColour.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/ionColour.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -271,12 +271,14 @@
- 	
- 
- 	p.name=TRANS("Show Bar");
-+	p.helpText=TRANS("Display the colour legend in the 3D view");
- 	p.key=KEY_IONCOLOURFILTER_SHOWBAR;
- 	p.data=boolStrEnc(showColourBar);
- 	p.type=PROPERTY_TYPE_BOOL;
- 	propertyList.addProperty(p,curGroup);
- 	
- 	p.name=TRANS("Opacity");
-+	p.helpText=TRANS("How see-through to make the legend (0- transparent, 1- solid)");
- 	p.key=KEY_IONCOLOURFILTER_ALPHA;
- 	stream_cast(p.data,alpha);
- 	p.type=PROPERTY_TYPE_REAL;
-diff -r d478204af715 -r effd078610a7 src/backend/filters/ionDownsample.cpp
---- a/src/backend/filters/ionDownsample.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/ionDownsample.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -88,7 +88,7 @@
- 			rsdIncoming = new RangeStreamData;
- 			*rsdIncoming=*c;
- 
--			if(ionFractions.size() != c->rangeFile->getNumIons())
-+			if(ionFractions.size() != c->rangeFile->getNumIons()+1)
- 			{
- 				//set up some defaults; seeded from normal
- 				ionFractions.resize(c->rangeFile->getNumIons()+1,fraction);
-@@ -464,7 +464,8 @@
- 
- 	propertyList.setGroupTitle(curGroup,TRANS("Mode"));
- 	curGroup++;
--	if(rsdIncoming && perSpecies)
-+
-+	if(rsdIncoming && perSpecies && rsdIncoming->enabledIons.size())
- 	{
- 		unsigned int typeVal;
- 		if(fixedNumOut)
-diff -r d478204af715 -r effd078610a7 src/backend/filters/ionInfo.cpp
---- a/src/backend/filters/ionInfo.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/ionInfo.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -398,7 +398,7 @@
- 
- 
- 	//"Pairwise events" - where we perform an action if both 
--	//These
-+	//these are set
- 	if(wantIonCounts && wantVolume)
- 	{
- 		if(computedVol > sqrtf(std::numeric_limits<float>::epsilon()))
-@@ -420,6 +420,9 @@
- 		}
- 	}
- 
-+
-+	progress.filterProgress=100;
-+	
- 	return 0;
- }
- 
-diff -r d478204af715 -r effd078610a7 src/backend/filters/spatialAnalysis.cpp
---- a/src/backend/filters/spatialAnalysis.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/spatialAnalysis.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -655,115 +655,180 @@
- 		return ERR_FILE_READ_FAIL;
- 
- 
--
--	progress.step=3;
--	progress.stepName=TRANS("Build");
--	progress.filterProgress=0;
--
--	//Build the search tree we will use to perform replacement
--	K3DTreeMk2 tree;
--	tree.resetPts(fileIons,false);
--	if(!tree.build())
--		return ERR_ABORT_FAIL;
--	BoundCube b;
--	tree.getBoundCube(b);
--
--	//map the offset of the nearest to
--	//the tree ID 
--	vector<size_t > nearestVec;
--	nearestVec.resize(inIons.size());
--
--	//TODO: pair vector might be faster
--	// as we can use it in sequence, and can use openmp
--	map<size_t,size_t> matchedMap;
--
--	//Find the nearest point for all points in the dataset
--
--	#pragma omp parallel for 
--	for(size_t ui=0;ui<inIons.size();ui++)
-+	vector<IonHit> outIons;
-+	if(inIons.empty() || fileIons.empty())
- 	{
--		nearestVec[ui]=tree.findNearestUntagged(inIons[ui].getPos(),b,false);
--	}
--
--	float sqrReplaceTol=replaceTolerance*replaceTolerance;
--
--	//Filter this to only points that had an NN within range
--	#pragma omp parallel for 
--	for(size_t ui=0;ui<inIons.size();ui++)
--	{
--		if(nearestVec[ui]!=(size_t)-1 && inIons[ui].getPos().sqrDist(*tree.getPt(nearestVec[ui])) <=sqrReplaceTol)
-+		//Performance increase if we have an empty item.
-+		// - in this case we can swap sets around
-+		switch(replaceMode)
- 		{
--			#pragma omp critical
--			matchedMap[ui]=tree.getOrigIndex(nearestVec[ui]);
-+			case REPLACE_MODE_UNION:
-+			{
-+				//If the local data is empty, then the union is just the "b" data (swap).
-+				// if nonempty, then it is simply the "a" data 
-+				if(inIons.empty())
-+					outIons.swap(fileIons);
-+				else
-+					outIons.swap(inIons);
-+				break;
-+			}
-+			case REPLACE_MODE_SUBTRACT:
-+			{
-+				//if either localdata OR bdata is empty, then we don't need to do anything.
-+				// either way, input stays as it is
-+				outIons.swap(inIons);
-+				break;
-+			}
-+			case REPLACE_MODE_INTERSECT:
-+			{
-+				//intersection with empty set is empty set.
-+				// might as well clear the ions incoming
-+				inIons.clear();
-+				break;
-+			}
-+			default:
-+				ASSERT(false);
-+
- 		}
- 	}
--
--	nearestVec.clear();
--
--
--	progress.step=4;
--	progress.stepName=TRANS("Compute");
--	progress.filterProgress=0;
--
--	//Finish if no matches
--	if(matchedMap.empty())
-+	else
- 	{
--		progress.filterProgress=100;
--		return 0;
--	}
--
--	vector<IonHit> outIons;
--	switch(replaceMode)
--	{
--		case REPLACE_MODE_SUBTRACT:
-+
-+		progress.step=3;
-+		progress.stepName=TRANS("Build");
-+		progress.filterProgress=0;
-+
-+		//TODO: Possible speed increase by finding the smaller of
-+		// the two inputs, and using that to build the tree
-+
-+		//Build the search tree we will use to perform replacement
-+		K3DTreeMk2 tree;
-+		tree.resetPts(fileIons,false);
-+		if(!tree.build())
-+			return ERR_ABORT_FAIL;
-+		BoundCube b;
-+		tree.getBoundCube(b);
-+
-+		//map the offset of the nearest to
-+		//the tree ID 
-+		vector<size_t > nearestVec;
-+		nearestVec.resize(inIons.size());
-+
-+		//TODO: pair vector might be faster
-+		// as we can use it in sequence, and can use openmp
-+		map<size_t,size_t> matchedMap;
-+
-+		//Find the nearest point for all points in the dataset
-+		// maps the ith ion in "inions" to the tree value
-+		#pragma omp parallel for 
-+		for(size_t ui=0;ui<inIons.size();ui++)
- 		{
--			//In subtraction mode, we should have
--			// at least this many ions
--			if(inIons.size() > matchedMap.size())
--				outIons.reserve(inIons.size()-matchedMap.size());
--			
--			//
--			#pragma omp parallel for
--			for(unsigned int ui=0;ui<inIons.size();ui++)
-+			nearestVec[ui]=tree.findNearestUntagged(inIons[ui].getPos(),b,false);
-+		}
-+
-+		float sqrReplaceTol=replaceTolerance*replaceTolerance;
-+
-+		//Filter this to only points that had an NN within range
-+		#pragma omp parallel for 
-+		for(size_t ui=0;ui<inIons.size();ui++)
-+		{
-+			if(nearestVec[ui]!=(size_t)-1 && inIons[ui].getPos().sqrDist(*tree.getPt(nearestVec[ui])) <=sqrReplaceTol)
- 			{
--				map<size_t,size_t>::iterator it;
--				it=matchedMap.find(ui);
--				if(it != matchedMap.end())
--					continue;
--
- 				#pragma omp critical
--				outIons.push_back(inIons[ui]);
-+				matchedMap[ui]=tree.getOrigIndex(nearestVec[ui]);
- 			}
--			break;
- 		}
--		case REPLACE_MODE_INTERSECT:
-+
-+		nearestVec.clear();
-+
-+
-+		progress.step=4;
-+		progress.stepName=TRANS("Compute");
-+		progress.filterProgress=0;
-+
-+
-+		//now we have a map that matches as so:
-+		// map ( "inIon" ID -> "fileIon" ID)
-+		// inIon should be our "A" in "A operator B"
-+		switch(replaceMode)
- 		{
--			outIons.reserve(matchedMap.size());
--
--			if(replaceMass)
-+			case REPLACE_MODE_SUBTRACT:
- 			{
--				for(map<size_t,size_t>::const_iterator it=matchedMap.begin();it!=matchedMap.end();++it)
-+				//If no matches, A-0 = A. Just return input
-+				if(matchedMap.empty())
- 				{
--					outIons.push_back(fileIons[it->second]);
--					ASSERT(fileIons[it->second].getPosRef().sqrDist(inIons[it->first].getPosRef()) < sqrReplaceTol);
-+					outIons.swap(inIons);
-+					break;
- 				}
-+				//In subtraction mode, we should have
-+				// at least this many ions
-+				if(inIons.size() > matchedMap.size())
-+					outIons.reserve(inIons.size()-matchedMap.size());
-+				
-+				//
-+				#pragma omp parallel for
-+				for(unsigned int ui=0;ui<inIons.size();ui++)
-+				{
-+					map<size_t,size_t>::iterator it;
-+					it=matchedMap.find(ui);
-+					if(it != matchedMap.end())
-+						continue;
-+
-+					#pragma omp critical
-+					outIons.push_back(inIons[ui]);
-+				}
-+				break;
- 			}
--			else
-+			case REPLACE_MODE_INTERSECT:
- 			{
--				for(map<size_t,size_t>::const_iterator it=matchedMap.begin();it!=matchedMap.end();++it)
-+				//Finish if no matches
-+				if(matchedMap.empty())
-+					break;
-+				
-+				outIons.reserve(matchedMap.size());
-+
-+				if(replaceMass)
- 				{
--					outIons.push_back(inIons[it->first]);
-+					for(map<size_t,size_t>::const_iterator it=matchedMap.begin();it!=matchedMap.end();++it)
-+					{
-+						outIons.push_back(fileIons[it->second]);
-+						ASSERT(fileIons[it->second].getPosRef().sqrDist(inIons[it->first].getPosRef()) < sqrReplaceTol);
-+					}
- 				}
-+				else
-+				{
-+					for(map<size_t,size_t>::const_iterator it=matchedMap.begin();it!=matchedMap.end();++it)
-+					{
-+						outIons.push_back(inIons[it->first]);
-+					}
-+				}
-+				break;
- 			}
--			break;
-+			case REPLACE_MODE_UNION:
-+			{
-+				outIons.swap(fileIons);
-+				outIons.reserve(outIons.size() + fileIons.size() - matchedMap.size());
-+				map<size_t,size_t>::const_iterator it=matchedMap.begin();
-+				
-+
-+				for(unsigned int ui=0;ui<inIons.size();ui++)
-+				{
-+					if(it !=matchedMap.end() && (it->first == ui) )
-+					{
-+						it++;
-+						continue;
-+					}
-+
-+
-+					outIons.push_back(inIons[ui]);
-+				}
-+
-+
-+				break;
-+			}
-+			default:
-+				ASSERT(false);
- 		}
--		case REPLACE_MODE_UNION:
--		{
--			ASSERT(false);
--			break;
--		}
--		default:
--			ASSERT(false);
- 	}
- 
- 	//Only output ions if any were found
-@@ -2779,6 +2844,8 @@
- 				newD->data.resize(d->data.size());
- 				if(stopMode == STOP_MODE_NEIGHBOUR)
- 				{
-+					unsigned int nProg=0;
-+
- 					bool spin=false;
- 					#pragma omp parallel for shared(spin)
- 					for(size_t uj=0;uj<d->data.size();uj++)
-@@ -2811,14 +2878,15 @@
- 						}
- 
- 						res.clear();
-+						#pragma atomic
-+						nProg++;
- 						
- 						//Update progress as needed
- 						if(!curProg--)
- 						{
- 							#pragma omp critical 
- 							{
--							n+=NUM_CALLBACK/(nnMax);
--							progress.filterProgress= (unsigned int)(((float)n/(float)totalDataSize)*100.0f);
-+							progress.filterProgress= (unsigned int)(((float)nProg/(float)totalDataSize)*100.0f);
- 							if(*Filter::wantAbort)
- 								spin=true;
- 							curProg=NUM_CALLBACK/(nnMax);
-@@ -3063,9 +3131,10 @@
- 				IonStreamData *newD = new IonStreamData;
- 				newD->parent=this;
- 
--				//Adjust this number to provide more update thanusual, because we
-+				//Adjust this number to provide more update than usual, because we
- 				//are not doing an o(1) task between updates; yes, it is a hack
--				unsigned int curProg=NUM_CALLBACK/(10*nnMax);
-+				const unsigned int PROG_PER_PASS=NUM_CALLBACK/(10*nnMax);
-+				unsigned int curProg=PROG_PER_PASS;
- 				newD->data.reserve(d->data.size());
- 				if(stopMode == STOP_MODE_NEIGHBOUR)
- 				{
-@@ -3113,11 +3182,11 @@
- 						{
- 							#pragma omp critical 
- 							{
--							n+=NUM_CALLBACK/(nnMax);
-+							n+=PROG_PER_PASS;
- 							progress.filterProgress= (unsigned int)(((float)n/(float)totalDataSize)*100.0f);
- 							if(*Filter::wantAbort)
- 								spin=true;
--							curProg=NUM_CALLBACK/(nnMax);
-+							curProg=PROG_PER_PASS;
- 							}
- 						}
- 					}
-@@ -3263,6 +3332,8 @@
- 				break;
- 		}
- 	}
-+	progress.filterProgress=100;
-+
- 	//If we have bad points, let the user know.
- 	if(!badPts.empty())
- 	{
-@@ -4230,11 +4301,8 @@
- 				}
- 
- 				//distance between search pt and found pt
--				float sqrDistance;
--				sqrDistance = searchTree.getPtRef(ptIdx).sqrDist(pSource[ui].getPosRef());
--
--				if(sqrDistance > DISTANCE_EPSILON)
--					ptsFound.insert(ptIdx);
-+
-+				ptsFound.insert(ptIdx);
- 			}
- 
- 
-@@ -4244,8 +4312,14 @@
- 			//Count the number of numerator and denominator ions, using the masses we set aside earlier
- 			for(set<size_t>::iterator it=ptsFound.begin(); it!=ptsFound.end(); ++it)
- 			{
-+
-+				//check that the distance is non-zero, to force no self-matching
-+				float sqrDistance;
-+				sqrDistance = searchTree.getPtRef(*it).sqrDist(pSource[ui].getPosRef());
-+				if(sqrDistance < DISTANCE_EPSILON)
-+					continue;
-+
- 				float ionMass;
--				//check that the distance is non-zero, to force no self-matching
- 				ionMass = dataMasses[searchTree.getOrigIndex(*it)];
- 
- 				unsigned int ionID;
-@@ -4326,9 +4400,11 @@
- bool nnHistogramTest();
- bool rdfPlotTest();
- bool axialDistTest();
--bool replaceTest();
-+bool replaceIntersectAndUnionTest();
- bool localConcTestRadius();
- bool localConcTestNN();
-+bool replaceSubtractTest();
-+bool replaceUnionTest();
- 
- bool SpatialAnalysisFilter::runUnitTests()
- {
-@@ -4343,8 +4419,15 @@
- 
- 	if(!axialDistTest())
- 		return false;
--	if(!replaceTest())
-+	if(!replaceIntersectAndUnionTest())
- 		return false;
-+
-+	if(!replaceSubtractTest())
-+		return false;
-+
-+	if(!replaceUnionTest())
-+		return false;
-+
- 	if(!localConcTestRadius())
- 		return false;
- 
-@@ -4617,7 +4700,7 @@
- 	return true;
- }
- 
--bool replaceTest()
-+bool replaceIntersectAndUnionTest()
- {
- 	std::string ionFile=createTmpFilename(NULL,".pos");
- 		
-@@ -4637,6 +4720,157 @@
- 	//Create a spatial analysis filter
- 	SpatialAnalysisFilter *f=new SpatialAnalysisFilter;
- 	f->setCaching(false);	
-+	//Set it to do a union calculation 
-+	bool needUp;
-+	string s;
-+	s=TRANS(SPATIAL_ALGORITHMS[ALGORITHM_REPLACE]);
-+	TEST(f->setProperty(KEY_ALGORITHM,s,needUp),"Set prop");
-+	TEST(f->setProperty(KEY_REPLACE_FILE,ionFile,needUp),"Set prop");
-+	s="1";
-+	TEST(f->setProperty(KEY_REPLACE_VALUE,s,needUp),"Set prop");
-+
-+	vector<unsigned int> opVec;
-+	opVec.push_back(REPLACE_MODE_INTERSECT);
-+	opVec.push_back(REPLACE_MODE_UNION);
-+	
-+	ProgressData p;
-+	vector<const FilterStreamData*> streamIn,streamOut;
-+	streamIn.push_back(d);
-+	for(unsigned int opId=0;opId<opVec.size();opId++)
-+	{
-+		s=TRANS(REPLACE_ALGORITHMS[opVec[opId]]);
-+		TEST(f->setProperty(KEY_REPLACE_ALGORITHM,s,needUp),"Set prop");
-+
-+		//Do the refresh
-+		TEST(!f->refresh(streamIn,streamOut,p),"refresh OK");
-+
-+		TEST(streamOut.size() == 1,"stream count");
-+		TEST(streamOut[0]->getStreamType() == STREAM_TYPE_IONS,"stream type");
-+		TEST(streamOut[0]->getNumBasicObjects() == NIONS,"Number objects");
-+
-+		//we should have taken the mass-to-charge from the file
-+		const IonStreamData *outIons = (const IonStreamData*)streamOut[0];
-+		for(unsigned int ui=0;ui<NIONS; ui++)
-+		{
-+			ASSERT(outIons->data[ui].getMassToCharge() == 1); 
-+		}
-+		delete streamOut[0];
-+		streamOut.clear();
-+	}
-+	delete f;
-+	delete d;
-+	
-+	wxRemoveFile(ionFile);
-+
-+	
-+	return true;
-+}
-+
-+bool replaceSubtractTest()
-+{
-+	std::string ionFile=createTmpFilename(NULL,".pos");
-+		
-+	vector<IonHit> ions;
-+	const unsigned int NIONS=10;
-+	const unsigned int DIFF_COUNT=5;	
-+	for(unsigned int ui=0;ui<NIONS;ui++)
-+	{
-+		IonHit h;
-+		h = IonHit(Point3D(ui,ui,ui),1);
-+
-+		//make some ions different to the (x,x,x) pattern
-+		if(ui < DIFF_COUNT)
-+		{
-+			h.setPos(h.getPos() - Point3D(0,0,100));
-+			ions.push_back(h);
-+		}
-+		else
-+			ions.push_back(h);
-+	}
-+
-+	vector<IonHit> tmpI;
-+	for(unsigned int ui=0;ui<NIONS;ui++)
-+	{
-+		if(ions[ui][2] < 0 )
-+		{
-+			tmpI.push_back(ions[ui]);
-+			tmpI.back().setMassToCharge(2);
-+		}
-+	}
-+
-+	IonHit::makePos(tmpI,ionFile.c_str());
-+	tmpI.clear();
-+
-+	IonStreamData *d = new IonStreamData;
-+	d->data.swap(ions);
-+
-+	//Create a spatial analysis filter
-+	SpatialAnalysisFilter *f=new SpatialAnalysisFilter;
-+	f->setCaching(false);	
-+	
-+	//Set it to do a subtraction calculation 
-+	bool needUp;
-+	string s;
-+	s=TRANS(SPATIAL_ALGORITHMS[ALGORITHM_REPLACE]);
-+	TEST(f->setProperty(KEY_ALGORITHM,s,needUp),"Set prop");
-+	TEST(f->setProperty(KEY_REPLACE_FILE,ionFile,needUp),"Set prop");
-+	s=TRANS(REPLACE_ALGORITHMS[REPLACE_MODE_SUBTRACT]);
-+	TEST(f->setProperty(KEY_REPLACE_ALGORITHM,s,needUp),"Set prop");
-+
-+	//Do the refresh
-+	ProgressData p;
-+	vector<const FilterStreamData*> streamIn,streamOut;
-+	streamIn.push_back(d);
-+	TEST(!f->refresh(streamIn,streamOut,p),"refresh OK");
-+	delete f;
-+	delete d;
-+	streamIn.clear();
-+
-+	TEST(streamOut.size() == 1,"stream count");
-+	TEST(streamOut[0]->getStreamType() == STREAM_TYPE_IONS,"stream type");
-+	TEST(streamOut[0]->getNumBasicObjects() == DIFF_COUNT,"Number objects");
-+
-+	//we should have taken the mass-to-charge from the original data,
-+	// not the file
-+	const IonStreamData *outIons = (const IonStreamData*)streamOut[0];
-+	for(unsigned int ui=0;ui<outIons->getNumBasicObjects(); ui++)
-+	{
-+		ASSERT(outIons->data[ui].getMassToCharge() == 1); 
-+		ASSERT(outIons->data[ui].getPos()[2] >= 0); 
-+	}
-+
-+	wxRemoveFile(ionFile);
-+
-+	delete streamOut[0];
-+	
-+	return true;
-+}
-+
-+bool replaceUnionTest()
-+{
-+	std::string ionFile=createTmpFilename(NULL,".pos");
-+	
-+	//"B" dataset	
-+	vector<IonHit> ions;
-+	ions.push_back(IonHit(Point3D(0,0,0),1));
-+	ions.push_back(IonHit(Point3D(1,0,1),1));
-+	ions.push_back(IonHit(Point3D(0,1,1),1));
-+
-+	IonHit::makePos(ions,ionFile.c_str());
-+	ions.clear();
-+
-+	//"A" dataset	
-+	ions.push_back(IonHit(Point3D(0,0,0),2));
-+	ions.push_back(IonHit(Point3D(1,0,-1),2));
-+	ions.push_back(IonHit(Point3D(0,1,-1),2));
-+
-+
-+	IonStreamData *d = new IonStreamData;
-+	d->data.swap(ions);
-+
-+	//Create a spatial analysis filter
-+	SpatialAnalysisFilter *f=new SpatialAnalysisFilter;
-+	f->setCaching(false);	
- 	
- 	//Set it to do a union calculation 
- 	bool needUp;
-@@ -4644,13 +4878,11 @@
- 	s=TRANS(SPATIAL_ALGORITHMS[ALGORITHM_REPLACE]);
- 	TEST(f->setProperty(KEY_ALGORITHM,s,needUp),"Set prop");
- 	TEST(f->setProperty(KEY_REPLACE_FILE,ionFile,needUp),"Set prop");
--	s=TRANS(REPLACE_ALGORITHMS[REPLACE_MODE_INTERSECT]);
-+	s=TRANS(REPLACE_ALGORITHMS[REPLACE_MODE_UNION]);
- 	TEST(f->setProperty(KEY_REPLACE_ALGORITHM,s,needUp),"Set prop");
--	
- 	s="1";
- 	TEST(f->setProperty(KEY_REPLACE_VALUE,s,needUp),"Set prop");
- 
--
- 	//Do the refresh
- 	ProgressData p;
- 	vector<const FilterStreamData*> streamIn,streamOut;
-@@ -4662,14 +4894,16 @@
- 
- 	TEST(streamOut.size() == 1,"stream count");
- 	TEST(streamOut[0]->getStreamType() == STREAM_TYPE_IONS,"stream type");
--	TEST(streamOut[0]->getNumBasicObjects() == NIONS,"Number objects");
--
--	//we should have taken the mass-to-charge from the file
-+	TEST(streamOut[0]->getNumBasicObjects() == 5,"Number objects");
-+
-+	//There should be
- 	const IonStreamData *outIons = (const IonStreamData*)streamOut[0];
--	for(unsigned int ui=0;ui<NIONS; ui++)
-+	float sumV=0;
-+	for(unsigned int ui=0;ui<outIons->getNumBasicObjects(); ui++)
- 	{
--		ASSERT(outIons->data[ui].getMassToCharge() == 1); 
-+		sumV+=outIons->data[ui].getMassToCharge();
- 	}
-+	TEST( EQ_TOL(sumV,7.0f),"mass-to-charge check");
- 
- 	wxRemoveFile(ionFile);
- 
-@@ -4678,7 +4912,6 @@
- 	return true;
- }
- 
--
- //--- Local concentration tests --
- const IonStreamData *createLCIonStream()
- {
-diff -r d478204af715 -r effd078610a7 src/backend/filters/spectrumPlot.cpp
---- a/src/backend/filters/spectrumPlot.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/spectrumPlot.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -517,6 +517,8 @@
- 	
- 	getOut.push_back(d);
- 
-+	progress.filterProgress=100;
-+
- 	return 0;
- }
- 
-diff -r d478204af715 -r effd078610a7 src/backend/filters/transform.cpp
---- a/src/backend/filters/transform.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/filters/transform.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -998,8 +998,10 @@
- 					break;
- 				}
- 			
-+			}
- 		}
--		}
-+
-+		progress.filterProgress=100;
- 	}
- 	else
- 	{
-@@ -1526,6 +1528,11 @@
- 		case KEY_CROP_MINIMUM:
- 		{
- 			ASSERT(scalarParams.size() ==2);
-+			float tmp;
-+			if(stream_cast(tmp,value) || tmp >=scalarParams[1])
-+				return false;
-+
-+
- 			if(!applyPropertyNow(scalarParams[0],value,needUpdate))
- 				return false;
- 			break;
-@@ -1533,6 +1540,9 @@
- 		case KEY_CROP_MAXIMUM:
- 		{
- 			ASSERT(scalarParams.size() ==2);
-+			float tmp;
-+			if(stream_cast(tmp,value) || tmp <=scalarParams[0])
-+				return false;
- 			if(!applyPropertyNow(scalarParams[1],value,needUpdate))
- 				return false;
- 			break;
-diff -r d478204af715 -r effd078610a7 src/backend/plot.cpp
---- a/src/backend/plot.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/plot.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -29,7 +29,7 @@
- 				NTRANS("Moving avg.")
- 				};
- 
--const char *plotTypeStrings[]= {
-+const char *traceStyleStrings[]= {
- 	NTRANS("Lines"),
- 	NTRANS("Bars"),
- 	NTRANS("Steps"),
-@@ -119,15 +119,15 @@
- string plotString(unsigned int plotMode)
- {
- 	ASSERT(plotMode< PLOT_TYPE_ENUM_END);
--	return TRANS(plotTypeStrings[plotMode]); 
-+	return TRANS(traceStyleStrings[plotMode]); 
- }
- 
- unsigned int plotID(const std::string &plotString)
- {
--	COMPILE_ASSERT(THREEDEP_ARRAYSIZE(plotTypeStrings) == PLOT_TYPE_ENUM_END);
-+	COMPILE_ASSERT(THREEDEP_ARRAYSIZE(traceStyleStrings) == PLOT_TYPE_ENUM_END);
- 	for(unsigned int ui=0;ui<PLOT_TYPE_ENUM_END; ui++)
- 	{
--		if(plotString==TRANS(plotTypeStrings[ui]))
-+		if(plotString==TRANS(traceStyleStrings[ui]))
- 			return ui;
- 	}
- 
-@@ -298,7 +298,7 @@
- 
- PlotWrapper::PlotWrapper()
- {
--	//COMPILE_ASSERT(THREEDEP_ARRAYSIZE(plotTypeStrings) == PLOT_TYPE_ENUM_END);
-+	//COMPILE_ASSERT(THREEDEP_ARRAYSIZE(traceStyleStrings) == PLOT_TYPE_ENUM_END);
- 
- 	applyUserBounds=false;
- 	plotChanged=true;
-@@ -684,6 +684,12 @@
- 	return visibleMode;
- }
- 
-+unsigned int PlotWrapper::getPlotMode(unsigned int plotId) const
-+{
-+	ASSERT(plotId < plottingData.size());
-+	return plottingData[plotId]->getPlotMode();
-+}
-+
- void PlotWrapper::getVisibleIDs(vector<unsigned int> &visiblePlotIDs ) const
- {
- 
-@@ -791,7 +797,7 @@
- 				if(!plottingData[ui]->visible)
- 					continue;
- 
--				if(plottingData[ui]->getType()!= PLOT_MODE_1D)
-+				if(plottingData[ui]->getMode()!= PLOT_MODE_1D)
- 					continue;
- 			
- 				if(((Plot1D*)plottingData[ui])->wantLogPlot()) 
-@@ -809,7 +815,7 @@
- 				float minYVal=0.1;
- 				for(size_t ui=0;ui<plottingData.size();ui++)
- 				{
--					if(!plottingData[ui]->visible || plottingData[ui]->getType() !=PLOT_MODE_1D)
-+					if(!plottingData[ui]->visible || plottingData[ui]->getMode() !=PLOT_MODE_1D)
- 						continue;
- 
- 					float tmp ;
-@@ -929,7 +935,7 @@
- 				Plot2DFunc *curPlot;
- 				curPlot=(Plot2DFunc*)plottingData[ui];
- 
--				if(curPlot->getType() == PLOT_2D_DENS)
-+				if(curPlot->getMode() == PLOT_2D_DENS)
- 				{
- 					wantColourbar=true;
- 				}
-@@ -1047,11 +1053,6 @@
- 	plottingData[plotIDHandler.getPos(plotId)]->regionGroup.getRegion(regionId,region);
- }
- 
--unsigned int PlotWrapper::plotType(unsigned int plotId) const
--{
--	return plottingData[plotIDHandler.getPos(plotId)]->getPlotMode();
--}
--
- 
- void PlotWrapper::moveRegion(unsigned int plotID, unsigned int regionId, bool regionSelfUpdate,
- 		unsigned int movementType, float newX, float newY) const
-@@ -1135,7 +1136,7 @@
- 
- void PlotBase::copyBase(PlotBase *target) const
- {
--	target->plotType=plotType;
-+	target->traceStyle=traceStyle;
- 	target->minX=minX;
- 	target->maxX=maxX;
- 	target->minY=minY;
-@@ -1157,12 +1158,12 @@
- 
- unsigned int PlotBase::getType() const
- {
--	return plotType;
-+	return traceStyle;
- }
- 
- unsigned int PlotBase::getMode() const
- {
--	switch(plotType)
-+	switch(traceStyle)
- 	{
- 		case PLOT_LINE_LINES:
- 		case PLOT_LINE_BARS:
-@@ -1181,7 +1182,7 @@
- Plot1D::Plot1D()
- {
- 	//Set the default plot properties
--	plotType=PLOT_LINE_LINES;
-+	traceStyle=PLOT_LINE_LINES;
- 	plotMode=PLOT_MODE_1D;
- 	xLabel="";
- 	yLabel="";
-@@ -1489,7 +1490,7 @@
- 
- 
- 	//Plot the appropriate form	
--	switch(plotMode)
-+	switch(traceStyle)
- 	{
- 		case PLOT_LINE_LINES:
- 			//Unfortunately, when using line plots, mathgl moves the data points to the plot boundary,
-@@ -1632,7 +1633,7 @@
- Plot2DFunc::Plot2DFunc()
- {
- 	plotMode = PLOT_MODE_2D;
--	plotType=PLOT_2D_DENS;
-+	traceStyle=PLOT_2D_DENS;
- }
- 
- void Plot2DFunc::setData(const Array2D<float> &a,
-@@ -1705,7 +1706,8 @@
- 
- Plot2DScatter::Plot2DScatter()
- {
--	plotType=PLOT_2D_SCATTER;
-+	plotMode=PLOT_2D_SCATTER;
-+	traceStyle=PLOT_LINE_POINTS;
- 	scatterIntensityLog=false;
- }
- 
-diff -r d478204af715 -r effd078610a7 src/backend/plot.h
---- a/src/backend/plot.h	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/plot.h	Tue Jun 21 12:45:20 2016 +0100
-@@ -217,7 +217,7 @@
- class PlotBase
- {
- 	protected:
--		//!Sub type of plot (eg lines, bars for 1D)
-+		//!Type of plot 
- 		unsigned int plotMode;
- 		//!xaxis label
- 		std::string xLabel;
-@@ -229,8 +229,9 @@
- 		//plot colour (for single coloured plots)
- 		float r,g,b;
- 		
--		//The type of plot (ie what class is it?)	
--		unsigned int plotType;
-+		//The sub-style of the plot trace (eg lines, points, bars, etc)
-+		// FIXME: This is badly named, change to traceStyle, or dataStyle, or something
-+		unsigned int traceStyle;
- 		
- 		void copyBase(PlotBase *target) const;
- 
-@@ -297,8 +298,12 @@
- 		void setStrings(const std::string &x, 
- 			const std::string &y,const std::string &t);
- 
-+		//Set the colour of the plot trace
- 		void setColour(float rNew, float gNew, float bNew);
- 
-+		//set the visual style for the trace (dots, lines, etc)
-+		void setTraceStyle(unsigned int newStyle) { traceStyle=newStyle;}
-+
- 		std::string getXLabel() const { return xLabel;}
- 		std::string getTitle() const { return title;}
- 		std::string getYLabel() const { return yLabel;}
-@@ -309,6 +314,7 @@
- 		void setPlotMode(unsigned int newMode) { plotMode= newMode;}
- 
- 
-+		//get the  colour of the trace
- 		void getColour(float &r, float &g, float &b) const ;
- 
- #ifdef DEBUG
-@@ -613,7 +619,7 @@
- 	
- 
- 		//!obtain the type of a plot, given the plot's uniqueID
--		unsigned int plotType(unsigned int plotId) const;
-+		unsigned int getPlotMode(unsigned int plotId) const;
- 
- 		//Retrieve the types of visible plots
- 		unsigned int getVisibleMode() const;
-diff -r d478204af715 -r effd078610a7 src/backend/viscontrol.cpp
---- a/src/backend/viscontrol.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/backend/viscontrol.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -249,7 +249,7 @@
- 						plotData->yLabel,plotData->dataLabel);
- 					
- 					//set the appearance of the plot
--					//plotNew->setTraceStyle(plotStyle);
-+					plotNew->setTraceStyle(plotData->plotStyle);
- 					plotNew->setColour(plotData->r,plotData->g,plotData->b);
- 					
- 					
-@@ -275,7 +275,7 @@
- 					unsigned int plotID;
- 		
- 					PlotBase *plotNew;
--					switch(plotData->plotType) 
-+					switch(plotData->plotStyle) 
- 					{
- 						case PLOT_2D_DENS:
- 						{
-diff -r d478204af715 -r effd078610a7 src/common/basics.cpp
---- a/src/common/basics.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/common/basics.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -1347,7 +1347,8 @@
- 	while(CFile.good() && !CFile.eof() && atHeader)
- 	{
- 		//Grab a line from the file
--		CFile.getline(inBuffer,BUFFER_SIZE);
-+		if(!CFile.getline(inBuffer,BUFFER_SIZE))
-+			break;
- 
- 		if(!CFile.good())
- 			return ERR_FILE_FORMAT;
-@@ -1457,10 +1458,8 @@
- 			
- 		}
- 		//Grab a line from the file
--		CFile.getline(inBuffer,BUFFER_SIZE);
--		
--		if(!CFile.good() && !CFile.eof())
--			return ERR_FILE_FORMAT;
-+		if(!CFile.getline(inBuffer,BUFFER_SIZE))
-+			break;
- 	}
- 
- 	return 0;
-diff -r d478204af715 -r effd078610a7 src/gui/mainFrame.cpp
---- a/src/gui/mainFrame.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/gui/mainFrame.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -1391,7 +1391,7 @@
- 	updateWxTreeCtrl(treeFilters);
- 
- 	if(!noUpdate)
--		return doSceneUpdate(true);
-+		doSceneUpdate(true);
- 
- 	return true;
- }	
-@@ -3834,7 +3834,7 @@
- 	
- }
- 
--bool MainWindowFrame::doSceneUpdate(bool ensureVisible)
-+void MainWindowFrame::doSceneUpdate(bool ensureVisible)
- {
- 	//Update scene
- 	ASSERT(!currentlyUpdatingScene);
-@@ -3864,6 +3864,11 @@
- 	ensureResultVisible=ensureVisible;
- 
- 	ASSERT(!refreshControl);
-+
-+	//Hack to prevent crash on double-refresh
-+	if(refreshControl)
-+		return;
-+
- 	refreshControl = new RefreshController(visControl.state.treeState);
- 	refreshThread=new RefreshThread(this,refreshControl);
- 	progressTimer->Start(PROGRESS_TIMER_DELAY);
-@@ -3871,7 +3876,8 @@
- 	refreshThread->Create();
- 	refreshThread->Run();
- 
--	return true;
-+	cerr << "Updating scene complete"<< endl;
-+	return;
- }
- 
- void MainWindowFrame::updateWxTreeCtrl( wxTreeCtrl *t, const Filter *f)
-@@ -3971,6 +3977,11 @@
- 	ASSERT(!visControl.state.treeState.isRefreshing());
- 	progressTimer->Stop();
- 
-+	//Hack to prevent crash on re-entry during refresh. Should never trigger.
-+	if(!refreshControl)
-+		return;
-+
-+
- 	vector<std::pair<const Filter*, std::string> > consoleMessages;
- 	consoleMessages=refreshControl->getConsoleMessages();
- 
-diff -r d478204af715 -r effd078610a7 src/gui/mainFrame.h
---- a/src/gui/mainFrame.h	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/gui/mainFrame.h	Tue Jun 21 12:45:20 2016 +0100
-@@ -124,7 +124,7 @@
- 	//!Update the progress information in the status bar
- 	void updateProgressStatus();
- 	//!Perform an update to the 3D Scene. Returns false if refresh failed
--	bool doSceneUpdate(bool ensureResultVisible=false);
-+	void doSceneUpdate(bool ensureResultVisible=false);
- 	
- 	//!Complete the scene update. Returns false if failed
- 	void finishSceneUpdate(unsigned int errCode);
-diff -r d478204af715 -r effd078610a7 src/gui/mathglPane.cpp
---- a/src/gui/mathglPane.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/gui/mathglPane.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -627,7 +627,7 @@
- 			thePlot->getRegion(plotId,regionId,r);
- 
- 			//TODO: Implement a more generic region handler?
--			ASSERT(thePlot->plotType(plotId) == PLOT_MODE_1D);
-+			ASSERT(thePlot->getPlotMode(plotId) == PLOT_MODE_1D);
- 
- 			float mglStartX,mglStartY;
- 			toPlotCoords(draggingStart.x, draggingStart.y,mglStartX,mglStartY);
-@@ -1471,7 +1471,7 @@
- 		return;
- 
- 
--	ASSERT(thePlot->plotType(startMousePlot) == PLOT_MODE_1D);
-+	ASSERT(thePlot->getPlotMode(startMousePlot) == PLOT_MODE_1D);
- 
- 	//See where extending the region is allowed up to.
- 	thePlot->findRegionLimit(startMousePlot,startMouseRegion,
-@@ -1550,7 +1550,7 @@
- 		{
- 			//This needs to be extended to support more
- 			//plot types.
--			ASSERT(thePlot->plotType(startMousePlot) == PLOT_MODE_1D);
-+			ASSERT(thePlot->getPlotMode(startMousePlot) == PLOT_MODE_1D);
- 			
- 			//Draw "ghost" limits markers for move,
- 			//these appear as moving vertical bars to outline
-diff -r d478204af715 -r effd078610a7 src/wx/wxcomponents.cpp
---- a/src/wx/wxcomponents.cpp	Mon Jun 27 11:07:17 2016 +0100
-+++ b/src/wx/wxcomponents.cpp	Tue Jun 21 12:45:20 2016 +0100
-@@ -188,14 +188,14 @@
- 
- void CopyGrid::saveData()
- {
--	wxFileDialog *wxF = new wxFileDialog(this,TRANS("Save Data..."), wxT(""),
-+	wxFileDialog wxF(this,TRANS("Save Data..."), wxT(""),
- 		wxT(""),TRANS("Text File (*.txt)|*.txt|All Files (*)|*"),wxFD_SAVE);
- 
--	if( (wxF->ShowModal() == wxID_CANCEL))
-+	if( (wxF.ShowModal() == wxID_CANCEL))
- 		return;
- 	
- 
--	std::string dataFile = stlStr(wxF->GetPath());
-+	std::string dataFile = stlStr(wxF.GetPath());
- 	ofstream f(dataFile.c_str());
- 
- 	if(!f)
diff --git a/debian/patches/series b/debian/patches/series
index e898cbe..2b9da52 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
-diff_0.0.19_to_effd078610a7
 debian-desktop-naming.patch
 lowercase-textdomain.patch
 desktop-category.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/3depict.git



More information about the debian-science-commits mailing list