PrimitiveRestartIndex 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
  2. *
  3. * This library is open source and may be redistributed and/or modified under
  4. * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
  5. * (at your option) any later version. The full license is in LICENSE file
  6. * included with this distribution, and on the openscenegraph.org website.
  7. *
  8. * This library is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * OpenSceneGraph Public License for more details.
  12. */
  13. #ifndef OSG_PRIMITIVERESTARTINDEX
  14. #define OSG_PRIMITIVERESTARTINDEX 1
  15. #include <osg/StateAttribute>
  16. namespace osg {
  17. /**
  18. * osg::PrimitiveRestartIndex does nothing if OpenGL 3.1 is not available.
  19. */
  20. class OSG_EXPORT PrimitiveRestartIndex : public StateAttribute
  21. {
  22. public :
  23. PrimitiveRestartIndex();
  24. PrimitiveRestartIndex(unsigned int restartIndex);
  25. /** Copy constructor using CopyOp to manage deep vs shallow copy.*/
  26. PrimitiveRestartIndex(const PrimitiveRestartIndex& primitiveRestartIndex,const CopyOp& copyop=CopyOp::SHALLOW_COPY);
  27. META_StateAttribute(osg, PrimitiveRestartIndex, PRIMITIVERESTARTINDEX)
  28. /** return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.*/
  29. virtual int compare(const StateAttribute& sa) const;
  30. inline void setRestartIndex(unsigned int restartIndex ) { _restartIndex = restartIndex; }
  31. inline unsigned int getRestartIndex() const { return _restartIndex; }
  32. virtual void apply(State& state) const;
  33. protected:
  34. virtual ~PrimitiveRestartIndex();
  35. unsigned int _restartIndex;
  36. };
  37. }
  38. #endif