Pyrogenesis trunk
Public Member Functions | Private Member Functions | Private Attributes | List of all members
SkipControlGroupsRequireFlagObstructionFilter Class Reference

Obstruction test filter that will test only against shapes that: More...

#include <ICmpObstructionManager.h>

Inheritance diagram for SkipControlGroupsRequireFlagObstructionFilter:
Inheritance graph
[legend]
Collaboration diagram for SkipControlGroupsRequireFlagObstructionFilter:
Collaboration graph
[legend]

Public Member Functions

 SkipControlGroupsRequireFlagObstructionFilter (bool exclude, entity_id_t group1, entity_id_t group2, flags_t mask)
 
 SkipControlGroupsRequireFlagObstructionFilter (entity_id_t group1, entity_id_t group2, flags_t mask)
 
virtual bool TestShape (tag_t tag, flags_t flags, entity_id_t group, entity_id_t group2) const
 Return true if the shape with the specified parameters should be tested for collisions. More...
 
- Public Member Functions inherited from IObstructionTestFilter
virtual ~IObstructionTestFilter ()
 
virtual bool TestShape (tag_t tag, flags_t flags, entity_id_t group, entity_id_t group2) const =0
 Return true if the shape with the specified parameters should be tested for collisions. More...
 

Private Member Functions

void Init ()
 

Private Attributes

bool m_Exclude
 
entity_id_t m_Group
 
entity_id_t m_Group2
 
flags_t m_Mask
 

Additional Inherited Members

- Public Types inherited from IObstructionTestFilter
typedef ICmpObstructionManager::tag_t tag_t
 
typedef ICmpObstructionManager::flags_t flags_t
 

Detailed Description

Obstruction test filter that will test only against shapes that:

The first (primary) control group to reject shapes from must be specified and valid. The secondary control group to reject entities from may be set to INVALID_ENTITY to not use it.

This filter is useful to e.g. allow foundations within the same control group to be placed and constructed arbitrarily close together (e.g. for wall pieces that need to link up tightly).

Constructor & Destructor Documentation

◆ SkipControlGroupsRequireFlagObstructionFilter() [1/2]

SkipControlGroupsRequireFlagObstructionFilter::SkipControlGroupsRequireFlagObstructionFilter ( bool  exclude,
entity_id_t  group1,
entity_id_t  group2,
flags_t  mask 
)
inline

◆ SkipControlGroupsRequireFlagObstructionFilter() [2/2]

SkipControlGroupsRequireFlagObstructionFilter::SkipControlGroupsRequireFlagObstructionFilter ( entity_id_t  group1,
entity_id_t  group2,
flags_t  mask 
)
inline

Member Function Documentation

◆ Init()

void SkipControlGroupsRequireFlagObstructionFilter::Init ( )
inlineprivate

◆ TestShape()

virtual bool SkipControlGroupsRequireFlagObstructionFilter::TestShape ( tag_t  tag,
flags_t  flags,
entity_id_t  group,
entity_id_t  group2 
) const
inlinevirtual

Return true if the shape with the specified parameters should be tested for collisions.

This is called for all shapes that would collide, and also for some that wouldn't.

Parameters
tagtag of shape being tested
flagsset of EFlags for the shape
groupthe control group of the shape (typically the shape's unit, or the unit's formation controller, or 0)
group2an optional secondary control group of the shape, or INVALID_ENTITY if none specified. Currently exists only for static shapes.

Implements IObstructionTestFilter.

Member Data Documentation

◆ m_Exclude

bool SkipControlGroupsRequireFlagObstructionFilter::m_Exclude
private

◆ m_Group

entity_id_t SkipControlGroupsRequireFlagObstructionFilter::m_Group
private

◆ m_Group2

entity_id_t SkipControlGroupsRequireFlagObstructionFilter::m_Group2
private

◆ m_Mask

flags_t SkipControlGroupsRequireFlagObstructionFilter::m_Mask
private

The documentation for this class was generated from the following file: