// Finger bending from 0-1 private float GetFingerBend(Fingers finger) { float angle = 0; switch (finger) { case Fingers.Index: angle = Vector3.Angle(GetBone(HandBone.IndexTip).up, GetBone(HandBone.IndexMetaCarpal).up); break; case Fingers.Middle: angle = Vector3.Angle(GetBone(HandBone.MiddleTip).up, GetBone(HandBone.MiddleMetaCarpal).up); break; case Fingers.Ring: angle = Vector3.Angle(GetBone(HandBone.RingTip).up, GetBone(HandBone.RingMetaCarpal).up); break; case Fingers.Pinky: angle = Vector3.Angle(GetBone(HandBone.PinkyTip).up, GetBone(HandBone.PinkyMetaCarpal).up); break; case Fingers.Thumb: angle = Vector3.Angle(GetBone(HandBone.ThumbTip).forward, GetBone(HandBone.ThumbMetaCarpal).forward); break; } return(angle / 180f); }
internal UserInfo(byte[] data, int offset) { Id = Bytes.Read(Bytes.Split(data, offset, 5)); var pwd = Bytes.Split(data, offset + 5, 3); if (pwd[0] == 0xFF && pwd[1] == 0xFF && pwd[2] == 0xFF) { Password = null; } else { Password = Bytes.PasswordRead(pwd); } var card = Bytes.Split(data, offset + 8, 4); if (card[0] == 0xFF && card[1] == 0xFF && card[2] == 0xFF && card[3] == 0xFF) { Card = null; } else { Card = Bytes.Read(card); } Name = Bytes.GetUnicodeString(Bytes.Split(data, offset + 12, 20)); Department = data[offset + 32]; Group = data[offset + 33]; Mode = data[offset + 34]; EnrolledFingerprints = Fingers.DecodeFingers(Bytes.Read(Bytes.Split(data, offset + 35, 2))); PWDH8 = data[offset + 37]; Keep = data[offset + 38]; Message = data[offset + 39]; }
public Hand2d(Hand hand) { Speed = hand.PalmVelocity.Magnitude; SpeedDirection = GetVectorDirection(hand.PalmVelocity); FloatingAttachPoint = GetFloatingAttachPoint(hand); IsFist = GetIsFist(hand); IsFlat = GetIsFlat(hand); SetPalmProperties(hand); if (hand.IsLeft) { Side = HandSide.Left; } else { Side = HandSide.Right; } HandVelocityHistory.AddVelocity(hand.PalmVelocity, palmAttachPoint3d, Side); PalmPosition = LeapCalibrator.ToScaledPoint(hand.PalmPosition); PalmPosition3d = hand.PalmPosition; // TODO: Calculate Details!!! foreach (Finger finger in hand.Fingers) { Fingers.Add(new Finger2d(finger)); } }
/// <summary> /// Steps through all available temmplates and match fingerprint templates /// </summary> /// <param name="comparer">Delegate function that does the actual matching in the context desgnated by a particular finger</param> /// <param name="matchAny">If true any one finger match is sufficient for matching, if false all fingers must match</param> /// <param name="fingerContexts">List of matching contexts indexed by finger</param> /// <param name="matchFingers">Flags of fingers available for matching</param> /// <returns></returns> public object Identify(CompareFingerDelegate comparer, bool matchAny, Dictionary <Fingers, int> fingerContexts, Fingers matchFingers) { if (Connection != null && Connection.State == ConnectionState.Open) { using (IDataReader rdr = InternalGetTemplates()) //Reader must be sorted by individual { Fingers matchedFingers = 0; //fingers that have been matched FingerprintTemplate template; Fingers finger; while (rdr.Read()) { ReadTemplate(rdr, out finger, out template); if ((matchFingers & finger) != 0) { if (comparer(fingerContexts[finger], template)) { matchedFingers |= finger; } } if ((matchAny & ((matchFingers & matchedFingers) != 0)) | (matchFingers == matchedFingers)) //individual matched { return(rdr[IndividualFieldName]); } } //while return(null); //No match found } } else { throw new FPLibraryException(FPLibraryException.LibraryDalError, "Connection is null or closed"); } }
void update_WaitState() { Fingers currentFinger = RoundRequiredFingers[currentRound][currentFingureIndex]; int i = (int)RoundRequiredFingers[currentRound][currentFingureIndex]; //sets image to be shown setImagePlayerOne = SetKeyImage(currentFinger, 1); setImagePlayerTwo = SetKeyImage(currentFinger, 2); //copy for P2 if (playerOneSucceds == false) { playerOneSucceds = GetKeyWasPressed(currentFinger, 1); } if (playerTwoSucceds == false) { playerTwoSucceds = GetKeyWasPressed(currentFinger, 2); } //Transition waitStateTimer += Time.deltaTime; if (waitStateTimer > WaitStateTime) { waitStateTimer = 0.0f; state = State.STATE_PLAY; } }
public Hands() { InitializeComponent(); RegisteredFingers = 0; selectedFinger = 0; ClearFingers(); }
private bool GetKeyWasPressed(Fingers currentFinger, int v) { if (currentFinger == Fingers.Finger1) { if (v == 1) { return(Input.GetKey(KeyCode.Q)); } if (v == 2) { return(Input.GetKey(KeyCode.Y)); } } if (currentFinger == Fingers.Finger2) { if (v == 1) { return(Input.GetKey(KeyCode.W)); } if (v == 2) { return(Input.GetKey(KeyCode.U)); } } if (currentFinger == Fingers.Finger3) { if (v == 1) { return(Input.GetKey(KeyCode.E)); } if (v == 2) { return(Input.GetKey(KeyCode.I)); } } if (currentFinger == Fingers.Finger4) { if (v == 1) { return(Input.GetKey(KeyCode.R)); } if (v == 2) { return(Input.GetKey(KeyCode.O)); } } if (currentFinger == Fingers.Finger5) { if (v == 1) { return(Input.GetKey(KeyCode.T)); } if (v == 2) { return(Input.GetKey(KeyCode.P)); } } return(false); }
private void FocusFinger(Fingers finger) { if (SelectedFinger != finger) { selectedFinger = finger; DisplayFingers(); OnFingerFocused(new FingerFocusedEventArgs(finger)); } }
// Use this for initialization void Start() { soundManager = GameObject.Find("SoundManager").GetComponent <SoundManager>(); fadeEffect = GameObject.Find("FadeEffect").GetComponent <FadeEffect>(); soundManager.playBackgroundSound(2, 0); fadeEffect.applyFade(soundManager.backgroundAudio, FadeEffect.FadeState.FADE_IN); ReadData.QuaternionToHandRotionEvent += ReadData_QuaternionToHandRotionEvent; readData = GameObject.Find("ReadData").GetComponent <ReadData>(); fingers = new Fingers(); ReadData.PositionEvent += ReadData_PositionEvent; }
private Fingers GetRegisteredFingers() { Fingers fingers = 0; Dictionary <Fingers, FingerprintTemplate> savedFingers = DataAccessLayer.GetFingerTemplates(); foreach (var kvp in savedFingers) { fingers |= kvp.Key; } return(fingers); }
public LoopListener(Fingers parent) { fingers = parent; // Initialize loop state foreach (LoopButton button in Enum.GetValues(typeof(LoopButton))) { state[button] = false; } Watch(); }
/// <summary> /// Fingerprints are obtained, first tested if they exist in the database, and if not then saved to the database /// The individual to which the captured fingerprints must be saved must be set as the ActiveIndividual in the DataAccesLayer /// </summary> /// <param name="sensor">The sensor to capture the finger print from</param> /// <returns>The individual ID of the individual identified, null if none was identified</returns> public object IdentifyAndCapture(string sensor) { try { object result = null; griauleLibrary.SetIdentifyParameters(IdentificationThreshold, IdentificationRotationTolerance); Dictionary <Fingers, FingerprintTemplate> capturedFingers = Capture(sensor, DataAccessLayer.ActiveIndividual != null); if (capturedFingers != null && capturedFingers.Count > 0) { //Set up and prepare an identification context for each captured finger Dictionary <Fingers, int> fingerContexts = new Dictionary <Fingers, int>(capturedFingers.Count); Fingers matchFingers = 0; //Fingers to match try { foreach (var kvp in capturedFingers) { int context; griauleLibrary.CreateContext(out context); fingerContexts.Add(kvp.Key, context); griauleLibrary.IdentifyPrepare(capturedFingers[kvp.Key], context); matchFingers |= kvp.Key; //add finger to fingers to be matched } CompareFingerDelegate comparer = CompareTemplate; result = DataAccessLayer.Identify(CompareTemplate, true, fingerContexts, matchFingers); if (result == null) //No one identified { foreach (var kvp in capturedFingers) { DataAccessLayer.SaveTemplate(kvp.Key, kvp.Value); } } } finally { foreach (var kvp in fingerContexts) { griauleLibrary.DestroyContext(kvp.Value); } } } return(result); } catch (FingerprintException ex) { MessageBox.Show(String.Format("Identification Error : {0} {1}", ex.ErrorCode, ex.Message), "FPLibrary Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } catch (Exception e) { MessageBox.Show(String.Format("Identification Error : {0}", e.Message), "FPLibrary Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } }
protected virtual void ReadTemplate(IDataReader rdr, out Fingers finger, out FingerprintTemplate template) { byte[] buff = (byte[])rdr[TemplateFieldName]; int quality = Convert.ToInt16(rdr[QualityFieldName]); template = new FingerprintTemplate { Size = buff.Length, Buffer = buff, Quality = quality }; Byte fingerCode = Convert.ToByte(rdr[FingerFieldName]); finger = MatchFingerCode(fingerCode); }
public void RemoveFinger(string fingerId) { if (Fingers.ContainsKey(fingerId)) { TutorialFinger finger = Fingers[fingerId]; if (finger && finger.gameObject) { Destroy(finger.gameObject); } Fingers.Remove(fingerId); } }
public TutorialFinger CreateFinger(Transform parent, TutorialFingerData fingerData) { if (Fingers.ContainsKey(fingerData.Id)) { RemoveFinger(fingerData.Id); } GameObject fingerObj = GameObject.Instantiate(Services.ResourceService.Prefabs.GetPrefab("finger"), parent, false); TutorialFinger finger = fingerObj.GetComponent <TutorialFinger>(); finger.Setup(fingerData); Fingers.Add(finger.Data.Id, finger); return(finger); }
public void Remove(Pointable pointable) { Pointables.Remove(pointable); Finger f = pointable as Finger; if (f != null) { Fingers.Remove(f); } else { Tools.Remove(pointable as Tool); } }
/// <summary> /// Save a fingerprint template for the current individual /// </summary> /// <param name="finger">The finger to which the template belongs</param> /// <param name="fingerPrintTemplate">The template to be saved</param> public void SaveTemplate(Fingers finger, FingerprintTemplate fingerPrintTemplate) { if (Connection != null && Connection.State == ConnectionState.Open) { if (ActiveIndividual != null) { InternalSaveTemplate(FingerValueTable[finger], fingerPrintTemplate); } else { throw new FPLibraryException(FPLibraryException.LibraryDalError, "Active individual not set"); } } else { throw new FPLibraryException(FPLibraryException.LibraryDalError, "Connection is null or closed"); } }
public static Color OfFinger(Fingers finger) { switch (finger) { case Fingers.First: return(Colors.firstFinger); case Fingers.SecondLeft: return(Colors.secondLeftFinger); case Fingers.SecondRight: return(Colors.secondRightFinger); case Fingers.Third: return(Colors.thirdFinger); case Fingers.Fourth: return(Colors.fourthFinger); case Fingers.Fifth: return(Colors.fifthFinger); default: return(Colors.common); } }
/// <summary> /// Search though all available fingerprint templates for a match /// </summary> /// <param name="anyMatch">Any one finger needs to match for identification</param> /// <param name="capturedFingers">The fingerprints to search for</param> /// <returns></returns> public object Identify(bool anyMatch, Dictionary <Fingers, FingerprintTemplate> capturedFingers) { try { object result = null; griauleLibrary.SetIdentifyParameters(IdentificationThreshold, IdentificationRotationTolerance); //Set up and prepare an identification context for each captured finger Dictionary <Fingers, int> fingerContexts = new Dictionary <Fingers, int>(capturedFingers.Count); Fingers matchFingers = 0; //Fingers to match try { foreach (var kvp in capturedFingers) { int context; griauleLibrary.CreateContext(out context); fingerContexts.Add(kvp.Key, context); griauleLibrary.IdentifyPrepare(capturedFingers[kvp.Key], context); matchFingers |= kvp.Key; //add finger to fingers to be matched } result = DataAccessLayer.Identify(CompareTemplate, anyMatch, fingerContexts, matchFingers); } finally { foreach (var kvp in fingerContexts) { griauleLibrary.DestroyContext(kvp.Value); } } return(result); } catch (FingerprintException ex) { MessageBox.Show(String.Format("Identification Error : {0} {1}", ex.ErrorCode, ex.Message), "FPLibrary Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } catch (Exception e) { MessageBox.Show(String.Format("Identification Error : {0}", e.Message), "FPLibrary Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } }
/// <summary> /// Pの持ち駒項目の、配列の添え字番号。 /// /// 王は判定できない。 /// </summary> /// <param name="src_Sky"></param> /// <param name="pside"></param> /// <param name="syurui"></param> /// <returns>エラー時は-1</returns> public static int ParamIndex_Moti(SkyConst src_Sky, Playerside pside, PieceType syurui) { Fingers fingers = Util_Sky_FingersQuery.InOkibaPsideKomasyuruiNow(src_Sky, Conv_Playerside.ToKomadai(pside), pside, syurui); int index_playerside = Util_FvParamIndex.paramIndex_Playerside[(int)pside]; int index_komasyurui = Util_FvParamIndex.paramIndex_KomaSyrui_Moti[(int)syurui]; if (index_playerside == -1) { throw new Exception("二駒関係の持ち駒_先後不明の駒"); } else if (index_komasyurui == -1) { throw new Exception("二駒関係の持ち駒_駒種類が対象外の駒"); } int koumokuP = index_playerside + index_komasyurui + fingers.Count; Debug.Assert(0 <= koumokuP && koumokuP < FeatureVectorImpl.CHOSA_KOMOKU_P, $"koumokuP=[{koumokuP}]"); return(koumokuP); }
protected override FingerprintRawImage InternalGetFingerprintImage(Fingers finger) { return base.InternalGetFingerprintImage(finger); }
/// <summary> /// Save a fingerprint template for the current individual /// </summary> /// <param name="finger">The finger to which the template belongs</param> /// <param name="fingerPrintTemplate">The template to be saved</param> public void SaveTemplate(Fingers finger, FingerprintTemplate fingerPrintTemplate) { if (Connection != null && Connection.State == ConnectionState.Open) if (ActiveIndividual != null) InternalSaveTemplate(FingerValueTable[finger], fingerPrintTemplate); else throw new FPLibraryException(FPLibraryException.LibraryDalError, "Active individual not set"); else throw new FPLibraryException(FPLibraryException.LibraryDalError, "Connection is null or closed"); }
public static string FingerToString(Settings settings, Beat beat, Fingers finger, bool leftHand) { if (settings.ForcePianoFingering || GeneralMidi.IsPiano(beat.Voice.Bar.Staff.Track.PlaybackInfo.Program)) { switch (finger) { case Fingers.Unknown: case Fingers.NoOrDead: return(null); case Fingers.Thumb: return("1"); case Fingers.IndexFinger: return("2"); case Fingers.MiddleFinger: return("3"); case Fingers.AnnularFinger: return("4"); case Fingers.LittleFinger: return("5"); default: return(null); } } else if (leftHand) { switch (finger) { case Fingers.Unknown: case Fingers.NoOrDead: return("0"); case Fingers.Thumb: return("T"); case Fingers.IndexFinger: return("1"); case Fingers.MiddleFinger: return("2"); case Fingers.AnnularFinger: return("3"); case Fingers.LittleFinger: return("4"); default: return(null); } } else { switch (finger) { case Fingers.Unknown: case Fingers.NoOrDead: return(null); case Fingers.Thumb: return("p"); case Fingers.IndexFinger: return("i"); case Fingers.MiddleFinger: return("m"); case Fingers.AnnularFinger: return("a"); case Fingers.LittleFinger: return("c"); default: return(null); } } }
public bool ExistsFinger(string fingerName) { return(Fingers.ContainsKey(fingerName)); }
private string FingerToString(Beat beat, Fingers finger, bool leftHand) { if (Settings.ForcePianoFingering || GeneralMidi.IsPiano(beat.Voice.Bar.Staff.Track.PlaybackInfo.Program)) { switch (finger) { case Fingers.Unknown: case Fingers.NoOrDead: return null; case Fingers.Thumb: return "1"; case Fingers.IndexFinger: return "2"; case Fingers.MiddleFinger: return "3"; case Fingers.AnnularFinger: return "4"; case Fingers.LittleFinger: return "5"; default: return null; } } else if (leftHand) { switch (finger) { case Fingers.Unknown: case Fingers.NoOrDead: return "0"; case Fingers.Thumb: return "T"; case Fingers.IndexFinger: return "1"; case Fingers.MiddleFinger: return "2"; case Fingers.AnnularFinger: return "3"; case Fingers.LittleFinger: return "4"; default: return null; } } else { switch (finger) { case Fingers.Unknown: case Fingers.NoOrDead: return null; case Fingers.Thumb: return "p"; case Fingers.IndexFinger: return "i"; case Fingers.MiddleFinger: return "m"; case Fingers.AnnularFinger: return "a"; case Fingers.LittleFinger: return "c"; default: return null; } } }
/// <summary> /// /// </summary> /// <param name="kifu"></param> /// <param name="restText"></param> /// <param name="startposImporter"></param> /// <param name="logTag"></param> public static void OnChangeSky_Im_Srv( IRoomViewModel roomViewModel, StartposImporter startposImporter, KifuParserA_Genjo genjo ) { // SFENの初期配置の書き方(*1)を元に、駒を並べます。 // // *1…「position startpos moves 7g7f 3c3d 2g2f」といった書き方。 // //------------------------------ // 駒の配置 //------------------------------ { // 先後 Playerside nextTebanside; if (startposImporter.RO_SfenStartpos.PsideIsBlack) { // 黒は先手。 nextTebanside = Converter04.AlternatePside(Playerside.P1);//FIXME:逆か? } else { // 白は後手。 nextTebanside = Converter04.AlternatePside(Playerside.P2);//FIXME:逆か? } ShootingStarlightable move = Util_Sky.NullObjectMove;//ルートなので SkyConst src_Sky_New = startposImporter.ToSky(); Node <ShootingStarlightable, KyokumenWrapper> newNode = new KifuNodeImpl( move, new KyokumenWrapper(new SkyConst(src_Sky_New)), nextTebanside ); Util_InServer.SetCurNode_Srv(roomViewModel, newNode);// GUIに通知するだけ。 } //------------------------------ // 先後 //------------------------------ if (startposImporter.RO_SfenStartpos.PsideIsBlack) { // 黒は先手。 roomViewModel.GameViewModel.Kifu.SetProperty(KifuTreeImpl.PropName_FirstPside, Converter04.AlternatePside(Playerside.P1));//FIXME:逆か? } else { // 白は後手。 roomViewModel.GameViewModel.Kifu.SetProperty(KifuTreeImpl.PropName_FirstPside, Converter04.AlternatePside(Playerside.P2));//FIXME:逆か? } // 駒袋に表示されている駒を、駒台に表示させます。 { // 駒袋に表示されている駒を、駒台へ表示されるように移します。 List <PieceType> syuruiList = new List <PieceType>(); List <int> countList = new List <int>(); List <Playerside> psideList = new List <Playerside>(); //------------------------------------------------------------------------------------------------------------------------ // 移動計画作成 //------------------------------------------------------------------------------------------------------------------------ //------------------------------ // ▲王 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti1K) { syuruiList.Add(PieceType.K); countList.Add(startposImporter.RO_SfenStartpos.Moti1K); psideList.Add(Playerside.P1); //System.C onsole.WriteLine("mK=" + ro_SfenStartpos.Moti1K); } //------------------------------ // ▲飛 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti1R) { syuruiList.Add(PieceType.R); countList.Add(startposImporter.RO_SfenStartpos.Moti1R); psideList.Add(Playerside.P1); //System.C onsole.WriteLine("mR=" + ro_SfenStartpos.Moti1R); } //------------------------------ // ▲角 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti1B) { syuruiList.Add(PieceType.B); countList.Add(startposImporter.RO_SfenStartpos.Moti1B); psideList.Add(Playerside.P1); //System.C onsole.WriteLine("mB=" + ro_SfenStartpos.Moti1B); } //------------------------------ // ▲金 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti1G) { syuruiList.Add(PieceType.G); countList.Add(startposImporter.RO_SfenStartpos.Moti1G); psideList.Add(Playerside.P1); //System.C onsole.WriteLine("mG=" + ro_SfenStartpos.Moti1G); } //------------------------------ // ▲銀 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti1S) { syuruiList.Add(PieceType.S); countList.Add(startposImporter.RO_SfenStartpos.Moti1S); psideList.Add(Playerside.P1); //System.C onsole.WriteLine("mS=" + ro_SfenStartpos.Moti1S); } //------------------------------ // ▲桂 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti1N) { syuruiList.Add(PieceType.N); countList.Add(startposImporter.RO_SfenStartpos.Moti1N); psideList.Add(Playerside.P1); //System.C onsole.WriteLine("mN=" + ro_SfenStartpos.Moti1N); } //------------------------------ // ▲香 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti1L) { syuruiList.Add(PieceType.L); countList.Add(startposImporter.RO_SfenStartpos.Moti1L); psideList.Add(Playerside.P1); //System.C onsole.WriteLine("mL=" + ro_SfenStartpos.Moti1L); } //------------------------------ // ▲歩 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti1P) { syuruiList.Add(PieceType.P); countList.Add(startposImporter.RO_SfenStartpos.Moti1P); psideList.Add(Playerside.P1); //System.C onsole.WriteLine("mP=" + ro_SfenStartpos.Moti1P); } //------------------------------ // △王 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti2k) { syuruiList.Add(PieceType.K); countList.Add(startposImporter.RO_SfenStartpos.Moti2k); psideList.Add(Playerside.P2); //System.C onsole.WriteLine("mk=" + ro_SfenStartpos.Moti2k); } //------------------------------ // △飛 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti2r) { syuruiList.Add(PieceType.R); countList.Add(startposImporter.RO_SfenStartpos.Moti2r); psideList.Add(Playerside.P2); //System.C onsole.WriteLine("mr=" + ro_SfenStartpos.Moti2r); } //------------------------------ // △角 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti2b) { syuruiList.Add(PieceType.B); countList.Add(startposImporter.RO_SfenStartpos.Moti2b); psideList.Add(Playerside.P2); //System.C onsole.WriteLine("mb=" + ro_SfenStartpos.Moti2b); } //------------------------------ // △金 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti2g) { syuruiList.Add(PieceType.G); countList.Add(startposImporter.RO_SfenStartpos.Moti2g); psideList.Add(Playerside.P2); //System.C onsole.WriteLine("mg=" + ro_SfenStartpos.Moti2g); } //------------------------------ // △銀 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti2s) { syuruiList.Add(PieceType.S); countList.Add(startposImporter.RO_SfenStartpos.Moti2s); psideList.Add(Playerside.P2); //System.C onsole.WriteLine("ms=" + ro_SfenStartpos.Moti2s); } //------------------------------ // △桂 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti2n) { syuruiList.Add(PieceType.N); countList.Add(startposImporter.RO_SfenStartpos.Moti2n); psideList.Add(Playerside.P2); //System.C onsole.WriteLine("mn=" + ro_SfenStartpos.Moti2n); } //------------------------------ // △香 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti2l) { syuruiList.Add(PieceType.L); countList.Add(startposImporter.RO_SfenStartpos.Moti2l); psideList.Add(Playerside.P2); //System.C onsole.WriteLine("ml=" + ro_SfenStartpos.Moti2l); } //------------------------------ // △歩 //------------------------------ if (0 < startposImporter.RO_SfenStartpos.Moti2p) { syuruiList.Add(PieceType.P); countList.Add(startposImporter.RO_SfenStartpos.Moti2p); psideList.Add(Playerside.P2); //System.C onsole.WriteLine("mp=" + ro_SfenStartpos.Moti2p); } //------------------------------------------------------------------------------------------------------------------------ // 移動 //------------------------------------------------------------------------------------------------------------------------ for (int i = 0; i < syuruiList.Count; i++) { Playerside itaruPside; //(至)先後 Okiba itaruOkiba; //(至)置き場 if (Playerside.P2 == psideList[i]) { // 宛:後手駒台 itaruPside = Playerside.P2; itaruOkiba = Okiba.Gote_Komadai; } else { // 宛:先手駒台 itaruPside = Playerside.P1; itaruOkiba = Okiba.Sente_Komadai; } //------------------------------ // 駒を、駒袋から駒台に移動させます。 //------------------------------ { SkyBuffer buffer_Sky = new SkyBuffer(roomViewModel.GameViewModel.GuiSkyConst); Fingers komas = Util_Sky.Fingers_ByOkibaSyuruiNow(new SkyConst(buffer_Sky), Okiba.KomaBukuro, syuruiList[i]); int moved = 1; foreach (Finger koma in komas.Items) { // 駒台の空いている枡 SyElement akiMasu = KifuIO.GetKomadaiKomabukuroSpace(itaruOkiba, new SkyConst(buffer_Sky)); buffer_Sky.AddOverwriteStarlight(koma, new RO_MotionlessStarlight( //koma, new RO_Star_Koma( itaruPside, akiMasu, syuruiList[i] ))); if (countList[i] <= moved) { break; } moved++; } roomViewModel.GameViewModel.SetGuiSky(new SkyConst(buffer_Sky)); } } } }
protected virtual FingerprintRawImage InternalGetFingerprintImage(Fingers finger) { throw new NotImplementedException(); }
public FingerprintRawImage GetFingerprintImage(Fingers finger) { return(InternalGetFingerprintImage(finger)); }
public FingerFocusedEventArgs(Fingers finger) { FocusedFinger = finger; }
/// <summary> /// Set a flag in RegisteredFingers that the given finger is registered /// </summary> /// <param name="finger">Finger to register, if <c>Fingers.Unknown</c> then all fingers are unregistered</param> public void RegisterFinger(Fingers finger) { RegisteredFingers |= finger; }
/// <summary> /// Clear a flag in RegisteredFingers indicating that the given finger is not registered /// </summary> /// <param name="finger">Finger to register, if <c>Fingers.Unknown</c> then all fingers are registered</param> public void UnRegisterFinger(Fingers finger) { Fingers allFingers = ~(Fingers)0; RegisteredFingers &= (finger ^ allFingers); }
/// <summary> /// Returns the template for the specified finger of the current individual /// </summary> /// <param name="finger">The finger to which the template belongs</param> /// <returns>A fingerprint template</returns> public FingerprintTemplate GetTemplate(Fingers finger) { throw new NotImplementedException(); }
private bool SetKeyImage(Fingers currentFinger, int v) { if (currentFinger == Fingers.Finger1) { if (v == 1) { Q = true; } if (v == 1) { W = false; } if (v == 1) { E = false; } if (v == 1) { R = false; } if (v == 1) { T = false; } if (v == 2) { Y = true; } if (v == 2) { U = false; } if (v == 2) { I = false; } if (v == 2) { O = false; } if (v == 2) { P = false; } } if (currentFinger == Fingers.Finger2) { if (v == 1) { W = true; } if (v == 1) { Q = false; } if (v == 1) { E = false; } if (v == 1) { R = false; } if (v == 1) { T = false; } if (v == 2) { U = true; } if (v == 2) { Y = false; } if (v == 2) { I = false; } if (v == 2) { O = false; } if (v == 2) { P = false; } } if (currentFinger == Fingers.Finger3) { if (v == 1) { E = true; } if (v == 1) { Q = false; } if (v == 1) { W = false; } if (v == 1) { R = false; } if (v == 1) { T = false; } if (v == 2) { I = true; } if (v == 2) { Y = false; } if (v == 2) { U = false; } if (v == 2) { O = false; } if (v == 2) { P = false; } } if (currentFinger == Fingers.Finger4) { if (v == 1) { R = true; } if (v == 1) { Q = false; } if (v == 1) { W = false; } if (v == 1) { E = false; } if (v == 1) { T = false; } if (v == 2) { O = true; } if (v == 2) { Y = false; } if (v == 2) { U = false; } if (v == 2) { I = false; } if (v == 2) { P = false; } } if (currentFinger == Fingers.Finger5) { if (v == 1) { T = true; } if (v == 1) { Q = false; } if (v == 1) { W = false; } if (v == 1) { E = false; } if (v == 1) { R = false; } if (v == 2) { P = true; } if (v == 2) { Y = false; } if (v == 2) { U = false; } if (v == 2) { I = false; } if (v == 2) { O = false; } } return(false); }
/// <summary> /// Steps through all available temmplates and match fingerprint templates /// </summary> /// <param name="comparer">Delegate function that does the actual matching in the context desgnated by a particular finger</param> /// <param name="matchAny">If true any one finger match is sufficient for matching, if false all fingers must match</param> /// <param name="fingerContexts">List of matching contexts indexed by finger</param> /// <param name="matchFingers">Flags of fingers available for matching</param> /// <returns></returns> public object Identify(CompareFingerDelegate comparer, bool matchAny, Dictionary<Fingers, int> fingerContexts, Fingers matchFingers) { if (Connection != null && Connection.State == ConnectionState.Open) { using (IDataReader rdr = InternalGetTemplates()) //Reader must be sorted by individual { Fingers matchedFingers = 0; //fingers that have been matched FingerprintTemplate template; Fingers finger; while (rdr.Read()) { ReadTemplate(rdr, out finger, out template); if ((matchFingers & finger) != 0) { if (comparer(fingerContexts[finger], template)) matchedFingers |= finger; } if ((matchAny & ((matchFingers & matchedFingers) != 0)) | (matchFingers == matchedFingers)) //individual matched return rdr[IndividualFieldName]; } //while return null; //No match found } } else { throw new FPLibraryException(FPLibraryException.LibraryDalError, "Connection is null or closed"); } }
public FingerprintRawImage GetFingerprintImage(Fingers finger) { return InternalGetFingerprintImage(finger); }