OpenSim
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
PhysicsSensor.cs
Go to the documentation of this file.
1 /*
2  * Copyright (c) Contributors, http://opensimulator.org/
3  * See CONTRIBUTORS.TXT for a full list of copyright holders.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * * Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * * Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * * Neither the name of the OpenSimulator Project nor the
13  * names of its contributors may be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 using System;
29 using System.Timers;
30 using OpenMetaverse;
31 
32 namespace OpenSim.Region.PhysicsModules.SharedBase
33 {
34  [Flags]
35  public enum SenseType : uint
36  {
37  NONE = 0,
38  AGENT = 1,
39  ACTIVE = 2,
40  PASSIVE = 3,
41  SCRIPTED = 4
42  }
43 
44  public abstract class PhysicsSensor
45  {
46  public static PhysicsSensor Null
47  {
48  get { return new NullPhysicsSensor(); }
49  }
50  public abstract Vector3 Position { get; set; }
51  public abstract void TimerCallback (object obj, ElapsedEventArgs eea);
52  public abstract float radianarc {get; set;}
53  public abstract string targetname {get; set;}
54  public abstract Guid targetKey{get;set;}
55  public abstract SenseType sensetype { get;set;}
56  public abstract float range { get;set;}
57  public abstract float rateSeconds { get;set;}
58  }
59 
61  {
62  public override Vector3 Position
63  {
64  get { return Vector3.Zero; }
65  set { return; }
66  }
67  public override void TimerCallback(object obj, ElapsedEventArgs eea)
68  {
69  // don't do squat
70  }
71  public override float radianarc { get { return 0f; } set { } }
72  public override string targetname { get { return ""; } set { } }
73  public override Guid targetKey { get { return Guid.Empty; } set { } }
74  public override SenseType sensetype { get { return SenseType.NONE; } set { } }
75  public override float range { get { return 0; } set { } }
76  public override float rateSeconds { get { return 0; } set { } }
77  }
78 }
override void TimerCallback(object obj, ElapsedEventArgs eea)