public Partial(Entity e1, Entity e2, Position pos1, Position pos2, Geometry.Manifold m, bool useContact1) { this.e1 = e1; this.e2 = e2; var contactWithId = useContact1 ? m.contact1 : (Geometry.Contact)m.contact2; float2 contact = contactWithId.point; id = contactWithId.id.GetHashCode(); { // Normal precomputation J_n = new Float6( new float3(-m.normal, -Lin.Cross(contact - pos1.pos, m.normal)), new float3(m.normal, Lin.Cross(contact - pos2.pos, m.normal)) ); delta = -m.overlap; } { // Tangent precomputation (friction) float2 tangent = Lin.Cross(m.normal, -1); J_t = new Float6( new float3(tangent, Lin.Cross(contact - pos1.pos, tangent)), new float3(-tangent, -Lin.Cross(contact - pos2.pos, tangent))); } }
public ActionResult SaveLin(CreateLinVM model) { if (!ModelState.IsValid) { return(Json(new { Message = "Try Again" })); } var userid = User.Identity.GetUserId(); var user = db.Users.Find(userid); var lin = new Lin() { Author = user, CreatedOn = DateTime.UtcNow, Text = model.Text, ImageUrl = model.ImageUrl, PinImageUrl = string.IsNullOrEmpty(model.PinImageUrl) ? model.ImageUrl : model.PinImageUrl }; db.Lins.Add(lin); db.SaveChanges(); var result = new { Owner = lin.Author.Handle, lin.ImageUrl, lin.PinImageUrl, LinId = lin.Id, lin.Text, CreatedOn = lin.CreatedOn.Humanize(), NumOfComments = lin.Comments.Count() }; return(Json(model)); }
private static void DrawWireframeLightEdgeGizmo(World w, Entity e, float2 edgeDir, float2 source, float rotOffset) { var em = w.EntityManager; var ls = em.GetComponentData <LightSource>(e); var pos = em.GetComponentData <Position>(e); Gizmos.DrawRay((Vector2)pos.pos, (Vector2)Lin.Rotate(edgeDir, rotOffset) * 50); }
private static void DrawWireframeOpaqueEdgeGizmo(World w, Entity e, float2 source, float2 mount, float2 posOffset, float rotOffset) { var em = w.EntityManager; DrawWireframeBoxGizmo(w, e, posOffset, rotOffset); var box = em.GetComponentData <Box>(e); var pos = em.GetComponentData <Position>(e); mount = Lin.Rotate(mount - pos.pos, rotOffset) + pos.pos + posOffset; var dir = math.normalize(mount - source); Gizmos.DrawRay((Vector2)mount, (Vector2)dir * 50); }
public OneWayOneDOFConstraint(TargetVelocityManifold m, Float3 M_inv, float dt) { e = m.e; id = m.id; this.M_inv = M_inv; constraint = new OneDOFConstraint <Float3>( J: new float3(m.normal, Lin.Cross(m.r, m.normal)), M_inv: M_inv, bias: -m.targetSpeed, softness: m.softness ); lambdaAccum = 0; }
void CheckCornerConstraints() { var dict = new MultiDict <int, CornerMountTuple>(); var world = World.DefaultGameObjectInjectionWorld; foreach (var cornerMountTuple in world.GetOrCreateSystem <ShadowConstraintSystem>().GetCornerMountsForDebug()) { dict.Add(cornerMountTuple.partialConstraint.id, cornerMountTuple); } foreach (var kv in dict) { var id = kv.Key; var list = kv.Value; if (list.Count > 1) { Debug.Log("Duplicate corner contact found with id: " + id); foreach (var tup in list) { var manifold = tup.m; float2 point = 0; int numPoints = 0; void AddIfFinite(float2 p) { if (Lin.IsFinite(p)) { point += p; numPoints++; } } AddIfFinite(manifold.p); AddIfFinite(manifold.p1); AddIfFinite(manifold.p2); Debug.Assert(numPoints > 0); point /= numPoints; Gizmos.DrawSphere((Vector2)point, drawRadius); } } } }
public TwoWayTwoDOFConstraint(RevoluteJointManifold m, Float6 M_inv, float dt) { e1 = m.e1; e2 = m.e2; id = m.id; float2 oneCrossR1 = Lin.Cross(1, m.r1); float2 oneCrossR2 = Lin.Cross(1, m.r2); this.M_inv = M_inv; constraint = new TwoDOFConstraint <Float6>( J1: new Float6(-1, 0, -oneCrossR1.x, 1, 0, oneCrossR2.x), J2: new Float6(0, -1, -oneCrossR1.y, 0, 1, oneCrossR2.y), M_inv: M_inv, bias: m.delta * m.beta / dt, softness: m.softness ); lambdaAccum = float2.zero; }
public float2 GlobalToLocal(float2 point) { return(Lin.Rotate(point - pos, -rot)); }
public float2 LocalDirectionToGlobal(float2 direction) { return(Lin.Rotate(direction, rot)); }
public float2 LocalToGlobal(float2 point) { return(Lin.Rotate(point, rot) + pos); }
static SnapInfo[] GetSnapInfo(Transform transform, float snapRadius) { var snapInfos = new List <SnapInfo>(); void Search(Transform t) { foreach (var child in t.GetComponentsInChildren <BoxAuthoring>()) { var closestPoint = child.GetRect().ClosestPoint((Vector2)transform.position, ccwVec: out var ccwVec, cwVec: out var cwVec); if (math.distance(closestPoint, (Vector2)transform.position) < snapRadius) { Vector2 WorldToLocalVec(float2 vec) { return(child.transform.InverseTransformDirection((Vector2)math.normalize(vec))); } ccwVec = WorldToLocalVec(ccwVec); cwVec = WorldToLocalVec(cwVec); snapInfos.Add(new SnapInfo { pos = (Vector2)child.transform.InverseTransformPoint((Vector2)closestPoint) + (Vector2)math.normalize(Lin.Cross(ccwVec, 1)) * .1f, ccw = ccwVec, cw = cwVec, mount = child.gameObject }); } } } if (transform.parent == null) { foreach (var root in SceneManager.GetActiveScene().GetRootGameObjects()) { Search(root.transform); } } else { Search(transform.parent); } return(snapInfos.ToArray()); }
public void Destory(Lin.Comm.Tcp.Session session) { Console.WriteLine("session destory."); }
public void Create(Lin.Comm.Tcp.Session session) { Console.WriteLine("session create."); }
public static void AddValidation(HttpPackage package, Lin.Comm.Http.ValidationErrorData error) { IDictionary<string, object> param = package.GetParams(); foreach (KeyValuePair<string,object> vp in param) { AddValidation(vp.Value as Lin.Core.ViewModel, error, vp.Key + "."); } }
public static void AddValidation(Lin.Core.ViewModel obj,ValidationErrorData error,string name="") { if (obj == null || error == null || error.fieldErrors == null || error.fieldErrors.Count <= 0) { return; } Type objType = obj.GetType(); ValidationErrorData errorTmp = new ValidationErrorData(); IDictionary<string, string[]> eErrors = new Dictionary<string, string[]>(); IDictionary<string, string[]> fFieldErrors = new Dictionary<string, string[]>(); foreach (KeyValuePair<string, string[]> item in error.fieldErrors) { fFieldErrors.Add(item.Key, item.Value); } errorTmp.errors = eErrors; errorTmp.fieldErrors = fFieldErrors; IDictionary<string, string> d = new Dictionary<string, string>(); Type pyType = null; PropertyInfo[] pInfo = objType.GetProperties(); foreach(PropertyInfo py in pInfo) { if (errorTmp.fieldErrors.Count == 0) { break; } if (errorTmp.fieldErrors.ContainsKey(name + py.Name)) { d.Add(py.Name, errorTmp.fieldErrors[name + py.Name][0]); error.fieldErrors.Remove(name + py.Name); //d.Add(py.Name, "数据不能为中文"); //d.Add(py.Name, "数据长度太长"); //d.Add(py.Name, "数据不能字母"); } else { try { //pyType = py.DeclaringType; //if (pyType == typeof(Lin.Core.ViewModel.ViewModel) || pyType == typeof(Lin.Core.ViewModel.ViewModelBase) || pyType == typeof(Lin.Core.ViewModel.ViewModelProperty)) //{ // continue; //} //object o = py.GetValue(obj, null); //if (o != null) //{ // AddValidation(o as Lin.Core.ViewModel.ViewModel, errorTmp, name + py.Name + "."); //} } catch (Exception) { } } } if (d.Count > 0) { obj.PropertyChanged += (object sender, PropertyChangedEventArgs e) => { if (d.ContainsKey(e.PropertyName)) { //obj.SetError(e.PropertyName, d[e.PropertyName]); d.Remove(e.PropertyName); } }; } }
public static Journal GetJournal(IRandomAccessStream stream) { if (stream == null) { return(null); } else { var Reader = new StreamReader(stream.AsStream()); var Doc = XDocument.Parse(Reader.ReadToEnd()); Journal journal; try { journal = (from Jou in Doc.Descendants("Journal") select new Journal { Name = ( string )Jou.Attribute("Name"), ListOfAuthor = from Aut in Jou.Descendants("Author") select new Author { FirstName = ( string )Aut.Attribute("FirstName"), FamilyName = ( string )Aut.Attribute("FamilyName"), EmailAddress = ( string )Aut.Attribute("EmailAddress"), Introduction = ( string )Aut.Attribute("Introduction") }, ListOfIssue = from Iss in Jou.Descendants("Issue") select new Issue { Number = ( long )Iss.Attribute("Number"), PublishTime = Convert.ToDateTime(( string )Iss.Attribute("PublishTime")), Price = ( decimal )Iss.Attribute("Price"), ListOfArticle = from Art in Iss.Descendants("Article") select new Article { Title = ( string )Art.Attribute("Title"), TextLine = from Lin in Art.Descendants("Text").FirstOrDefault().Descendants("Line") select(string) Lin.Attribute("Run"), ListOfAuthorName = from Aut in Art.Descendants("AuthorName") select(string) Aut.Attribute("FirstName") + " " + ( string )Aut.Attribute("FamilyName"), } } }).First(); } catch (System.Exception) { return(null); } foreach (var Aut in journal.ListOfAuthor) { foreach (var Iss in journal.ListOfIssue) { foreach (var Art in Iss.ListOfArticle) { foreach (var aut in Art.ListOfAuthor) { if (Aut == aut) { Aut.ArticleHaveContribute.Add(Art); } } } } } return(journal); } }