public static void CatmullRom( ref Vector2 value1, ref Vector2 value2, ref Vector2 value3, ref Vector2 value4, float amount, out Vector2 result ) { result = new Vector2( MathHelper.CatmullRom( value1.x, value2.x, value3.x, value4.x, amount ), MathHelper.CatmullRom( value1.y, value2.y, value3.y, value4.y, amount ) ); }
/// <summary> /// Attaches the bodies with revolute joints. /// </summary> /// <param name="world">The world.</param> /// <param name="bodies">The bodies.</param> /// <param name="localAnchorA">The local anchor A.</param> /// <param name="localAnchorB">The local anchor B.</param> /// <param name="connectFirstAndLast">if set to <c>true</c> [connect first and last].</param> /// <param name="collideConnected">if set to <c>true</c> [collide connected].</param> public static List<RevoluteJoint> AttachBodiesWithRevoluteJoint(World world, List<Body> bodies, Vector2 localAnchorA, Vector2 localAnchorB, bool connectFirstAndLast, bool collideConnected) { List<RevoluteJoint> joints = new List<RevoluteJoint>(bodies.Count + 1); for (int i = 1; i < bodies.Count; i++) { RevoluteJoint joint = new RevoluteJoint(bodies[i], bodies[i - 1], localAnchorA, localAnchorB); joint.CollideConnected = collideConnected; world.AddJoint(joint); joints.Add(joint); } if (connectFirstAndLast) { RevoluteJoint lastjoint = new RevoluteJoint(bodies[0], bodies[bodies.Count - 1], localAnchorA, localAnchorB); lastjoint.CollideConnected = collideConnected; world.AddJoint(lastjoint); joints.Add(lastjoint); } return joints; }
public static Vector2 Divide( Vector2 value1, float divider ) { float factor = 1 / divider; value1.x *= factor; value1.y *= factor; return value1; }
public static FixedPrismaticJoint CreateFixedPrismaticJoint(World world, Body body, Vector2 worldAnchor, Vector2 axis) { FixedPrismaticJoint joint = new FixedPrismaticJoint(body, worldAnchor, axis); world.AddJoint(joint); return joint; }
/// <summary> /// Attaches the bodies with revolute joints. /// </summary> /// <param name="world">The world.</param> /// <param name="bodies">The bodies.</param> /// <param name="localAnchorA">The local anchor A.</param> /// <param name="localAnchorB">The local anchor B.</param> /// <param name="connectFirstAndLast">if set to <c>true</c> [connect first and last].</param> /// <param name="collideConnected">if set to <c>true</c> [collide connected].</param> /// <param name="minLength">Minimum length of the slider joint.</param> /// <param name="maxLength">Maximum length of the slider joint.</param> /// <returns></returns> public static List<SliderJoint> AttachBodiesWithSliderJoint(World world, List<Body> bodies, Vector2 localAnchorA, Vector2 localAnchorB, bool connectFirstAndLast, bool collideConnected, float minLength, float maxLength) { List<SliderJoint> joints = new List<SliderJoint>(bodies.Count + 1); for (int i = 1; i < bodies.Count; i++) { SliderJoint joint = new SliderJoint(bodies[i], bodies[i - 1], localAnchorA, localAnchorB, minLength, maxLength); joint.CollideConnected = collideConnected; world.AddJoint(joint); joints.Add(joint); } if (connectFirstAndLast) { SliderJoint lastjoint = new SliderJoint(bodies[0], bodies[bodies.Count - 1], localAnchorA, localAnchorB, minLength, maxLength); lastjoint.CollideConnected = collideConnected; world.AddJoint(lastjoint); joints.Add(lastjoint); } return joints; }
public FrictionJoint(Body bodyA, Body bodyB, Vector2 localAnchorA, Vector2 localAnchorB) : base(bodyA, bodyB) { JointType = JointType.Friction; LocalAnchorA = localAnchorA; LocalAnchorB = localAnchorB; }
public static FixedDistanceJoint CreateFixedDistanceJoint(World world, Body body, Vector2 localAnchor, Vector2 worldAnchor) { FixedDistanceJoint distanceJoint = new FixedDistanceJoint(body, localAnchor, worldAnchor); world.AddJoint(distanceJoint); return distanceJoint; }
public EdgeShape(Vector2 start, Vector2 end) : base(0) { ShapeType = ShapeType.Edge; _radius = Settings.PolygonRadius; Set(start, end); }
public static DistanceJoint CreateDistanceJoint(World world, Body bodyA, Body bodyB, Vector2 anchorA, Vector2 anchorB) { DistanceJoint distanceJoint = new DistanceJoint(bodyA, bodyB, anchorA, anchorB); world.AddJoint(distanceJoint); return distanceJoint; }
internal CircleShape() : base(0) { ShapeType = ShapeType.Circle; _radius = 0.0f; _position = Vector2.zero; }
/// <summary> /// Constructor /// </summary> public AbstractForceController() : base(ControllerType.AbstractForceController) { Enabled = true; Strength = 1.0f; Position = new Vector2(0, 0); MaximumSpeed = 100.0f; TimingMode = TimingModes.Switched; ImpulseTime = 0.0f; ImpulseLength = 1.0f; Triggered = false; StrengthCurve = new Curve(); Variation = 0.0f; Randomize = new System.Random(1234); DecayMode = DecayModes.None; DecayCurve = new Curve(); DecayStart = 0.0f; DecayEnd = 0.0f; StrengthCurve.Keys.Add(new CurveKey(0, 5)); StrengthCurve.Keys.Add(new CurveKey(0.1f, 5)); StrengthCurve.Keys.Add(new CurveKey(0.2f, -4)); StrengthCurve.Keys.Add(new CurveKey(1f, 0)); }
public CircleShape(float radius, float density) : base(density) { ShapeType = ShapeType.Circle; _radius = radius; _position = Vector2.zero; ComputeProperties(); }
/// <summary> /// Initializes a new instance of the <see cref="Path"/> class. /// </summary> /// <param name="vertices">The vertices to created the path from.</param> public Path(Vector2[] vertices) { ControlPoints = new List<Vector2>(vertices.Length); for (int i = 0; i < vertices.Length; i++) { Add(vertices[i]); } }
public static Fixture AttachCircle(float radius, float density, Body body, Vector2 offset, object userData) { if (radius <= 0) throw new ArgumentOutOfRangeException("radius", "Radius must be more than 0 meters"); CircleShape circleShape = new CircleShape(radius, density); circleShape.Position = offset; return body.CreateFixture(circleShape, userData); }
/// <summary> /// You need to specify a local anchor point /// where they are attached and the relative body angle. The position /// of the anchor point is important for computing the reaction torque. /// You can change the anchor points relative to bodyA or bodyB by changing LocalAnchorA /// and/or LocalAnchorB. /// </summary> /// <param name="bodyA">The first body</param> /// <param name="bodyB">The second body</param> /// <param name="localAnchorA">The first body anchor.</param> /// <param name="localAnchorB">The second body anchor.</param> public WeldJoint(Body bodyA, Body bodyB, Vector2 localAnchorA, Vector2 localAnchorB) : base(bodyA, bodyB) { JointType = JointType.Weld; LocalAnchorA = localAnchorA; LocalAnchorB = localAnchorB; ReferenceAngle = BodyB.Rotation - BodyA.Rotation; }
public LineJoint(Body bA, Body bB, Vector2 anchor, Vector2 axis) : base(bA, bB) { JointType = JointType.Line; LocalAnchorA = bA.GetLocalPoint(anchor); LocalAnchorB = bB.GetLocalPoint(anchor); LocalXAxis = bA.GetLocalVector(axis); }
/// <summary> /// Creates a breakable body. You would want to remove collinear points before using this. /// </summary> /// <param name="world">The world.</param> /// <param name="vertices">The vertices.</param> /// <param name="density">The density.</param> /// <param name="position">The position.</param> /// <returns></returns> public static BreakableBody CreateBreakableBody(World world, Vertices vertices, float density, Vector2 position, object userData) { List<Vertices> triangles = EarclipDecomposer.ConvexPartition(vertices); BreakableBody breakableBody = new BreakableBody(triangles, world, density, userData); breakableBody.MainBody.Position = position; world.AddBreakableBody(breakableBody); return breakableBody; }
/// <summary> /// Initializes a new instance of the <see cref="SliderJoint"/> class. /// Warning: Do not use a zero or short length. /// </summary> /// <param name="bodyA">The first body.</param> /// <param name="bodyB">The second body.</param> /// <param name="localAnchorA">The first body anchor.</param> /// <param name="localAnchorB">The second body anchor.</param> /// <param name="minLength">The minimum length between anchorpoints</param> /// <param name="maxlength">The maximum length between anchorpoints.</param> public SliderJoint(Body bodyA, Body bodyB, Vector2 localAnchorA, Vector2 localAnchorB, float minLength, float maxlength) : base(bodyA, bodyB) { JointType = JointType.Slider; LocalAnchorA = localAnchorA; LocalAnchorB = localAnchorB; MaxLength = maxlength; MinLength = minLength; }
public FixedLineJoint(Body body, Vector2 worldAnchor, Vector2 axis) : base(body) { JointType = JointType.FixedLine; BodyB = BodyA; LocalAnchorA = worldAnchor; LocalAnchorB = BodyB.GetLocalPoint(worldAnchor); LocalXAxis = axis; }
/// <summary> /// Initializes a new instance of the <see cref="BuoyancyController"/> class. /// </summary> /// <param name="container">Only bodies inside this AABB will be influenced by the controller</param> /// <param name="density">Density of the fluid</param> /// <param name="linearDragCoefficient">Linear drag coefficient of the fluid</param> /// <param name="rotationalDragCoefficient">Rotational drag coefficient of the fluid</param> /// <param name="gravity">The direction gravity acts. Buoyancy force will act in opposite direction of gravity.</param> public BuoyancyController(AABB container, float density, float linearDragCoefficient, float rotationalDragCoefficient, Vector2 gravity) : base(ControllerType.BuoyancyController) { Container = container; _normal = new Vector2(0, 1); Density = density; LinearDragCoefficient = linearDragCoefficient; AngularDragCoefficient = rotationalDragCoefficient; _gravity = gravity; }
public Vertex(WaterFace face, int offset) { Position = new UnityEngine.Vector3( face.GetSingle(offset + 0), face.GetSingle(offset + 2), face.GetSingle(offset + 1)); CurrentSpeed = new UnityEngine.Vector2( face.GetSingle(offset + 3), face.GetSingle(offset + 4)); WaveHeight = face.GetSingle(offset + 6); }
/// <summary> /// This requires a world target point, /// tuning parameters, and the time step. /// </summary> /// <param name="body">The body.</param> /// <param name="worldAnchor">The target.</param> public FixedMouseJoint(Body body, Vector2 worldAnchor) : base(body) { JointType = JointType.FixedMouse; Frequency = 5.0f; DampingRatio = 0.7f; Debug.Assert(worldAnchor.IsValid()); Transform xf1; BodyA.GetTransform(out xf1); _worldAnchor = worldAnchor; LocalAnchorA = BodyA.GetLocalPoint(worldAnchor); }
public FixedFrictionJoint(Body body, Vector2 localAnchorA) : base(body) { JointType = JointType.FixedFriction; LocalAnchorA = localAnchorA; //Setting default max force and max torque const float gravity = 10.0f; // For a circle: I = 0.5 * m * r * r ==> r = sqrt(2 * I / m) float radius = (float)Math.Sqrt(2.0 * (body.Inertia / body.Mass)); MaxForce = body.Mass * gravity; MaxTorque = body.Mass * radius * gravity; }
public RopeJoint(Body bodyA, Body bodyB, Vector2 localAnchorA, Vector2 localAnchorB) : base(bodyA, bodyB) { JointType = JointType.Rope; LocalAnchorA = localAnchorA; LocalAnchorB = localAnchorB; Vector2 d = WorldAnchorB - WorldAnchorA; MaxLength = d.magnitude; _mass = 0.0f; _impulse = 0.0f; _state = LimitState.Inactive; _length = 0.0f; }
public static float DistanceBetweenPointAndLineSegment(ref Vector2 point, ref Vector2 lineEndPoint1, ref Vector2 lineEndPoint2) { Vector2 v = VectorMath.Subtract(lineEndPoint2, lineEndPoint1); Vector2 w = VectorMath.Subtract(point, lineEndPoint1); float c1 = Vector2.Dot(w, v); if (c1 <= 0) return DistanceBetweenPointAndPoint(ref point, ref lineEndPoint1); float c2 = Vector2.Dot(v, v); if (c2 <= c1) return DistanceBetweenPointAndPoint(ref point, ref lineEndPoint2); float b = c1 / c2; Vector2 pointOnLine = VectorMath.Add(lineEndPoint1, VectorMath.Multiply(v, b)); return DistanceBetweenPointAndPoint(ref point, ref pointOnLine); }
//From Mark Bayazit's convex decomposition algorithm public static Vector2 LineIntersect(Vector2 p1, Vector2 p2, Vector2 q1, Vector2 q2) { Vector2 i = Vector2.zero; float a1 = p2.y - p1.y; float b1 = p1.x - p2.x; float c1 = a1 * p1.x + b1 * p1.y; float a2 = q2.y - q1.y; float b2 = q1.x - q2.x; float c2 = a2 * q1.x + b2 * q1.y; float det = a1 * b2 - a2 * b1; if (!MathUtils.FloatEquals(det, 0)) { // lines are not parallel i.x = (b2 * c1 - b1 * c2) / det; i.y = (a1 * c2 - a2 * c1) / det; } return i; }
public override void ApplyForce(float dt, float strength) { foreach (Body body in World.BodyList) { //TODO: Consider Force Type float decayMultiplier = GetDecayMultiplier(body); if (decayMultiplier != 0) { Vector2 forceVector; if (ForceType == ForceTypes.Point) { forceVector = body.Position - Position; } else { Direction.Normalize(); forceVector = Direction; if (forceVector.magnitude == 0) forceVector = new Vector2(0, 1); } //TODO: Consider Divergence: //forceVector = Vector2.Transform(forceVector, Matrix.CreateRotationZ((MathHelper.Pi - MathHelper.Pi/2) * (float)Randomize.NextDouble())); // Calculate random Variation if (Variation != 0) { float strengthVariation = (float)Randomize.NextDouble() * MathHelper.Clamp(Variation, 0, 1); forceVector.Normalize(); body.ApplyForce(forceVector * strength * decayMultiplier * strengthVariation); } else { forceVector.Normalize(); body.ApplyForce(forceVector * strength * decayMultiplier); } } } }
static int _m_GetScrollValue(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); JW.Framework.UGUI.UIListView __cl_gen_to_be_invoked = (JW.Framework.UGUI.UIListView)translator.FastGetCSObj(L, 1); { UnityEngine.Vector2 __cl_gen_ret = __cl_gen_to_be_invoked.GetScrollValue( ); translator.PushUnityEngineVector2(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } }
static StackObject *RectangleContainsScreenPoint_9(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 3); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Camera cam = (UnityEngine.Camera) typeof(UnityEngine.Camera).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.Vector2 screenPoint = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 3); UnityEngine.RectTransform rect = (UnityEngine.RectTransform) typeof(UnityEngine.RectTransform).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); var result_of_this_method = UnityEngine.RectTransformUtility.RectangleContainsScreenPoint(rect, screenPoint, cam); __ret->ObjectType = ObjectTypes.Integer; __ret->Value = result_of_this_method ? 1 : 0; return(__ret + 1); }
static int _m_Reflect_xlua_st_(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); { UnityEngine.Vector2 _inDirection; translator.Get(L, 1, out _inDirection); UnityEngine.Vector2 _inNormal; translator.Get(L, 2, out _inNormal); UnityEngine.Vector2 gen_ret = UnityEngine.Vector2.Reflect(_inDirection, _inNormal); translator.PushUnityEngineVector2(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } }
/// <summary> /// Extension for UnityEngine.Vector2 to compare 2 Vector2 to each other. /// Parameters are: /// other -> Vector2 to Compare; /// XYZ -> To which Axis or link of Axes to compare (Optional, default - XY); /// IsEqual -> do you want equality or not (Optional, default - true); /// PS: Don't choose Z axis it would throw exception. /// </summary> /// <param name="value">This Vector2</param> /// <param name="other">Vector2 to Compare</param> /// <param name="xy">Axis or link of Axes to compare (Optional, default - XY)</param> /// <param name="isEqual">LesserAndEqual or only Lesser (Optional, default - true)</param> /// <returns>boolean of the comparision result</returns> /// <exception cref="System.ArgumentOutOfRangeException">Don't choose Z axis it would throw exception</exception> public static bool IsLesserOrEqual(this UnityEngine.Vector2 value, UnityEngine.Vector2 other, XYZ xy = XYZ.XY, bool isEqual = true) { // ReSharper disable once SwitchStatementHandlesSomeKnownEnumValuesWithDefault switch (xy) { case XYZ.X: return(isEqual ? value.x <= other.x : value.x < other.x); case XYZ.Y: return(isEqual ? value.y <= other.y : value.y < other.y); case XYZ.XY: return(isEqual ? value.x <= other.x && value.y <= other.y : value.x < other.x && value.y < other.y); default: { UnityEngine.Debug.LogError("It is 2 dimensional vector it doesn't have Z dimension"); throw new System.ArgumentOutOfRangeException(nameof(xy), xy, null); } } }
static int _m_WorldToScreenPoint_xlua_st_(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); { UnityEngine.Camera _cam = (UnityEngine.Camera)translator.GetObject(L, 1, typeof(UnityEngine.Camera)); UnityEngine.Vector3 _worldPoint; translator.Get(L, 2, out _worldPoint); UnityEngine.Vector2 gen_ret = UnityEngine.RectTransformUtility.WorldToScreenPoint(_cam, _worldPoint); translator.PushUnityEngineVector2(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } }
static StackObject *Lerp_14(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 3); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); System.Single @t = *(float *)&ptr_of_this_method->Value; ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.Vector2 @b = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags) 16); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 3); UnityEngine.Vector2 @a = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags) 16); __intp.Free(ptr_of_this_method); var result_of_this_method = UnityEngine.Vector2.Lerp(@a, @b, @t); return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method)); }
static StackObject *Create_3(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 4); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); System.Single pixelsPerUnit = *(float *)&ptr_of_this_method->Value; ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.Vector2 pivot = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 3); UnityEngine.Rect rect = (UnityEngine.Rect) typeof(UnityEngine.Rect).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 4); UnityEngine.Texture2D texture = (UnityEngine.Texture2D) typeof(UnityEngine.Texture2D).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); var result_of_this_method = UnityEngine.Sprite.Create(texture, rect, pivot, pixelsPerUnit); return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method)); }
static int _m_Min_xlua_st_(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); { UnityEngine.Vector2 lhs; translator.Get(L, 1, out lhs); UnityEngine.Vector2 rhs; translator.Get(L, 2, out rhs); UnityEngine.Vector2 __cl_gen_ret = UnityEngine.Vector2.Min(lhs, rhs); translator.PushUnityEngineVector2(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } }
static int _m_ClampMagnitude_xlua_st_(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); { UnityEngine.Vector2 _vector; translator.Get(L, 1, out _vector); float _maxLength = (float)LuaAPI.lua_tonumber(L, 2); UnityEngine.Vector2 gen_ret = UnityEngine.Vector2.ClampMagnitude(_vector, _maxLength); translator.PushUnityEngineVector2(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } }
static StackObject *Ctor_0(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 2); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); System.Single @y = *(float *)&ptr_of_this_method->Value; ptr_of_this_method = ILIntepreter.Minus(__esp, 2); System.Single @x = *(float *)&ptr_of_this_method->Value; var result_of_this_method = new UnityEngine.Vector2(@x, @y); if (!isNewObj) { __ret--; if (ILRuntime.Runtime.Generated.CLRBindings.s_UnityEngine_Vector2_Binding_Binder != null) { ILRuntime.Runtime.Generated.CLRBindings.s_UnityEngine_Vector2_Binding_Binder.WriteBackValue(__domain, __ret, __mStack, ref result_of_this_method); } else { WriteBackInstance(__domain, __ret, __mStack, ref result_of_this_method); } return(__ret); } if (ILRuntime.Runtime.Generated.CLRBindings.s_UnityEngine_Vector2_Binding_Binder != null) { ILRuntime.Runtime.Generated.CLRBindings.s_UnityEngine_Vector2_Binding_Binder.PushValue(ref result_of_this_method, __intp, __ret, __mStack); return(__ret + 1); } else { return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method)); } }
static StackObject *AddVert_7(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 7); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Vector4 @tangent = (UnityEngine.Vector4) typeof(UnityEngine.Vector4).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.Vector3 @normal = (UnityEngine.Vector3) typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 3); UnityEngine.Vector2 @uv1 = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 4); UnityEngine.Vector2 @uv0 = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 5); UnityEngine.Color32 @color = (UnityEngine.Color32) typeof(UnityEngine.Color32).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 6); UnityEngine.Vector3 @position = (UnityEngine.Vector3) typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 7); UnityEngine.UI.VertexHelper instance_of_this_method; instance_of_this_method = (UnityEngine.UI.VertexHelper) typeof(UnityEngine.UI.VertexHelper).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); instance_of_this_method.AddVert(@position, @color, @uv0, @uv1, @normal, @tangent); return(__ret); }
static int _m_Max_xlua_st_(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); { UnityEngine.Vector2 _lhs; translator.Get(L, 1, out _lhs); UnityEngine.Vector2 _rhs; translator.Get(L, 2, out _rhs); UnityEngine.Vector2 gen_ret = UnityEngine.Vector2.Max(_lhs, _rhs); translator.PushUnityEngineVector2(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } }
static StackObject *set_direction_3(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 2); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Vector2 @value = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method); UnityEngine.Ray2D instance_of_this_method = (UnityEngine.Ray2D) typeof(UnityEngine.Ray2D).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); instance_of_this_method.direction = value; ptr_of_this_method = ILIntepreter.Minus(__esp, 2); WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method); __intp.Free(ptr_of_this_method); return(__ret); }
static int _m_ToV2(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); { UnityEngine.Vector3 _v3; translator.Get(L, 1, out _v3); UnityEngine.Vector2 gen_ret = Pathfinding.MathHelper.ToV2( _v3); translator.PushUnityEngineVector2(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } }
/// <summary> /// Creates a chain. /// </summary> /// <param name="world">The world.</param> /// <param name="start">The start.</param> /// <param name="end">The end.</param> /// <param name="linkWidth">The width.</param> /// <param name="linkHeight">The height.</param> /// <param name="fixStart">if set to <c>true</c> [fix start].</param> /// <param name="fixEnd">if set to <c>true</c> [fix end].</param> /// <param name="numberOfLinks">The number of links.</param> /// <param name="linkDensity">The link density.</param> /// <returns></returns> public static Path CreateChain(World world, Vector2 start, Vector2 end, float linkWidth, float linkHeight, bool fixStart, bool fixEnd, int numberOfLinks, float linkDensity) { //Chain start / end Path path = new Path(); path.Add(start); path.Add(end); //A single chainlink PolygonShape shape = new PolygonShape(PolygonTools.CreateRectangle(linkWidth, linkHeight), linkDensity); //Use PathManager to create all the chainlinks based on the chainlink created before. List <Body> chainLinks = PathManager.EvenlyDistributeShapesAlongPath(world, path, shape, BodyType.Dynamic, numberOfLinks); if (fixStart) { //Fix the first chainlink to the world JointFactory.CreateFixedRevoluteJoint(world, chainLinks[0], new Vector2(0, -(linkHeight / 2)), chainLinks[0].Position); } if (fixEnd) { //Fix the last chainlink to the world JointFactory.CreateFixedRevoluteJoint(world, chainLinks[chainLinks.Count - 1], new Vector2(0, (linkHeight / 2)), chainLinks[chainLinks.Count - 1].Position); } //Attach all the chainlinks together with a revolute joint PathManager.AttachBodiesWithRevoluteJoint(world, chainLinks, new Vector2(0, -linkHeight), new Vector2(0, linkHeight), false, false); return(path); }
/// <summary> /// Called from OnGUI or EditorWindow.OnGUI /// </summary> public virtual void DisplayTreeView(DisplayTypes displayType) { using (new UnityEngine.GUILayout.HorizontalScope("box")) { AssignDefaults(); if (!m_forceDefaultSkin) { ApplySkinKeepingScrollbars(); } switch (displayType) { case DisplayTypes.USE_SCROLL_VIEW: using (var scope = new UnityEngine.GUILayout.ScrollViewScope(m_scrollView) ) //, GUILayout.MaxWidth(Width), GUILayout.MaxHeight(Height)); { m_scrollView = scope.scrollPosition; RootItem.DisplayItem(0, TreeViewItem.SiblingOrder.FIRST_CHILD); } break; //case TreeViewControl.DisplayTypes.USE_SCROLL_AREA: // using (var area = new GUILayout.AreaScope(new Rect(X, Y, Width, Height))) // using (var scope = new GUILayout.ScrollViewScope(m_scrollView))//, GUILayout.MaxWidth(Width), GUILayout.MaxHeight(Height)); // { // m_scrollView = scope.scrollPosition; // RootItem.DisplayItem(0, TreeViewItem.SiblingOrder.FIRST_CHILD); // } // break; default: RootItem.DisplayItem(0, TreeViewItem.SiblingOrder.FIRST_CHILD); break; } UnityEngine.GUI.skin = null; } }
/// <summary> /// Creates a capsule. /// Note: Automatically decomposes the capsule if it contains too many vertices (controlled by Settings.MaxPolygonVertices) /// </summary> /// <param name="world">The world.</param> /// <param name="height">The height.</param> /// <param name="topRadius">The top radius.</param> /// <param name="topEdges">The top edges.</param> /// <param name="bottomRadius">The bottom radius.</param> /// <param name="bottomEdges">The bottom edges.</param> /// <param name="density">The density.</param> /// <param name="position">The position.</param> /// <returns></returns> public static Body CreateCapsule(World world, float height, float topRadius, int topEdges, float bottomRadius, int bottomEdges, float density, Vector2 position, object userData) { Vertices verts = PolygonTools.CreateCapsule(height, topRadius, topEdges, bottomRadius, bottomEdges); Body body; //There are too many vertices in the capsule. We decompose it. if (verts.Count >= Settings.MaxPolygonVertices) { List <Vertices> vertList = EarclipDecomposer.ConvexPartition(verts); body = CreateCompoundPolygon(world, vertList, density, userData); body.Position = position; return(body); } body = CreatePolygon(world, verts, density, userData); body.Position = position; return(body); }
static int _m_LerpUnclamped_xlua_st_(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); { UnityEngine.Vector2 _a; translator.Get(L, 1, out _a); UnityEngine.Vector2 _b; translator.Get(L, 2, out _b); float _t = (float)LuaAPI.lua_tonumber(L, 3); UnityEngine.Vector2 gen_ret = UnityEngine.Vector2.LerpUnclamped(_a, _b, _t); translator.PushUnityEngineVector2(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } }
static int _m_MoveTowards_xlua_st_(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); try { { UnityEngine.Vector2 current; translator.Get(L, 1, out current); UnityEngine.Vector2 target; translator.Get(L, 2, out target); float maxDistanceDelta = (float)LuaAPI.lua_tonumber(L, 3); UnityEngine.Vector2 __cl_gen_ret = UnityEngine.Vector2.MoveTowards(current, target, maxDistanceDelta); translator.PushUnityEngineVector2(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } }
static StackObject *IsRaycastLocationValid_8(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 3); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Camera eventCamera = (UnityEngine.Camera) typeof(UnityEngine.Camera).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.Vector2 sp = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 3); UnityEngine.CanvasGroup instance_of_this_method; instance_of_this_method = (UnityEngine.CanvasGroup) typeof(UnityEngine.CanvasGroup).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); var result_of_this_method = instance_of_this_method.IsRaycastLocationValid(sp, eventCamera); __ret->ObjectType = ObjectTypes.Integer; __ret->Value = result_of_this_method ? 1 : 0; return(__ret + 1); }
static int _m_GetReactionForce(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); UnityEngine.Joint2D __cl_gen_to_be_invoked = (UnityEngine.Joint2D)translator.FastGetCSObj(L, 1); try { { float timeStep = (float)LuaAPI.lua_tonumber(L, 2); UnityEngine.Vector2 __cl_gen_ret = __cl_gen_to_be_invoked.GetReactionForce(timeStep); translator.PushUnityEngineVector2(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } }
static StackObject *Ctor_0(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 2); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Vector2 direction = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.Vector2 origin = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); var result_of_this_method = new UnityEngine.Ray2D(origin, direction); if (!isNewObj) { __ret--; WriteBackInstance(__domain, __ret, __mStack, ref result_of_this_method); return(__ret); } return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method)); }
public void __Gen_Delegate_Imp6(XLua.LuaTable p0, UnityEngine.Vector2 p1, object p2) { #if THREAD_SAFE || HOTFIX_ENABLE lock (luaEnv.luaEnvLock) { #endif RealStatePtr L = luaEnv.rawL; int errFunc = LuaAPI.pcall_prepare(L, errorFuncRef, luaReference); ObjectTranslator translator = luaEnv.translator; translator.Push(L, p0); translator.PushUnityEngineVector2(L, p1); translator.PushAny(L, p2); PCall(L, 3, 0, errFunc); LuaAPI.lua_settop(L, errFunc - 1); #if THREAD_SAFE || HOTFIX_ENABLE } #endif }
static StackObject *Create_26(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 3); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Vector2 @pivot = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.Rect @rect = (UnityEngine.Rect) typeof(UnityEngine.Rect).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 3); UnityEngine.Texture2D @texture = (UnityEngine.Texture2D) typeof(UnityEngine.Texture2D).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); var result_of_this_method = UnityEngine.Sprite.Create(@texture, @rect, @pivot); return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method)); }
static StackObject *PixelAdjustPoint_1(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 3); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Canvas @canvas = (UnityEngine.Canvas) typeof(UnityEngine.Canvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.Transform @elementTransform = (UnityEngine.Transform) typeof(UnityEngine.Transform).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 3); UnityEngine.Vector2 @point = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); var result_of_this_method = UnityEngine.RectTransformUtility.PixelAdjustPoint(@point, @elementTransform, @canvas); return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method)); }
static StackObject *op_Implicit_9(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 1); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Vector2 @v = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); var result_of_this_method = (UnityEngine.Vector3)v; if (ILRuntime.Runtime.Generated.CLRBindings.s_UnityEngine_Vector3_Binding_Binder != null) { ILRuntime.Runtime.Generated.CLRBindings.s_UnityEngine_Vector3_Binding_Binder.PushValue(ref result_of_this_method, __intp, __ret, __mStack); return(__ret + 1); } else { return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method)); } }
static StackObject *CreatePrimitive_7(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj) { CSHotFix.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain; StackObject *ptr_of_this_method; StackObject *__ret = ILIntepreter.Minus(__esp, 4); ptr_of_this_method = ILIntepreter.Minus(__esp, 1); UnityEngine.Vector2 offset = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 2); UnityEngine.Vector2 scale = (UnityEngine.Vector2) typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); ptr_of_this_method = ILIntepreter.Minus(__esp, 3); System.Int32 sides = ptr_of_this_method->Value; ptr_of_this_method = ILIntepreter.Minus(__esp, 4); UnityEngine.PolygonCollider2D instance_of_this_method; instance_of_this_method = (UnityEngine.PolygonCollider2D) typeof(UnityEngine.PolygonCollider2D).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack)); __intp.Free(ptr_of_this_method); instance_of_this_method.CreatePrimitive(sides, scale, offset); return(__ret); }
static int _m_PixelAdjustPoint_xlua_st_(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); try { { UnityEngine.Vector2 point; translator.Get(L, 1, out point); UnityEngine.Transform elementTransform = (UnityEngine.Transform)translator.GetObject(L, 2, typeof(UnityEngine.Transform)); UnityEngine.Canvas canvas = (UnityEngine.Canvas)translator.GetObject(L, 3, typeof(UnityEngine.Canvas)); UnityEngine.Vector2 __cl_gen_ret = UnityEngine.RectTransformUtility.PixelAdjustPoint(point, elementTransform, canvas); translator.PushUnityEngineVector2(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } }
static int _m_LerpUnclamped_xlua_st_(RealStatePtr L) { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); try { { UnityEngine.Vector2 a; translator.Get(L, 1, out a); UnityEngine.Vector2 b; translator.Get(L, 2, out b); float t = (float)LuaAPI.lua_tonumber(L, 3); UnityEngine.Vector2 __cl_gen_ret = UnityEngine.Vector2.LerpUnclamped(a, b, t); translator.PushUnityEngineVector2(L, __cl_gen_ret); return(1); } } catch (System.Exception __gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e)); } }
internal void Synchronize(IBroadPhase broadPhase, ref Transform transform1, ref Transform transform2) { if (ProxyCount == 0) { return; } for (int i = 0; i < ProxyCount; ++i) { FixtureProxy proxy = Proxies[i]; // Compute an AABB that covers the swept Shape (may miss some rotation effect). AABB aabb1, aabb2; Shape.ComputeAABB(out aabb1, ref transform1, proxy.ChildIndex); Shape.ComputeAABB(out aabb2, ref transform2, proxy.ChildIndex); proxy.AABB.Combine(ref aabb1, ref aabb2); Vector2 displacement = transform2.Position - transform1.Position; broadPhase.MoveProxy(proxy.ProxyId, ref proxy.AABB, displacement); } }
/// <summary> /// Creates a chain. /// </summary> /// <param name="world">The world.</param> /// <param name="start">The start.</param> /// <param name="end">The end.</param> /// <param name="linkWidth">The width.</param> /// <param name="linkHeight">The height.</param> /// <param name="fixStart">if set to <c>true</c> [fix start].</param> /// <param name="fixEnd">if set to <c>true</c> [fix end].</param> /// <param name="numberOfLinks">The number of links.</param> /// <param name="linkDensity">The link density.</param> /// <returns></returns> public static Path CreateChain(World world, Vector2 start, Vector2 end, float linkWidth, float linkHeight, bool fixStart, bool fixEnd, int numberOfLinks, float linkDensity) { //Chain start / end Path path = new Path(); path.Add(start); path.Add(end); //A single chainlink PolygonShape shape = new PolygonShape(PolygonTools.CreateRectangle(linkWidth, linkHeight), linkDensity); //Use PathManager to create all the chainlinks based on the chainlink created before. List<Body> chainLinks = PathManager.EvenlyDistributeShapesAlongPath(world, path, shape, BodyType.Dynamic, numberOfLinks); if (fixStart) { //Fix the first chainlink to the world JointFactory.CreateFixedRevoluteJoint(world, chainLinks[0], new Vector2(0, -(linkHeight / 2)), chainLinks[0].Position); } if (fixEnd) { //Fix the last chainlink to the world JointFactory.CreateFixedRevoluteJoint(world, chainLinks[chainLinks.Count - 1], new Vector2(0, (linkHeight / 2)), chainLinks[chainLinks.Count - 1].Position); } //Attach all the chainlinks together with a revolute joint PathManager.AttachBodiesWithRevoluteJoint(world, chainLinks, new Vector2(0, -linkHeight), new Vector2(0, linkHeight), false, false); return (path); }
public override float ComputeSubmergedArea(Vector2 normal, float offset, Transform xf, out Vector2 sc) { sc = Vector2.zero; return 0; }
/// <summary> /// Test a point for containment in this shape. This only works for convex shapes. /// </summary> /// <param name="transform">The shape world transform.</param> /// <param name="point">a point in world coordinates.</param> /// <returns>True if the point is inside the shape</returns> public override bool TestPoint(ref Transform transform, ref Vector2 point) { return false; }