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 ()
 

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::SkipControlGroupsRequireFlagObstructionFilter ( bool  exclude,
entity_id_t  group1,
entity_id_t  group2,
flags_t  mask 
)
inline
SkipControlGroupsRequireFlagObstructionFilter::SkipControlGroupsRequireFlagObstructionFilter ( entity_id_t  group1,
entity_id_t  group2,
flags_t  mask 
)
inline

Member Function Documentation

void SkipControlGroupsRequireFlagObstructionFilter::Init ( )
inlineprivate
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

bool SkipControlGroupsRequireFlagObstructionFilter::m_Exclude
private
entity_id_t SkipControlGroupsRequireFlagObstructionFilter::m_Group
private
entity_id_t SkipControlGroupsRequireFlagObstructionFilter::m_Group2
private
flags_t SkipControlGroupsRequireFlagObstructionFilter::m_Mask
private

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