Example #1
0
        public override float AddSingleResult(ref LocalRayResult r, bool b)
        {
            LocalShapeInfo shapeInfo = new LocalShapeInfo();
            shapeInfo.m_shapePart = -1;
            shapeInfo.m_triangleIndex = m_i;
            r.m_localShapeInfo = shapeInfo;
            //if (r.m_localShapeInfo == null)
            //{
            //    r.m_localShapeInfo = shapeInfo;
            //}
            float result = m_userCallback.AddSingleResult(ref r, b);
            m_closestHitFraction = m_userCallback.m_closestHitFraction;

            return result;
        }
Example #2
0
        public override float ReportHit(ref IndexedVector3 hitNormalLocal, ref IndexedVector3 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,
                    ref shapeInfo,
                    ref hitNormalLocal,
                    ref hitPointLocal,
                    hitFraction);

                bool normalInWorldSpace = m_triangleMesh is TriangleMeshShape;
                return m_resultCallback.AddSingleResult(ref convexResult, normalInWorldSpace);
            }
            return hitFraction;
        }
Example #3
0
 public LocalConvexResult(CollisionObject hitCollisionObject,
     ref IndexedVector3 hitNormalLocal,
     ref IndexedVector3 hitPointLocal,
     float hitFraction
     )
 {
     m_hitCollisionObject = hitCollisionObject;
     m_hitNormalLocal = hitNormalLocal;
     m_hitPointLocal = hitPointLocal;
     m_hitFraction = hitFraction;
     m_localShapeInfo = new LocalShapeInfo();
 }
Example #4
0
        public override float ReportHit(ref IndexedVector3 hitNormalLocal, float hitFraction, int partId, int triangleIndex)
        {
            LocalShapeInfo shapeInfo = new LocalShapeInfo();
            shapeInfo.m_shapePart = partId;
            shapeInfo.m_triangleIndex = triangleIndex;

            IndexedVector3 hitNormalWorld = m_colObjWorldTransform._basis * hitNormalLocal;

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

            bool normalInWorldSpace = true;
            return m_resultCallback.AddSingleResult(ref rayResult, normalInWorldSpace);
        }
Example #5
0
 public LocalRayResult(CollisionObject collisionObject,
     ref IndexedVector3 hitNormalLocal,
     float hitFraction)
 {
     m_collisionObject = collisionObject;
     m_hitNormalLocal = hitNormalLocal;
     m_hitFraction = hitFraction;
     m_localShapeInfo = new LocalShapeInfo();
 }