source: 2014/24/EemeliK/Zombieland/Jypeli/Physics2DDotNet/DataTypes/IntersectionInfo.cs @ 5974

Revision 5974, 2.1 KB checked in by empaheik, 4 years ago (diff)
Line 
1#region MIT License
2/*
3 * Copyright (c) 2005-2008 Jonathan Mark Porter. http://physics2d.googlepages.com/
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to deal
7 * in the Software without restriction, including without limitation the rights to
8 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 * the Software, and to permit persons to whom the Software is furnished to do so,
10 * subject to the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
16 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 */
22#endregion
23
24
25
26#if UseDouble
27using Scalar = System.Double;
28#else
29using Scalar = System.Single;
30#endif
31using System;
32
33using AdvanceMath;
34
35namespace Physics2DDotNet
36{
37#if !(WINDOWS_PHONE || XBOX)
38    [Serializable]
39#endif
40    public struct IntersectionInfo
41    {
42        public static readonly IntersectionInfo Zero = new IntersectionInfo();
43        public Vector2D Position;
44        public Scalar Distance;
45
46        internal bool normalized;
47        internal Vector2D rawNormal;
48
49        public Vector2D Normal
50        {
51            get
52            {
53                if ( !normalized ) Vector2D.Normalize( ref rawNormal );
54                return rawNormal;
55            }
56        }
57
58        public IntersectionInfo(Vector2D position, Vector2D normal, Scalar distance)
59        {
60            this.Position = position;
61            this.rawNormal = normal;
62            this.normalized = false;
63            this.Distance = distance;
64        }
65    }
66
67}
Note: See TracBrowser for help on using the repository browser.