private static IntPtr CreateBasedOn(IRGenerator basedOn, string name) { IntPtr handle; int status = SafeNativeMethods.xnCreateMockNodeBasedOn(basedOn.Context.InternalObject, basedOn.InternalObject, name, out handle); WrapperUtils.ThrowOnError(status); return handle; }
private static IntPtr CreateBasedOn(IRGenerator basedOn, string name) { IntPtr handle; int status = SafeNativeMethods.xnCreateMockNodeBasedOn(basedOn.Context.InternalObject, basedOn.InternalObject, name, out handle); WrapperUtils.ThrowOnError(status); return(handle); }
private ProductionNode CreateProductionNodeObject(IntPtr nodeHandle, NodeType? type) { lock (this) { if (!this.allNodes.ContainsKey(nodeHandle)) { if (type == null) { IntPtr pNodeInfo = SafeNativeMethods.xnGetNodeInfo(nodeHandle); type = NodeInfo.FromNative(pNodeInfo).Description.Type; } ProductionNode node; switch (type) { case NodeType.Device: node = new Device(this, nodeHandle, true); break; case NodeType.Depth: node = new DepthGenerator(this, nodeHandle, true); break; case NodeType.Image: node = new ImageGenerator(this, nodeHandle, true); break; case NodeType.Audio: node = new AudioGenerator(this, nodeHandle, true); break; case NodeType.IR: node = new IRGenerator(this, nodeHandle, true); break; case NodeType.User: node = new UserGenerator(this, nodeHandle, true); break; case NodeType.Recorder: node = new Recorder(this, nodeHandle, true); break; case NodeType.Player: node = new Player(this, nodeHandle, true); break; case NodeType.Gesture: node = new GestureGenerator(this, nodeHandle, true); break; case NodeType.Scene: node = new SceneAnalyzer(this, nodeHandle, true); break; case NodeType.Hands: node = new HandsGenerator(this, nodeHandle, true); break; case NodeType.Codec: node = new Codec(this, nodeHandle, true); break; case NodeType.ProductionNode: node = new ProductionNode(this, nodeHandle, true); break; case NodeType.Generator: node = new Generator(this, nodeHandle, true); break; case NodeType.MapGenerator: node = new MapGenerator(this, nodeHandle, true); break; case NodeType.ScriptNode: node = new ScriptNode(this, nodeHandle, true); break; default: throw new NotImplementedException("C# wrapper: Unknown generator type!"); } this.allNodes[nodeHandle] = node; } return this.allNodes[nodeHandle]; } // lock }
private string InitialiseImage() { string messages = ""; MapOutputMode imageMode = new MapOutputMode(); imageMode.XRes = FSize.Width; imageMode.YRes = FSize.Height; imageMode.FPS = 30; if (Mode == ImageNodeMode.RGB) { if (FIRGenerator != null) { FIRGenerator.StopGenerating(); FIRGenerator.Dispose(); } FRGBGenerator = new ImageGenerator(FState.Context); FRGBGenerator.MapOutputMode = imageMode; Image.Image.Initialise(FSize, TColorFormat.RGB8); if (FState.DepthGenerator.AlternativeViewpointCapability.IsViewpointSupported(FRGBGenerator)) { FState.DepthGenerator.AlternativeViewpointCapability.SetViewpoint(FRGBGenerator); } else { messages += "AlternativeViewportCapability not supported\n"; } FRGBGenerator.StartGenerating(); } else { if (FRGBGenerator != null) { FRGBGenerator.StopGenerating(); FRGBGenerator.Dispose(); } FIRGenerator = new IRGenerator(FState.Context); FIRGenerator.MapOutputMode = imageMode; FIRGenerator.StartGenerating(); Image.Image.Initialise(FSize, TColorFormat.L16); } return messages; }
private void Initialise() { try { FMode = FPinInMode[0]; Size size = new Size(640, 480); if (FMode == ImageNodeMode.RGB) { FImageGenerator = new ImageGenerator(FState.Context); FImageImage.Image.Initialise(size, TColourFormat.RGB8); FState.DepthGenerator.AlternativeViewpointCapability.SetViewpoint(FImageGenerator); FImageGenerator.StartGenerating(); } else { FIRGenerator = new IRGenerator(FState.Context); FImageImage.Image.Initialise(size, TColourFormat.L16); FIRGenerator.StartGenerating(); } FImageDepth.Image.Initialise(size, TColourFormat.L16); FImageWorld.Image.Initialise(size, TColourFormat.RGB32F); FPinOutImageImage[0] = FImageImage.Link; FPinOutImageDepth[0] = FImageDepth.Link; FPinOutImageWorld[0] = FImageWorld.Link; for (int x = 0; x < 640; x++) for (int y = 0; y < 480; y++) { FProjective[x + y * 640].X = x; FProjective[x + y * 640].Y = y; } FState.Update += new EventHandler(FState_Update); FStatus = "OK"; } catch (StatusException e) { FStatus = e.Message; } }
private ProductionNode CreateProductionNodeObject(IntPtr nodeHandle, NodeType? type) { lock (this) { if (!this.allNodes.ContainsKey(nodeHandle)) { if (type == null) { IntPtr pNodeInfo = SafeNativeMethods.xnGetNodeInfo(nodeHandle); type = NodeInfo.FromNative(pNodeInfo).Description.Type; } ProductionNode node; // start with concrete types if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Device)) { node = new Device(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Depth)) { node = new DepthGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Image)) { node = new ImageGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Audio)) { node = new AudioGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.IR)) { node = new IRGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.User)) { node = new UserGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Recorder)) { node = new Recorder(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Player)) { node = new Player(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Gesture)) { node = new GestureGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Scene)) { node = new SceneAnalyzer(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Hands)) { node = new HandsGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Codec)) { node = new Codec(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.ScriptNode)) { node = new ScriptNode(this, nodeHandle, true); } // move on to abstract types else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.MapGenerator)) { node = new MapGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Generator)) { node = new Generator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.ProductionNode)) { node = new ProductionNode(this, nodeHandle, true); } else { throw new NotImplementedException("C# wrapper: Unknown generator type!"); } this.allNodes[nodeHandle] = node; } return this.allNodes[nodeHandle]; } // lock }
private ProductionNode CreateProductionNodeObject(IntPtr nodeHandle, NodeType?type) { lock (this) { if (!this.allNodes.ContainsKey(nodeHandle)) { if (type == null) { IntPtr pNodeInfo = SafeNativeMethods.xnGetNodeInfo(nodeHandle); type = NodeInfo.FromNative(pNodeInfo).Description.Type; } ProductionNode node; // start with concrete types if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Device)) { node = new Device(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Depth)) { node = new DepthGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Image)) { node = new ImageGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Audio)) { node = new AudioGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.IR)) { node = new IRGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.User)) { node = new UserGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Recorder)) { node = new Recorder(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Player)) { node = new Player(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Gesture)) { node = new GestureGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Scene)) { node = new SceneAnalyzer(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Hands)) { node = new HandsGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Codec)) { node = new Codec(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.ScriptNode)) { node = new ScriptNode(this, nodeHandle, true); } // move on to abstract types else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.MapGenerator)) { node = new MapGenerator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.Generator)) { node = new Generator(this, nodeHandle, true); } else if (SafeNativeMethods.xnIsTypeDerivedFrom(type.Value, NodeType.ProductionNode)) { node = new ProductionNode(this, nodeHandle, true); } else { throw new NotImplementedException("C# wrapper: Unknown generator type!"); } this.allNodes[nodeHandle] = node; } return(this.allNodes[nodeHandle]); } // lock }
public MockIRGenerator(Context context, IRGenerator basedOn) : this(context, basedOn, null) { }
public MockIRGenerator(Context context, IRGenerator basedOn, string name) : this(context, CreateBasedOn(basedOn, name), false) { }
private ProductionNode CreateProductionNodeObject(IntPtr nodeHandle, NodeType?type) { lock (this) { if (!this.allNodes.ContainsKey(nodeHandle)) { if (type == null) { IntPtr pNodeInfo = SafeNativeMethods.xnGetNodeInfo(nodeHandle); type = SafeNativeMethods.xnNodeInfoGetDescription(pNodeInfo).Type; } ProductionNode node; switch (type) { case NodeType.Device: node = new Device(this, nodeHandle, true); break; case NodeType.Depth: node = new DepthGenerator(this, nodeHandle, true); break; case NodeType.Image: node = new ImageGenerator(this, nodeHandle, true); break; case NodeType.Audio: node = new AudioGenerator(this, nodeHandle, true); break; case NodeType.IR: node = new IRGenerator(this, nodeHandle, true); break; case NodeType.User: node = new UserGenerator(this, nodeHandle, true); break; case NodeType.Recorder: node = new Recorder(this, nodeHandle, true); break; case NodeType.Player: node = new Player(this, nodeHandle, true); break; case NodeType.Gesture: node = new GestureGenerator(this, nodeHandle, true); break; case NodeType.Scene: node = new SceneAnalyzer(this, nodeHandle, true); break; case NodeType.Hands: node = new HandsGenerator(this, nodeHandle, true); break; case NodeType.Codec: node = new Codec(this, nodeHandle, true); break; case NodeType.ProductionNode: node = new ProductionNode(this, nodeHandle, true); break; case NodeType.Generator: node = new Generator(this, nodeHandle, true); break; case NodeType.MapGenerator: node = new MapGenerator(this, nodeHandle, true); break; case NodeType.ScriptNode: node = new ScriptNode(this, nodeHandle, true); break; default: throw new NotImplementedException("C# wrapper: Unknown generator type!"); } this.allNodes[nodeHandle] = node; } return(this.allNodes[nodeHandle]); } // lock }