#pragma warning restore 465 public static IntPtr NewScene(SceneFlags flags, AlgorithmFlags aFlags) { var retval = NativeMethods.rtcNewScene(flags, aFlags); CheckLastError(); return(retval); }
/// <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); }
/// <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); }
/// <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); }
public static extern IntPtr rtcNewScene(SceneFlags flags, AlgorithmFlags aFlags);