/// <summary>
 /// Write instruction operands into bytecode stream.
 /// </summary>
 /// <param name="writer">Bytecode writer.</param>
 public override void WriteOperands(WordWriter writer)
 {
     RayQuery.Write(writer);
     Accel.Write(writer);
     RayFlags.Write(writer);
     CullMask.Write(writer);
     RayOrigin.Write(writer);
     RayTMin.Write(writer);
     RayDirection.Write(writer);
     RayTMax.Write(writer);
 }
Example #2
0
 /// <summary>
 /// Write instruction operands into bytecode stream.
 /// </summary>
 /// <param name="writer">Bytecode writer.</param>
 public override void WriteOperands(WordWriter writer)
 {
     Accel.Write(writer);
     RayFlags.Write(writer);
     CullMask.Write(writer);
     SBTOffset.Write(writer);
     SBTStride.Write(writer);
     MissIndex.Write(writer);
     RayOrigin.Write(writer);
     RayTmin.Write(writer);
     RayDirection.Write(writer);
     RayTmax.Write(writer);
     PayloadId.Write(writer);
 }
        /// <summary>
        /// Calculate number of words to fit complete instruction bytecode.
        /// </summary>
        /// <returns>Number of words in instruction bytecode.</returns>
        public override uint GetWordCount()
        {
            uint wordCount = 0;

            wordCount += RayQuery.GetWordCount();
            wordCount += Accel.GetWordCount();
            wordCount += RayFlags.GetWordCount();
            wordCount += CullMask.GetWordCount();
            wordCount += RayOrigin.GetWordCount();
            wordCount += RayTMin.GetWordCount();
            wordCount += RayDirection.GetWordCount();
            wordCount += RayTMax.GetWordCount();
            return(wordCount);
        }
Example #4
0
        /// <summary>
        /// Calculate number of words to fit complete instruction bytecode.
        /// </summary>
        /// <returns>Number of words in instruction bytecode.</returns>
        public override uint GetWordCount()
        {
            uint wordCount = 0;

            wordCount += Accel.GetWordCount();
            wordCount += RayFlags.GetWordCount();
            wordCount += CullMask.GetWordCount();
            wordCount += SBTOffset.GetWordCount();
            wordCount += SBTStride.GetWordCount();
            wordCount += MissIndex.GetWordCount();
            wordCount += RayOrigin.GetWordCount();
            wordCount += RayTmin.GetWordCount();
            wordCount += RayDirection.GetWordCount();
            wordCount += RayTmax.GetWordCount();
            wordCount += PayloadId.GetWordCount();
            return(wordCount);
        }
Example #5
0
        public static RaycastHit Cast(Vector3 position, Vector3 direction, float distance, EntityQueryFlags flags, RayFlags rayFlags, int maxHits)
        {
            var rayHit = new ray_hit();
            var hits   = Engine.PhysicalWorld.RayWorldIntersection(position, direction * distance, (int)flags, (uint)rayFlags, rayHit, maxHits);

            return(new RaycastHit(rayHit, hits));
        }