public void ConvertAnimation(odfANIMSection anim, odfParser odaParser, bool odaSkeleton) { if (odaSkeleton) { FrameList.Clear(); ConvertFrames(odaParser.FrameSection.RootFrame); } ImportedKeyframedAnimation iAnim = new ImportedKeyframedAnimation(); AnimationList.Add(iAnim); iAnim.TrackList = new List <ImportedAnimationKeyframedTrack>(anim.Count); string notFound = String.Empty; foreach (odfTrack track in anim) { odfFrame boneFrame = odf.FindFrame(track.BoneFrameId, odaParser.FrameSection.RootFrame); if (boneFrame == null) { notFound += (notFound.Length > 0 ? ", " : "") + track.BoneFrameId; continue; } ImportedAnimationKeyframedTrack iTrack = new ImportedAnimationKeyframedTrack(); iAnim.TrackList.Add(iTrack); iTrack.Name = boneFrame.Name; iTrack.Keyframes = ConvertTrack(track.KeyframeList); } if (notFound.Length > 0) { Report.ReportLog("Warning: Animations weren't converted for the following missing frame IDs: " + notFound); } }
/// <summary> /// Handles the <see cref="ButtonBase.Click"/> event for the "Remove Frame" <see /// cref="Button"/>.</summary> /// <param name="sender"> /// The <see cref="Object"/> where the event handler is attached.</param> /// <param name="args"> /// A <see cref="RoutedEventArgs"/> object containing event data.</param> /// <remarks> /// <b>OnFrameRemove</b> removes the selected item from the "Image Frames" list box and sets /// the <see cref="DataChanged"/> flag.</remarks> private void OnFrameRemove(object sender, RoutedEventArgs args) { args.Handled = true; // cannot remove last item in list box if (FrameList.Items.Count < 2) { return; } // remove selected item int index = FrameList.SelectedIndex; if (index < 0) { return; } FrameList.Items.RemoveAt(index); // select next or last item in list box FrameList.SelectAndShow(Math.Min(index, FrameList.Items.Count - 1)); // disable Remove if only one item left RemoveFrameButton.IsEnabled = (FrameList.Items.Count > 1); // frame list has changed DataChanged = true; }
/// <summary> /// Replace the geometries in the scene with the ones contained in the given Assimp scene. /// </summary> /// <param name="scene"></param> public void ReplaceGeometries(Assimp.Scene scene) { var skinToBoneMatrices = ComputeSkinToBoneMatrices(scene); GeometryList.Clear(); Atomics.Clear(); for (var i = 0; i < scene.Meshes.Count; i++) { var assimpMesh = scene.Meshes[i]; var rootNode = FindMeshRootNode(scene.RootNode, i) ?? scene.RootNode; TransformMeshVertices(assimpMesh, rootNode); var geometryNode = new RwGeometryNode(this, assimpMesh, scene.Materials[assimpMesh.MaterialIndex], FrameList, skinToBoneMatrices, out bool singleWeight); GeometryList.Add(geometryNode); var atomicNode = new RwAtomicNode(this, 0, i, 5); if (singleWeight) { if (assimpMesh.Bones.Count != 0) { atomicNode.FrameIndex = FrameList.GetFrameIndexByName(assimpMesh.Bones[0].Name); } else if (rootNode != null) { atomicNode.FrameIndex = FrameList.GetFrameIndexByName(rootNode.Name); } } Atomics.Add(atomicNode); } mStructNode = new RwClumpStructNode(this); }
private void CaptureCurrentFrame(MediaPlayer player) { var frame = GenerateFrame(player); #region Scaling if (Scale <= 0) { var bit = frame as BitmapFrame; if (bit != null) { FrameList.Add(bit); } } var thumbnailFrame = BitmapFrame.Create(new TransformedBitmap(frame as BitmapSource, new ScaleTransform(Scale, Scale))).GetCurrentValueAsFrozen(); var thumbBit = thumbnailFrame as BitmapFrame; if (thumbBit != null) { FrameList.Add(thumbBit); } #endregion SeekNextFrame(); GC.Collect(); }
private void FrameMessage(string InputString) { /* According to the ASTM E1381-95 standard, frames longer than 240 characters * -- 247 characters including frame overhead (<STX>[FrameNumber]...<ETX>[Checksum]<CR><LF>) -- * are sent as one or more intermediate frames followed by an end frame. * Shorter messages are sent as a single end frame. * Intermediate frames use <ETB> in place of <ETX> to indicate that it is continued * in the next frame. * This procedure splits long frames into intermediate frames if necessary * before appending the checksum and <CR><LF> and adding the frame to the message FrameList. * CLSI-LIS1-A increased this frame size to 64,000 including frame overhead. * The use_legacy_frame_size setting in config.yml is used to specify which size to use. */ if (InputString.Length > frameSize + 3) // <STX> + FrameNumber + frame + <ETX> { string firstString = InputString.Substring(0, frameSize + 2); // +2 to make room for the <ETB> int firstStringLength = firstString.Length; int iLength = InputString.Length - firstStringLength; firstString += Constants.ETB; firstString += ServiceMain.CHKSum(firstString); firstString += Constants.CR + Constants.LF; string nextString = InputString.Substring(firstStringLength, iLength); // The remainder of the string FrameList.Add(firstString); // Add intermediate frame to list // is passed to this function recursively FrameMessage(nextString); // to be added as its own frame(s) } else { InputString += ServiceMain.CHKSum(InputString) + Constants.CR + Constants.LF; // Tag on the checksum and <CR><LF> FrameList.Add(InputString); // Add the end frame } }
/// <summary> /// Creates frames for each object list for each transmitter /// </summary> public void CreateFramesForTransmitters() { //Only create frames for transmitters that are ready to transmit var transmitters = _transmitters.Where(transmitter => transmitter.Listener.CanTransmit).ToList(); //Create a frame list for each transmitter var frameListList = new FrameList[transmitters.Count]; for (var i = 0; i < transmitters.Count; ++i) { frameListList[i] = new FrameList(); } //For each object list, create a frame for each transmitter //This ensures that each list is fully processed, allowing us to inform listeners without having to repeatedly signal begin/end foreach (var objectList in _objectLists) { for (var i = 0; i < transmitters.Count; ++i) { var transmitter = transmitters[i]; var frameList = frameListList[i]; frameList.AddFrame(CreateFrame(transmitter, objectList)); } objectList.PostFramesCreated(); } for (var i = 0; i < transmitters.Count; ++i) { transmitters[i].AddList(frameListList[i]); } }
private void InitWithGameObject(GameObject m_GameObject) { assetsfileList.TryGetTransform(m_GameObject.m_Transform, out var m_Transform); var rootTransform = m_Transform; var frameList = new List <ImportedFrame>(); while (assetsfileList.TryGetTransform(rootTransform.m_Father, out var m_Father)) { frameList.Add(ConvertFrames(m_Father)); rootTransform = m_Father; } if (frameList.Count > 0) { FrameList.Add(frameList[frameList.Count - 1]); for (var i = frameList.Count - 2; i >= 0; i--) { var frame = frameList[i]; var parent = frameList[i + 1]; parent.AddChild(frame); } ConvertFrames(m_Transform, frameList[0]); } else { ConvertFrames(m_Transform, null); } CreateBonePathHash(rootTransform); ConvertMeshRenderer(m_Transform); }
public void AddPerforation() { if (IsPerforationAdded_) { return; } CatchExceptionsByMessageCenter(() => { TFCOM.TFPerforatorList perfoList = GetPerfoList(); perfoList.SetSweepMode( TFCOM.TFdPerforatorSweepMode.tfdPerforatorSweepModeBi); //perfoList.SetSenseDist(1.01 * length / 2); perfoList.SetPolicy( TFCOM.TFdPerforatorPolicy.tfdPerforatorPolicyThroughHoleWithinSenseDist); perfoList.SetIsVisible(false); FrameList.AsTFFrame.SetPerforatorList(perfoList); FrameList.AsTFFrame.SetSenseDistance2(GetPerfoSenseDistance()); FrameList.AsTFFrame.SetPerforatorsAreActive(true); FrameList.Synchronize(string.Empty); FrameList.ApplyPerforatorInModel(); IsPerforationAdded_ = true; }); }
public override void Save() { //List is copied so we can replace it with a list more suited for saving, then reinstate the old one var listcopy = new List <ObjectWithName>(FrameList); FrameList.Clear(); if (SingleSaveFile) { FrameList.Add(new ObjectWithName(true, "SingleSave")); foreach (WekitPlayer_Base player in ActiveWekitPlayers) { FrameList.Add(new ObjectWithName(player.GetListAsObject(), player.PlayerName)); } } base.Save(); FrameList = listcopy; if (SingleSaveFile) { return; } foreach (WekitPlayer_Base player in ActiveWekitPlayers) { player.UseZip = UseZip; player.UseCompoundArchive = UseCompoundArchive; player.CompoundZipName = CompoundZipName; player.FileName = FileName; player.Save(); } }
private void InitWithGameObject(GameObject m_GameObject, Dictionary <string, int> sharedFileIndex, List <AssetsFile> assetsfileList, Dictionary <string, EndianBinaryReader> resourceFileReaders) { assetsfileList.TryGetTransform(m_GameObject.m_Transform, out var m_Transform); var rootTransform = m_Transform; var frameList = new List <ImportedFrame>(); while (assetsfileList.TryGetTransform(rootTransform.m_Father, out var m_Father)) { frameList.Add(ConvertFrames(m_Father)); rootTransform = m_Father; } if (frameList.Count > 0) { FrameList.Add(frameList[frameList.Count - 1]); for (var i = frameList.Count - 2; i >= 0; i--) { var frame = frameList[i]; var parent = frameList[i + 1]; parent.AddChild(frame); } ConvertFrames(m_Transform, frameList[0]); } else { ConvertFrames(m_Transform, null); } CreateBonePathHash(rootTransform); ConvertMeshRenderer(m_Transform, sharedFileIndex, assetsfileList, resourceFileReaders); }
protected void SendStepAll(object sender, ElapsedEventArgs e) { if (ClientPool.ActiveCount <= 0) { if (FrameList.Count > 0) { ServerLog.LogServer("所有客户端退出游戏 战斗结束!!!", 1); FrameList.Clear(); } return; } if (FrameList.Count == 0) { ServerLog.LogServer("玩家进入服务器 战斗开始!!!", 1); } ServerLog.LogServer("0[" + FrameList.Count + "]", 1); byte[][] temp = StepMessage; int length = temp.Length; ProtocolBase protocol = new ByteProtocol(); protocol.push((byte)MessageType.Frame); protocol.push((byte)length); //ServerLog.LogServer("获取[" + FrameList.Count + "]", 1); for (int i = 0; i < length; i++) { protocol.push(temp[i] != null); protocol.push(temp[i]); } if (FrameList.Count == 0) { protocol.push((byte)MessageType.RandomSeed); Random rand = new Random(); protocol.push(rand.Next(10000)); } protocol.push((byte)MessageType.end); ServerLog.LogServer("生成帧信息[" + length + "]", 1); byte[] temp2 = protocol.GetByteStream(); FrameList.Add(temp2); ClientPool.Foreach((con) => { SendToClient(con.clientId, temp2); if (!con.ActiveCheck()) { ServerLog.LogClient("客户端断线 中止连接:" + ClientPool[con.clientId].socket.LocalEndPoint + "ClientID:" + con.clientId, 0, con.clientId); con.socket.Close(); ClientPool.Recover(con.clientId); } }); ServerLog.LogServer("帧同步[" + FrameList.Count + "]", 2); //StepMessage = new byte[ClientPool.Count][]; //for (int i = 0; i < StepMessage.Length; i++) //{ // StepMessage[i] = new byte[framSize]; //} }
void InitThreadList(FrameGroup group) { List <ThreadRow> rows = new List <ThreadRow>(); if (group != null) { rows.Add(new HeaderThreadRow(group) { GradientTop = (ThreadViewControl.OptickAlternativeBackground as SolidColorBrush).Color, GradientBottom = (ThreadViewControl.OptickBackground as SolidColorBrush).Color, TextColor = Colors.Gray, Header = new ThreadFilterView(), }); ChartRow cpuCoreChart = GenerateCoreChart(group); if (cpuCoreChart != null) { cpuCoreChart.IsExpanded = false; cpuCoreChart.ExpandChanged += CpuCoreChart_ExpandChanged; cpuCoreChart.ChartHover += Row_ChartHover; rows.Add(cpuCoreChart); } List <EventsThreadRow> threadRows = GenerateThreadRows(group); foreach (EventsThreadRow row in threadRows) { if (row.Description.Origin == ThreadDescription.Source.Core) { row.IsVisible = false; coreRows.Add(row); } } rows.AddRange(threadRows); } ThreadViewControl.InitRows(rows, group != null ? group.Board.TimeSlice : null); List <ITick> frames = null; if (Group != null && Group.Frames != null && Group.Frames[FrameList.Type.CPU] != null) { FrameList list = Group.Frames[FrameList.Type.CPU]; frames = list.Events.ConvertAll(frame => frame as ITick); } else if (Group != null) { frames = new List <ITick>(); long step = Durable.MsToTick(1000.0); for (long timestamp = Group.Board.TimeSlice.Start; timestamp < Group.Board.TimeSlice.Finish; timestamp += step) { frames.Add(new Tick() { Start = timestamp }); } } ThreadViewControl.InitForegroundLines(frames); }
/// <summary> /// Gets rectangle of the sprite, and the duration of the frame, creates new frame in animation /// </summary> public void AddFrame(Rectangle rectangle, TimeSpan duration) { FrameList.Add(new Frame() { Rectangle = rectangle, Duration = duration }); }
/// <summary> /// Gets rectangle of the sprite, and the duration of the frame, creates new frame in animation /// </summary> public void AddFrame(Rectangle source, TimeSpan duration) { FrameList.Add(new AFrame() { Source = source, Duration = duration }); }
/// <summary> /// Disposes of the data stored by this TextureAtlas /// </summary> public void Dispose() { // Clear the lists FrameList.Clear(); BoundsList.Clear(); OriginsList.Clear(); ReuseCount.Clear(); }
protected void SendToClientAllFrame(int clientId) { byte[][] list = FrameList.ToArray(); ServerLog.LogClient("中途加入 发送历史帧:" + list.Length, 3, clientId); foreach (var item in list) { SendToClient(clientId, item); } }
internal void AddList(FrameList list) { if (list == null) { throw new ArgumentNullException(nameof(list)); } _frameListLists.Add(list); }
protected void SaveFrameList() { var frameList = FrameList.Select(item => String.Format("{0}{1}{2}{1}{3}{1}{4}{1}{5}{1}{6}", item.Number, TSharkHelper.OUTPUT_SEPARATOR, item.SourceMac, item.DestinationMac, item.SourceIp, item.DestinationIp, item.Protocol)); File.WriteAllLines(GetFrameListFilename(), frameList); }
public void PrepareToSend() { if (isReady) { return; } // The header fields should already have been set to define the MessageHeader string. if (MessageHeader.Length == 0) { throw new InvalidOperationException("Missing MessageHeader string."); } FrameList.Clear(); FrameMessage(MessageHeader); // Then process each patient and their orders, incrementing the frame number with each record. if (Patients.Count > 0) { int pCount = 0; foreach (var patient in Patients) { pCount += 1; patient.Elements["FrameNumber"] = IncrementFrameCount().ToString(); // Assign proper Sequence Number to each patient. patient.Elements["SequenceNumber"] = pCount.ToString(); // Add the patient message to the FrameList. FrameMessage(patient.PatientMessage); // Do the same for each order message. int oCount = 0; foreach (var order in patient.Orders) { oCount += 1; order.Elements["FrameNumber"] = IncrementFrameCount().ToString(); // Assign proper Sequence Number to each order. order.Elements["SequenceNumber"] = oCount.ToString(); FrameMessage(order.OrderMessage); // If there are any result messages for the order, prepare those, too. int rCount = 0; foreach (var result in order.Results) { rCount += 1; result.Elements["FrameNumber"] = IncrementFrameCount().ToString(); // Assign proper Sequence Number to each order. result.Elements["SequenceNumber"] = rCount.ToString(); FrameMessage(result.ResultMessage); } } } } // Finally, don't forget the Terminator message. if (Terminator < 'E') { Terminator = 'N'; } TerminationMessage = Constants.STX + IncrementFrameCount().ToString() + "L|1|" + Terminator + Constants.CR + Constants.ETX; FrameMessage(TerminationMessage); isReady = true; }
public void Roll(int knockedPins) { var lastFrame = GetLastFrame(); //Frame first roll if (lastFrame.KnockedPins.Count == 0) { lastFrame.KnockedPins.Add(knockedPins); return; } //frame second roll if (lastFrame.FrameIndex == 9) { if (lastFrame.KnockedPins.Count < 2) { lastFrame.KnockedPins.Add(knockedPins); return; } else if (lastFrame.KnockedPins.Count == 2) { if (lastFrame.KnockedPins[0] == 10 || lastFrame.KnockedPins[1] == 10 || (lastFrame.KnockedPins[0] + lastFrame.KnockedPins[1]) == 10) { lastFrame.KnockedPins.Add(knockedPins); return; } } else { throw new Exception("Game Over"); } } else { if (lastFrame.KnockedPins[0] == 10) { var newFrame = new Frame(); newFrame.FrameIndex = lastFrame.FrameIndex + 1; newFrame.KnockedPins.Add(knockedPins); FrameList.Add(newFrame); } else if (lastFrame.KnockedPins.Count >= 2) { var newFrame = new Frame(); newFrame.FrameIndex = lastFrame.FrameIndex + 1; newFrame.KnockedPins.Add(knockedPins); FrameList.Add(newFrame); } else { lastFrame.KnockedPins.Add(knockedPins); } } }
public FrameList AddNewGame() { var game = new FrameList(); this.games.Add(game); SaveLogs(); return(game); }
private Frame GetLastFrame() { if (FrameList.Count == 0) { FrameList.Add(new Frame { FrameIndex = 0 }); } return(FrameList[FrameList.Count - 1]); }
private void CancelButton_Click(object sender, RoutedEventArgs e) { _cancelled = true; FrameList?.Clear(); GC.Collect(); DialogResult = false; }
/// <summary> /// Selects the <see cref="ImageListBox"/> item on the <see cref="FrameTab"/> page indicated /// by the <see cref="EntityTemplate.FrameOffset"/> of the edited <see /// cref="EntityTemplate"/>.</summary> /// <remarks> /// <b>SelectFrameOffset</b> does nothing if the <see cref="ImageListBox"/> is empty, and /// otherwise restricts the <b>FrameOffset</b> to a legal item index.</remarks> private void SelectFrameOffset() { int count = FrameList.Items.Count; if (count > 0) { int offset = this._template.FrameOffset; FrameList.SelectAndShow(Math.Max(0, Math.Min(count, offset))); } }
private void SelectedInnerFileChanged(object sender, EventArgs e) { RefreshFrameList(); // Select first frame if (FrameList.Count > 0) { FrameList.MoveCurrentToFirst(); } }
public void UnParseFrames(Stream s) { uint width = GetWidthForChannelType(channelType); if (frames == null) { frames = new FrameList(handler); } for (int i = 0; i < frames.Count; i++) { frames[i].UnParse(s, width); } }
public bool SetTags() { BCOM.Element bcomElement; FrameList.GetElement(out bcomElement); bool res = false; foreach (TagToDataGroupMapProperty mapTag in TagsToDataGroupMapping.Instance.Items) { res |= TagsToDataGroupConverter.SetMapTagOnElement(bcomElement, mapTag); } return(res); }
private void CaptureCurrentFrame(MediaPlayer player) { var thumbBit = CaptureFrame(player) as BitmapFrame; if (thumbBit != null) { FrameList.Add(thumbBit); } GC.Collect(); SeekNextFrame(); }
private void CaptureCurrentFrame(MediaPlayer player) { if (CaptureFrame(player) is BitmapFrame thumbBit) { FrameList.Add(thumbBit); } GC.Collect(); if (!_cancelled) { SeekNextFrame(); } }
/// <summary> /// Handles the <see cref="Control.MouseDoubleClick"/> event for an <see /// cref="ImageListBoxItem"/> of the <see cref="ImageListBox"/> on the <see /// cref="FrameTab"/> page.</summary> /// <param name="sender"> /// The <see cref="Object"/> where the event handler is attached.</param> /// <param name="args"> /// A <see cref="MouseButtonEventArgs"/> object containing event data.</param> /// <remarks> /// <b>OnFrameActivate</b> selects the double-clicked item in the <see /// cref="ImageListBox"/>, and sets the <see cref="Window.DialogResult"/> of the <see /// cref="ChangeFrame"/> dialog to <c>true</c> to confirm all changes.</remarks> private void OnFrameActivate(object sender, MouseButtonEventArgs args) { args.Handled = true; // retrieve double-clicked item, if any var source = args.OriginalSource as DependencyObject; var item = ItemsControl.ContainerFromElement(FrameList, source) as ImageListBoxItem; if (item != null) { FrameList.SelectAndShow(item); DialogResult = true; } }
public MainWindowViewModel() { // TODO: inject dependencies _quicksaveFolderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), _quicksaveFolderName); InnerFileList = new InnerNpkFileList(); InnerFileList.CurrentChanged += SelectedInnerFileChanged; FrameList = new FrameList(); // Note that SelectedItems may not be up to date yet in the CurrentChanged event handler FrameList.CurrentChanged += SelectedFrameChanged; FrameList.SelectedItems.CollectionChanged += (sender, e) => RefreshCanQuickSaveAsPng(); CanOpen = GetCanOpen(); CanQuickSaveAsPng = GetCanQuickSaveAsPng(); }
public DesignerMainWindowViewModel() { InnerFileList = new InnerNpkFileList() { new InnerNpkFile("foo.img", "images/foo.img"), new InnerNpkFile("bar.img", "images/bar.img"), new InnerNpkFile("baz.img", "Images/baz.img") }; FrameList = new FrameList() { new FrameMetadata(0, 85, 196, 200, 7, null), new FrameMetadata(1, 100, 185, 205, 15, null), new FrameMetadata(2, 100, 185, 205, 7, 0) }; CurrentFrameImage = null; Status = "I'm the status"; CanOpen = true; CanQuickSaveAsPng = true; }
public DesignerMainWindowViewModel() { InnerFileList = new InnerNpkFileList() { new InnerNpkFile("blahblahblah_0.img", "sprite/character/fighter/blahblahblah_0.img"), new InnerNpkFile("blahblahblah_1.img", "sprite/character/fighter/blahblahblah_1.img"), new InnerNpkFile("blahblahblah_2.img", "sprite/character/fighter/blahblahblah_2.img") }; InnerFileList.MoveCurrentToFirst(); FrameList = new FrameList() { new FrameMetadata(0, 85, 196, 200, 7, null), new FrameMetadata(1, 100, 185, 205, 15, null), new FrameMetadata(2, 100, 185, 205, 7, 0) }; CurrentFrameImage = null; Status = "I'm the status"; OpenNPKPath = @"C:\Neople\DFO\ImagePacks2\blah.NPK"; CanOpen = true; CanQuickSaveAsPng = true; }