public static Mesh CreateEraseFeatureMaskMesh(Dictionary <string, Vector2> dic, LandmarkType type = LandmarkType.MTShowShow) { List <Vector3> vectors = new List <Vector3>(); List <int> triangles = new List <int>(); List <Color> colors = new List <Color>(); if (type == LandmarkType.MTShowShow || type == LandmarkType.MeituOffline || type == LandmarkType.ARKitRemote) { var vertices1 = GetVectors(mt_eyebrow_left, dic); var vertices2 = GetVectors(mt_eyebrow_right, dic); var vertices3 = GetVectors(mt_mouth, dic); CreatePredictData(vertices1, vectors.Count, Color.red, Color.red, Color.clear, 0.03f, vectors, triangles, colors); CreatePredictData(vertices2, vectors.Count, Color.red, Color.red, Color.clear, 0.03f, vectors, triangles, colors); CreatePredictData(vertices3, vectors.Count, Color.green, Color.green, Color.clear, 0.03f, vectors, triangles, colors); } else { throw new NotSupportedException(); } Mesh ret = new Mesh(); ret.SetVertices(vectors); ret.SetTriangles(triangles, 0); ret.SetColors(colors); return(ret); }
public static void GetLandmark(Texture tex, LandmarkType landmarkType, Action <Dictionary <string, Vector2> > callback, Action <float> uploadProgressCallback = null) { Debug.LogFormat("use landmark type = {0}", landmarkType); switch (landmarkType) { //case LandmarkType.MeituOffline: // MeituSDK.ProcessLandmark(tex, callback); //break; #if UNITY_EDITOR case LandmarkType.ARKitRemote: callback(ARKitRemoteLandmark.Landmarks); break; #endif case LandmarkType.MTShowShow: LandmarkBase landmarkComp = UnityEngine.Object.FindObjectOfType <MTShowShowLandmark>(); if (!landmarkComp.isActiveAndEnabled) { landmarkComp.enabled = true; landmarkComp.gameObject.SetActive(true); } landmarkComp.GetPhotoUVPosition(tex, callback, uploadProgressCallback); break; default: throw new NotSupportedException(); } }
public Path(Edge edge, float length, UnitType utype = UnitType.Unit, LandmarkType ltype = LandmarkType.None) { this.edge = edge; this.length = length; this.allowedUnitType = utype; this.landmarkType = ltype; }
private static void collectTypeAndPositions(LandmarkType type, int positionX, int positionY) { switch (type) { case LandmarkType.NoseBase: Position nose = new Position("nose", positionX, positionY); positions.Add(nose); return; case LandmarkType.LeftEye: Position leftEye = new Position("leftEye", positionX, positionY); positions.Add(leftEye); return; case LandmarkType.RightEye: Position rightEye = new Position("rightEye", positionX, positionY); positions.Add(rightEye); return; case LandmarkType.BottomMouth: Position bottomMouth = new Position("bottomMouth", positionX, positionY); positions.Add(bottomMouth); return; case LandmarkType.RightMouth: Position rightMouth = new Position("rightMouth", positionX, positionY); positions.Add(rightMouth); return; } }
public static Mesh CreateNasalShadowMesh(Dictionary <string, Vector2> dic, LandmarkType type = LandmarkType.FacePP) { List <Vector3> vectors = new List <Vector3>(); List <int> triangles = new List <int>(); List <Color> colors = new List <Color>(); if (type == LandmarkType.FacePP || type == LandmarkType.FacePPOnline) { var vertices1 = GetVectors(leftNasalShadow, dic); var vertices2 = GetVectors(rightNasalShadow, dic); CreatePredictData(vertices1, vectors.Count, Color.green * 0.5f, Color.green, Color.clear, 0.1f, vectors, triangles, colors); CreatePredictData(vertices2, vectors.Count, Color.red * 0.5f, Color.red, Color.clear, 0.1f, vectors, triangles, colors); } else if (type == LandmarkType.Apple) { var vertices1 = GetVectors(apple_nose_left, dic); var vertices2 = GetVectors(apple_nose_right, dic); Modify(vertices1, -offsetRight, -offsetDown); Modify(vertices2, offsetRight, -offsetDown); CreatePredictData(vertices1, vectors.Count, Color.green * 0.5f, Color.green, Color.clear, 0.1f, vectors, triangles, colors); CreatePredictData(vertices2, vectors.Count, Color.red * 0.5f, Color.red, Color.clear, 0.1f, vectors, triangles, colors); } else if (type == LandmarkType.Tencent) { var vertices1 = GetVectors(tencent_nose_left, dic); var vertices2 = GetVectors(tencent_nose_right, dic); CreatePredictData(vertices1, vectors.Count, Color.green * 0.5f, Color.green, Color.clear, 0.1f, vectors, triangles, colors); CreatePredictData(vertices2, vectors.Count, Color.red * 0.5f, Color.red, Color.clear, 0.1f, vectors, triangles, colors); } else if (type == LandmarkType.MTShowShow) { var vertices1 = GetVectors(mt_nose_left, dic); var vertices2 = GetVectors(mt_nose_right, dic); CreatePredictData(vertices1, vectors.Count, Color.green * 0.5f, Color.green, Color.clear, 0.1f, vectors, triangles, colors); CreatePredictData(vertices2, vectors.Count, Color.red * 0.5f, Color.red, Color.clear, 0.1f, vectors, triangles, colors); } Mesh ret = new Mesh(); ret.SetVertices(vectors); ret.SetTriangles(triangles, 0); ret.SetColors(colors); ret.UploadMeshData(false); return(ret); }
/// <summary> /// Updates the editing object with this editor's values. /// </summary> public void UpdateObject() { if (editingObject == null) { return; } LandmarkType newVal = (LandmarkType)landmarkTypeDropdown.currentlySelected; bool changed = editingObject.landmarkType != newVal; editingObject.landmarkType = newVal; if (changed) { ActionManager.shared.Push(); } }
public override int GetHashCode() { int hash = 1; if (LandmarkType.Length != 0) { hash ^= LandmarkType.GetHashCode(); } if (commonData_ != null) { hash ^= CommonData.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public static bool IsResultUvSpace(this LandmarkType landmarkType) { switch (landmarkType) { case LandmarkType.FacePPOnline: case LandmarkType.Tencent: case LandmarkType.MTShowShow: case LandmarkType.FacePP: case LandmarkType.Apple: return(false); case LandmarkType.MeituOffline: return(true); default: throw new ArgumentOutOfRangeException(nameof(landmarkType), landmarkType, null); } }
public void FromJSON(FloorController api, JSONNode root) { Rectangle r = GetComponent <Rectangle>(); r.SetCenter(new Vector2(root["center_x"].AsFloat, root["center_y"].AsFloat)); r.SetSize(new Vector2(root["width"].AsFloat, root["height"].AsFloat)); r.SetRotation(root["rotation"].AsFloat); LandmarkType t; try { t = (LandmarkType)Enum.Parse(typeof(LandmarkType), root["landmark_type"]); } catch (ArgumentException ex) { Debug.LogWarning("Bad landmark type loaded! " + ex.Message); t = LandmarkType.Restroom; } landmarkType = t; Update(); }
/// <summary> /// Converts a FlaUI <see cref="LandmarkType"/> to a <see cref="UIA.UIA_LandmarkTypeIds"/>. /// </summary> public static object ToLandmarkTypeNative(LandmarkType landmarkType) { switch (landmarkType) { case LandmarkType.CustomLandmark: return(UIA.UIA_LandmarkTypeIds.UIA_CustomLandmarkTypeId); case LandmarkType.FormLandmark: return(UIA.UIA_LandmarkTypeIds.UIA_FormLandmarkTypeId); case LandmarkType.MainLandmark: return(UIA.UIA_LandmarkTypeIds.UIA_MainLandmarkTypeId); case LandmarkType.NavigationLandmark: return(UIA.UIA_LandmarkTypeIds.UIA_NavigationLandmarkTypeId); case LandmarkType.SearchLandmark: return(UIA.UIA_LandmarkTypeIds.UIA_SearchLandmarkTypeId); default: throw new NotSupportedException(); } }
public override string ToString() { string txt = null; if (this.Value != null) { switch (this.Id) { case PropertyType.UIA_RuntimeIdPropertyId: txt = this.ConvertIntArrayToString(); break; case PropertyType.UIA_ControlTypePropertyId: txt = this.Value != null?ControlType.GetInstance().GetNameById(this.Value) : ""; break; case PropertyType.UIA_BoundingRectanglePropertyId: // if bounding rectangle is [0,0,0,0], treat it as non-exist. same behavior as Inspect txt = GetBoundingRectangleText(); break; case PropertyType.UIA_OrientationPropertyId: switch ((int)this.Value) { case 0: //OrientationType_None txt = "None(0)"; break; case 1: //OrientationType_Horizontal txt = "Horizontal(1)"; break; case 2: // OrientationType_Vertical txt = "Vertical(2)"; break; } break; case PropertyType.UIA_PositionInSetPropertyId: case PropertyType.UIA_LevelPropertyId: case PropertyType.UIA_SizeOfSetPropertyId: /// these properties are 1 based. /// if value is smaller than 1, it should be ignored. if (this.Value != null && this.Value > 0) { txt = this.Value?.ToString(); } break; case PropertyType.UIA_HeadingLevelPropertyId: txt = HeadingLevelType.GetInstance().GetNameById(this.Value); break; case PropertyType.UIA_LandmarkTypePropertyId: txt = this.Value != 0 ? LandmarkType.GetInstance().GetNameById(this.Value) : null; // 0 is default value. break; default: if (this.Value is Int32[]) { txt = ((Int32[])this.Value).ConvertInt32ArrayToString(); } else if (this.Value is Double[]) { txt = ((Double[])this.Value).ConvertDoubleArrayToString(); } else { txt = this.Value?.ToString(); } break; } } return(txt); }
internal static extern Int32 PXCMFaceData_LandmarksData_QueryPointIndex(IntPtr instance, LandmarkType name);
public static Mesh CreateMaskMesh1(Dictionary <string, Vector2> dic, float predictHeight, LandmarkType type = LandmarkType.FacePP, AnimationCurve curve = null) { List <Vector3> vectors = new List <Vector3>(); List <int> triangles = new List <int>(); List <Color> colors = new List <Color>(); if (type == LandmarkType.FacePP || type == LandmarkType.FacePPOnline) { var vertices1 = GetVectors(left_eyebrow1, dic); var vertices2 = GetVectors(right_eyebrow1, dic); var vertices3 = GetVectors(left_eye1, dic); var vertices4 = GetVectors(right_eye1, dic); var vertices5 = GetVectors(mouth1, dic); CreatePredictData(vertices1, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices2, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices3, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices4, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices5, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); leftEyeUV = vertices3; rightEyeUV = vertices4; } else if (type == LandmarkType.Apple) { var vertices1 = GetVectors(apple_eyebrow_left, dic); var vertices2 = GetVectors(apple_eyebrow_right, dic); var vertices3 = GetVectors(apple_eye_left, dic); var vertices4 = GetVectors(apple_eye_right, dic); var vertices5 = GetVectors(apple_mouth, dic); var vertices1_predict = PredictEyebrow(vertices1, predictHeight, curve, false); var vertices2_predict = PredictEyebrow(vertices2, predictHeight, curve, true); CreatePredictData(vertices1_predict, vectors.Count, Color.white, Color.clear, Color.white, 0.04f, vectors, triangles, colors); CreatePredictData(vertices2_predict, vectors.Count, Color.white, Color.clear, Color.white, 0.04f, vectors, triangles, colors); CreatePredictData(vertices3, vectors.Count, Color.white, Color.clear, Color.white, 0.08f, vectors, triangles, colors); CreatePredictData(vertices4, vectors.Count, Color.white, Color.clear, Color.white, 0.08f, vectors, triangles, colors); CreatePredictData(vertices5, vectors.Count, Color.white, Color.clear, Color.white, 0.08f, vectors, triangles, colors); leftEyeUV = vertices3; rightEyeUV = vertices4; } else if (type == LandmarkType.Tencent) { var vertices1 = GetVectors(tencent_eyebrow_left, dic); var vertices2 = GetVectors(tencent_eyebrow_right, dic); var vertices3 = GetVectors(tencent_eye_left, dic); var vertices4 = GetVectors(tencent_eye_right, dic); var vertices5 = GetVectors(tencent_mouth, dic); CreatePredictData(vertices1, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices2, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices3, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices4, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices5, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); leftEyeUV = vertices3; rightEyeUV = vertices4; } else if (type == LandmarkType.MTShowShow || type == LandmarkType.MeituOffline || type == LandmarkType.ARKitRemote) { var vertices1 = GetVectors(mt_eyebrow_left, dic); var vertices2 = GetVectors(mt_eyebrow_right, dic); var vertices3 = GetVectors(mt_eye_left, dic); var vertices4 = GetVectors(mt_eye_right, dic); var vertices5 = GetVectors(mt_mouth, dic); CreatePredictData(vertices1, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices2, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices3, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices4, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); CreatePredictData(vertices5, vectors.Count, Color.white, Color.clear, Color.white, 0.02f, vectors, triangles, colors); leftEyeUV = vertices3; rightEyeUV = vertices4; } else { throw new NotSupportedException(); } Mesh ret = new Mesh(); ret.SetVertices(vectors); ret.SetTriangles(triangles, 0); ret.SetColors(colors); ret.UploadMeshData(false); return(ret); }
/* * Mapping function -> retrieves index corresponding to landmark's name. */ public Int32 QueryPointIndex(LandmarkType name) { return PXCMFaceData_LandmarksData_QueryPointIndex(instance, name); }
/* * Mapping function -> retrieves index corresponding to landmark's name. */ public Int32 QueryPointIndex(LandmarkType name) { return(PXCMFaceData_LandmarksData_QueryPointIndex(instance, name)); }