Beispiel #1
0
		public LocalRayResult(CollisionObject	collisionObject, 
		                      LocalShapeInfo	localShapeInfo,
		                      ref Vector3	hitNormalLocal,
		                      float hitFraction)
		{
			m_collisionObject = collisionObject;
			m_localShapeInfo = localShapeInfo;
			m_hitNormalLocal = hitNormalLocal;
			m_hitFraction = hitFraction;
		}
Beispiel #2
0
		public LocalConvexResult(CollisionObject hitCollisionObject, 
		                         LocalShapeInfo	localShapeInfo,
		                         ref Vector3 hitNormalLocal,
		                         ref Vector3 hitPointLocal,
		                         float hitFraction
			)
		{
			m_hitCollisionObject = hitCollisionObject;
			m_localShapeInfo = localShapeInfo;
			m_hitNormalLocal = hitNormalLocal;
			m_hitPointLocal = hitPointLocal;
			m_hitFraction = hitFraction;
		}
		public override float ReportHit(ref Vector3 hitNormalLocal, float hitFraction, int partId, int triangleIndex)
		{
			LocalShapeInfo shapeInfo = new LocalShapeInfo();
			shapeInfo.m_shapePart = partId;
			shapeInfo.m_triangleIndex = triangleIndex;

			Vector3 hitNormalWorld = Vector3.TransformNormal(hitNormalLocal,m_colObjWorldTransform);

			LocalRayResult rayResult = new LocalRayResult
				(m_collisionObject,
				 shapeInfo,
				 ref hitNormalWorld,
				 hitFraction);

			bool normalInWorldSpace = true;
			return m_resultCallback.AddSingleResult(rayResult, normalInWorldSpace);
		}
		public override float ReportHit(ref Vector3 hitNormalLocal, ref Vector3 hitPointLocal, float hitFraction, int partId, int triangleIndex )
		{
			LocalShapeInfo shapeInfo = new LocalShapeInfo();
			shapeInfo.m_shapePart = partId;
			shapeInfo.m_triangleIndex = triangleIndex;
			if (hitFraction <= m_resultCallback.m_closestHitFraction)
			{
				LocalConvexResult convexResult = new LocalConvexResult
					(m_collisionObject,
					 shapeInfo,
					 ref hitNormalLocal,
					 ref hitPointLocal,
					 hitFraction);

				bool normalInWorldSpace = true;
				return m_resultCallback.AddSingleResult(convexResult,normalInWorldSpace);
			}
			return hitFraction;
		}