/*
This work is part of the Core Imaging Library developed by
Visual Analytics and Imaging System Group of the Science Technology
Facilities Council, STFC

Copyright 2003 Hamish Carr
Copyright 2017 Srikanth Nagella, Edoardo Pasca

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
//	IsoSurface II
//	Hamish Carr, 2003

//	PriorityIndex.h:		class representing an indirect pointer for a Priority Queue

//	little class for working with a priority queue
	
class PriorityIndex
	{ // class PriorityIndex
	public:
	long index;													//	index to the item this entry represents
	long priority;													//	the priority of the item

	PriorityIndex(long Index, long Priority)							//	constructor
		{ // constructor
		index = Index;
		priority = Priority;
		} // constructor
	}; // class PriorityIndex

//	the comparison class necessary for the STL to work
//	uses greater than to get priority queue removing low numbers first
class PriorityCompare
	{ // class PriorityCompare
	public:
	bool operator () (PriorityIndex index1, PriorityIndex index2)			//	comparison operator
		{ // comparison operator
		return index1.priority > index2.priority;						//	pretty straightforward
		} // comparison operator
	}; // class PriorityCompare

