Browse Source

add indirectLess

David Rose 24 years ago
parent
commit
4d96148508
3 changed files with 72 additions and 1 deletions
  1. 3 1
      panda/src/putil/Sources.pp
  2. 29 0
      panda/src/putil/indirectLess.I
  3. 40 0
      panda/src/putil/indirectLess.h

+ 3 - 1
panda/src/putil/Sources.pp

@@ -19,6 +19,7 @@
      globalPointerRegistry.I globalPointerRegistry.h \
      indirectCompareNames.I indirectCompareNames.h \
      indirectCompareTo.I indirectCompareTo.h \
+     indirectLess.I indirectLess.h \
      ioPtaDatagramFloat.h ioPtaDatagramInt.h \
      ioPtaDatagramShort.h keyboardButton.h lineStream.I \
      lineStream.h lineStreamBuf.I lineStreamBuf.h \
@@ -64,7 +65,8 @@
     globPattern.I globPattern.h \
     globalPointerRegistry.I globalPointerRegistry.h \
     indirectCompareNames.I indirectCompareNames.h indirectCompareTo.I \
-    indirectCompareTo.h ioPtaDatagramFloat.h ioPtaDatagramInt.h \
+    indirectCompareTo.h indirectLess.I indirectLess.h \
+    ioPtaDatagramFloat.h ioPtaDatagramInt.h \
     ioPtaDatagramShort.h iterator_types.h keyboardButton.h lineStream.I \
     lineStream.h lineStreamBuf.I lineStreamBuf.h modifierButtons.I \
     modifierButtons.h mouseButton.h mouseData.h nameUniquifier.I \

+ 29 - 0
panda/src/putil/indirectLess.I

@@ -0,0 +1,29 @@
+// Filename: indirectLess.I
+// Created by:  drose (27Jun01)
+//
+////////////////////////////////////////////////////////////////////
+//
+// PANDA 3D SOFTWARE
+// Copyright (c) 2001, Disney Enterprises, Inc.  All rights reserved
+//
+// All use of this software is subject to the terms of the Panda 3d
+// Software license.  You should have received a copy of this license
+// along with this source code; you will also find a current copy of
+// the license at http://www.panda3d.org/license.txt .
+//
+// To contact the maintainers of this program write to
+// [email protected] .
+//
+////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////////
+//     Function: IndirectLess::operator ()
+//       Access: Public
+//  Description: Returns true if a sorts before b, false otherwise.
+////////////////////////////////////////////////////////////////////
+template<class ObjectType>
+INLINE bool IndirectLess<ObjectType>::
+operator () (const ObjectType *a, const ObjectType *b) const {
+  return (a != b && (*a) < (*b));
+}

+ 40 - 0
panda/src/putil/indirectLess.h

@@ -0,0 +1,40 @@
+// Filename: indirectLess.h
+// Created by:  drose (27Jun01)
+//
+////////////////////////////////////////////////////////////////////
+//
+// PANDA 3D SOFTWARE
+// Copyright (c) 2001, Disney Enterprises, Inc.  All rights reserved
+//
+// All use of this software is subject to the terms of the Panda 3d
+// Software license.  You should have received a copy of this license
+// along with this source code; you will also find a current copy of
+// the license at http://www.panda3d.org/license.txt .
+//
+// To contact the maintainers of this program write to
+// [email protected] .
+//
+////////////////////////////////////////////////////////////////////
+
+#ifndef INDIRECTLESS_H
+#define INDIRECTLESS_H
+
+#include <pandabase.h>
+
+////////////////////////////////////////////////////////////////////
+//       Class : IndirectLess
+// Description : An STL function object class, this is intended to be
+//               used on any ordered collection of pointers to classes
+//               that contain an operator <() method.  It defines the
+//               order of the pointers via operator <().
+////////////////////////////////////////////////////////////////////
+template<class ObjectType>
+class IndirectLess {
+public:
+  INLINE bool operator () (const ObjectType *a, const ObjectType *b) const;
+};
+
+#include "indirectLess.I"
+
+#endif
+