2019-12-12 17:32:41 +01:00
|
|
|
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
|
|
|
// This file is part of the "Irrlicht Engine".
|
|
|
|
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
|
|
|
|
2021-08-27 17:03:34 +02:00
|
|
|
#ifndef IRR_I_META_TRIANGLE_SELECTOR_H_INCLUDED
|
|
|
|
#define IRR_I_META_TRIANGLE_SELECTOR_H_INCLUDED
|
2019-12-12 17:32:41 +01:00
|
|
|
|
|
|
|
#include "ITriangleSelector.h"
|
|
|
|
|
|
|
|
namespace irr
|
|
|
|
{
|
|
|
|
namespace scene
|
|
|
|
{
|
|
|
|
|
|
|
|
//! Interface for making multiple triangle selectors work as one big selector.
|
|
|
|
/** This is nothing more than a collection of one or more triangle selectors
|
|
|
|
providing together the interface of one triangle selector. In this way,
|
|
|
|
collision tests can be done with different triangle soups in one pass.
|
|
|
|
*/
|
|
|
|
class IMetaTriangleSelector : public ITriangleSelector
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
//! Adds a triangle selector to the collection of triangle selectors.
|
|
|
|
/** \param toAdd: Pointer to an triangle selector to add to the list. */
|
|
|
|
virtual void addTriangleSelector(ITriangleSelector* toAdd) = 0;
|
|
|
|
|
|
|
|
//! Removes a specific triangle selector from the collection.
|
|
|
|
/** \param toRemove: Pointer to an triangle selector which is in the
|
|
|
|
list but will be removed.
|
|
|
|
\return True if successful, false if not. */
|
|
|
|
virtual bool removeTriangleSelector(ITriangleSelector* toRemove) = 0;
|
|
|
|
|
|
|
|
//! Removes all triangle selectors from the collection.
|
|
|
|
virtual void removeAllTriangleSelectors() = 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // end namespace scene
|
|
|
|
} // end namespace irr
|
|
|
|
|
|
|
|
#endif
|