Exemplo n.º 1
0
        #pragma warning restore 465

        public static IntPtr NewScene(SceneFlags flags,
                                      AlgorithmFlags aFlags)
        {
            var retval = NativeMethods.rtcNewScene(flags,
                                                   aFlags);

            CheckLastError();
            return(retval);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Performs an occlusion query on this scene.
        /// </summary>
        /// <param name="ray">The ray structure to use.</param>
        /// <param name="activityMask">The ray activity mask.</param>
        public unsafe void Occlusion16(RayStruct16 *ray, uint *activityMask)
        {
            #if DEBUG
            CheckDisposed();

            if (!AlgorithmFlags.HasFlag(AlgorithmFlags.Intersect16))
            {
                throw new InvalidOperationException("AlgorithmFlags.Intersect16 not set.");
            }
            #endif

            RTC.Occluded16(activityMask, NativePtr, ray);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Performs an occlusion query on this scene.
        /// </summary>
        /// <param name="ray">The ray structure to use.</param>
        public unsafe void Occlusion(RayStruct1 *ray)
        {
            #if DEBUG
            CheckDisposed();

            if (!AlgorithmFlags.HasFlag(AlgorithmFlags.Intersect1))
            {
                throw new InvalidOperationException("AlgorithmFlags.Intersect1 not set.");
            }
            #endif

            RTC.Occluded(NativePtr, ray);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Instantiates a new scene with the given scene and algorithm flags.
        /// </summary>
        /// <param name="sceneFlags">The scene flags to use.</param>
        /// <param name="algorithmFlags">The algorithm flags to use.</param>
        public Scene(SceneFlags sceneFlags = SceneFlags.Dynamic
                     | SceneFlags.Coherent,
                     AlgorithmFlags algorithmFlags = AlgorithmFlags.Intersect1
                     | AlgorithmFlags.Intersect4)
        {
            if (!sceneFlags.HasFlag(SceneFlags.Dynamic))
            {
                sceneFlags |= SceneFlags.Dynamic;
            }

            this.sceneFlags     = sceneFlags;
            this.algorithmFlags = algorithmFlags;
            this.nativePtr      = RTC.NewScene(SceneFlags,
                                               AlgorithmFlags);
        }
Exemplo n.º 5
0
 public static extern IntPtr rtcNewScene(SceneFlags flags,
                                         AlgorithmFlags aFlags);