IMetaTriangleSelector.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright (C) 2002-2012 Nikolaus Gebhardt
  2. // This file is part of the "Irrlicht Engine".
  3. // For conditions of distribution and use, see copyright notice in irrlicht.h
  4. #ifndef IRR_I_META_TRIANGLE_SELECTOR_H_INCLUDED
  5. #define IRR_I_META_TRIANGLE_SELECTOR_H_INCLUDED
  6. #include "ITriangleSelector.h"
  7. namespace irr
  8. {
  9. namespace scene
  10. {
  11. //! Interface for making multiple triangle selectors work as one big selector.
  12. /** This is nothing more than a collection of one or more triangle selectors
  13. providing together the interface of one triangle selector. In this way,
  14. collision tests can be done with different triangle soups in one pass.
  15. */
  16. class IMetaTriangleSelector : public ITriangleSelector
  17. {
  18. public:
  19. //! Adds a triangle selector to the collection of triangle selectors.
  20. /** \param toAdd: Pointer to an triangle selector to add to the list. */
  21. virtual void addTriangleSelector(ITriangleSelector* toAdd) = 0;
  22. //! Removes a specific triangle selector from the collection.
  23. /** \param toRemove: Pointer to an triangle selector which is in the
  24. list but will be removed.
  25. \return True if successful, false if not. */
  26. virtual bool removeTriangleSelector(ITriangleSelector* toRemove) = 0;
  27. //! Removes all triangle selectors from the collection.
  28. virtual void removeAllTriangleSelectors() = 0;
  29. };
  30. } // end namespace scene
  31. } // end namespace irr
  32. #endif