7 #ifndef __surface_SurfacePlane_h__ 8 #define __surface_SurfacePlane_h__ 29 public SurfaceDisk::Impact,
35 #if FE_COUNTED_STORE_TRACKER 36 setName(
"SurfaceDisk::Impact");
39 virtual ~Impact(
void) {}
47 return m_intersection;
70 using SurfaceDisk::nearestPoint;
74 Real a_maxDistance)
const 79 m_center,m_span,m_radius,
81 if(a_maxDistance>0.0 && distance>a_maxDistance)
86 spImpact->setSurface(
this);
87 spImpact->setLocationLocal(m_center);
88 spImpact->setAxis(m_span/m_range);
89 spImpact->setRadius(m_radius);
90 spImpact->setOrigin(a_origin);
91 spImpact->setDirection(direction);
92 spImpact->setDistance(distance);
96 using SurfaceDisk::rayImpact;
100 Real a_maxDistance,BWORD a_anyHit)
const 104 m_center,m_span,m_radius,
105 a_origin,a_direction);
106 if(a_maxDistance>0.0 && distance>a_maxDistance)
112 spImpact->setSurface(
this);
113 spImpact->setLocationLocal(m_center);
114 spImpact->setAxis(m_span/m_range);
115 spImpact->setRadius(m_radius);
116 spImpact->setOrigin(a_origin);
117 spImpact->setDirection(a_direction);
118 spImpact->setDistance(distance);
122 using SurfaceDisk::draw;
129 virtual void resolveImpact(
sp<ImpactI> a_spImpactI)
const 138 spImpact->locationLocal(),
142 spImpact->direction(),
143 spImpact->distance(),
146 spImpact->setIntersectionLocal(intersection);
147 spImpact->setNormalLocal(normal);
Flat Circular Surface.
Definition: SurfaceDisk.h:20
Find intersection between ray and plane.
Definition: RayPlaneIntersect.h:21
Base class providing protection counting for cp<>
Definition: Protectable.h:28
kernel
Definition: namespace.dox:3
Special vector for color (RGBA)
Definition: Color.h:21
Planar Surface.
Definition: SurfacePlane.h:23
Intrusive Smart Pointer.
Definition: src/core/ptr.h:53
Find point nearest to a circular solid.
Definition: PointPlaneNearest.h:21
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192