Class CollisionScenePart#

Inheritance Relationships#

Base Types#

Derived Type#

Class Documentation#

class CollisionScenePart : public virtual Karana::Scene::CollisionSceneNode, public Karana::Scene::ScenePart#

ScenePart with added collision-specific interface.

See Scene layer for more discussion on the scene layer.

Subclassed by Karana::Scene::CoalScenePart

Public Functions

virtual ~CollisionScenePart()#
virtual const CollisionInfo &collide(const CollisionScenePart &other, CollisionInfo &result = CollisionInfo::singleton()) const = 0#

Check for collisions with another part.

Parameters:
  • other – - The other CollisionPart

  • result – - The CollisionInfo instance to store the result in.

Returns:

The CollisionInfo result.

virtual const DistanceInfo &distance(const CollisionScenePart &other, DistanceInfo &result = DistanceInfo::singleton()) const = 0#

Compute distance from another part.

Parameters:
  • other – - The other CollisionPart

  • result – - The DistanceInfo instance to store the result in.

Returns:

The DistanceInfo result.

Public Static Functions

static Karana::Core::ks_ptr<CollisionScenePart> create(std::string_view name, const VarStaticGeometry &geometry, const Karana::Core::ks_ptr<CollisionScene> &scene, const VarMaterial &material = defaultMaterial(), layer_t layers = LAYER_PHYSICAL)#

Create a CollisionScenePart.

Parameters:
Returns:

The new scene part.

Protected Functions

CollisionScenePart(std::string_view name, const VarStaticGeometry &geometry, const VarMaterial &material, layer_t layers, const kc::ks_ptr<Scene> &scene)#

CollisionScenePart constructor.

Parameters: