public void FramePacketRun(FrameNode frameNode) { if (battleController != null) { battleController.OnRunFramePacket(frameNode); } }
public FrameNodeGroup(ProjectionElement descriptor, FrameNode[] nodes, ParameterNames boundingParameters) { MatchedElement = descriptor; Nodes = nodes; BoundingParameters = boundingParameters; Debug.Assert(nodes.All(k => k.MatchedElement == descriptor)); Debug.Assert(nodes.All(k => new ParameterNames(k.BoundingParameters.Select(k2=>k2.Key)) == BoundingParameters )); }
/// <summary> /// This is the standard Unity function called at every frame, in this particular case it acquire an image if neccesary, and enqueque inside /// </summary> public void Update() { if (nextFrameId == long.MinValue) { return; } // Method 1 (some problem on Xiaomi, resolve on 1.8 version) using (CameraImageBytes image = Frame.CameraImage.AcquireCameraImageBytes()) { if (!image.IsAvailable) { return; } Debug.Log("Acquired frame nextFrameId: " + nextFrameId); byte[] yBuffer = new byte[image.Width * image.Height]; byte[] vuBuffer = new byte[image.Width * (image.Height / 2)]; Marshal.Copy(image.Y, yBuffer, 0, yBuffer.Length); Marshal.Copy(image.V, vuBuffer, 0, vuBuffer.Length); Vector3 position = trsmatrix.MultiplyPoint3x4(Frame.Pose.position); Quaternion rotation = Frame.Pose.rotation * Quaternion.LookRotation( trsmatrix.GetColumn(2), trsmatrix.GetColumn(1)); Quaternion rotationNoEdit = new Quaternion(rotation.x, rotation.y, rotation.z, rotation.w); Vector3 positionOri = cameraTransform.position; Quaternion rotationOri = cameraTransform.rotation; FrameNode frame = new FrameNode { frameId = nextFrameId, imageHeight = image.Height, imageWidth = image.Width, focalLength = Frame.CameraImage.ImageIntrinsics.FocalLength, principalPoint = Frame.CameraImage.ImageIntrinsics.PrincipalPoint, position = position, positionOri = positionOri, rotation = rotation, rotationOri = rotationOri, vuBuffer = vuBuffer, yBuffer = yBuffer }; sendingSocket.EnquequeFrame(ref frame); frameAcquired.Add(nextFrameId); nextFrameId = long.MinValue; } }
/// <summary> /// 执行帧包 /// </summary> /// <param name="node">Node.</param> public void RunFramePacket(FrameNode node) { if (node.msgList == null || node.msgList.Length == 0) { return; } for (int i = 0; i < node.msgList.Length; i++) { ExcutePacket(node.msgList[i] as Packet); } }
private readonly bool _getterCheck; //проверка корректности написания ридеров. Замедляет работу, поэтому опция. private FrameNode CreateNewNode(FrameNode parent, Guid k) { var newDict = new Dictionary<string, object>(parent.BoundingParameters); if (newDict.ContainsKey(ProducedChildElement.Name)) newDict[ProducedChildElement.Name] = k; else { newDict.Add(ProducedChildElement.Name, k); } return new FrameNode(k, ProducedChildElement, parent.Depth + 1, newDict); }
private readonly bool _getterCheck; //проверка корректности написания ридеров. Замедляет работу, поэтому опция. private FrameNode CreateNewNode(FrameNode parent, Guid k) { var newDict = new Dictionary <string, object>(parent.BoundingParameters); if (newDict.ContainsKey(ProducedChildElement.Name)) { newDict[ProducedChildElement.Name] = k; } else { newDict.Add(ProducedChildElement.Name, k); } return(new FrameNode(k, ProducedChildElement, parent.Depth + 1, newDict)); }
void Awake() { node = FrameNode.Instantiate("Frame Highlighter"); node.Transform.SetParentLocal(Transform); axisResource = ResourcePool.RentDisplay <AxisFrameResource>(node.Transform); axisResource.ShadowsEnabled = false; axisResource.Emissive = 1; axisResource.OverrideMaterial(Resource.Materials.TransparentLitAlwaysVisible.Object); axisResource.Layer = LayerType.IgnoreRaycast; tooltip = ResourcePool.RentDisplay <Tooltip>(node.Transform); tooltip.Layer = LayerType.IgnoreRaycast; tooltip.UseAnimation = false; }
void StartPalms() { leftPalm = TfListener.GetOrCreateFrame($"{MyId}/controller/left_palm"); leftPalm.transform.localScale = 0.05f * Vector3.one; leftPalm = TfListener.GetOrCreateFrame($"{MyId}/controller/left_hand"); node = FrameNode.Instantiate("Hololens"); node.Parent = leftPalm; leftPalmPose = new Pose(Vector3.up * 1f, Quaternion.identity); leftPalm.SetPose(leftPalmPose); leftPalm.ParentCanChange = false; LeftHandScale = 0.1f; }
private FilledProjectionFrame FillFrame(FrameNode frame) { FilledProjectionFrame filledFrame; if (frame.MatchedElement is ResourceProjectionElement) { var filler = _cachier.GetLater( (frame.MatchedElement as ResourceProjectionElement).ResourceType, frame.Key); filledFrame = new FilledProjectionFrame(frame.MatchedElement, frame.Key,filler); } else { filledFrame = new FilledProjectionFrame(frame.MatchedElement, frame.Key); } var childFrames = frame.ChildNodes.Select(FillFrame).ToArray(); filledFrame.ChildFrames = childFrames; return filledFrame; }
private FilledProjectionFrame FillFrame(FrameNode frame) { FilledProjectionFrame filledFrame; if (frame.MatchedElement is ResourceProjectionElement) { var filler = _cachier.GetLater( (frame.MatchedElement as ResourceProjectionElement).ResourceType, frame.Key); filledFrame = new FilledProjectionFrame(frame.MatchedElement, frame.Key, filler); } else { filledFrame = new FilledProjectionFrame(frame.MatchedElement, frame.Key); } var childFrames = frame.ChildNodes.Select(FillFrame).ToArray(); filledFrame.ChildFrames = childFrames; return(filledFrame); }
public override void build() { if (children.Length == 4) { typeNameNode = (TypeNameNode)children[1]; methodName = TermPay(children[3]); } else if (children.Length == 3) { methodName = TermPay(children[2]); } else { throw new Exception(); } frameNode = (FrameNode)children[0]; // Todo: i am pretty sure the payload of Term<CS_name> can never be null or "" , ... like 95% or so }
public ProjectionFrame(FrameNode rootNode) { RootNode = rootNode; }
public void OnRunFramePacket(FrameNode frameNode) { battleSystem.sceneManager.RunFramePacket(frameNode); }