aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs124
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSConstraint.cs3
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs9
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs50
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs60
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs86
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BSScene.cs371
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSTerrainManager.cs464
-rw-r--r--OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs115
-rw-r--r--ThirdPartyLicenses/Newtonsoft-JsonDotNet.txt23
-rwxr-xr-xbin/Newtonsoft.Json.Net20.dllbin356352 -> 0 bytes
-rw-r--r--bin/Newtonsoft.Json.XML5827
-rw-r--r--bin/Newtonsoft.Json.pdbbin742912 -> 0 bytes
-rwxr-xr-xbin/lib32/BulletSim.dllbin552960 -> 556544 bytes
-rwxr-xr-xbin/lib32/libBulletSim.sobin2387278 -> 2423331 bytes
-rwxr-xr-xbin/lib64/BulletSim.dllbin710144 -> 715264 bytes
-rwxr-xr-xbin/lib64/libBulletSim.sobin2599821 -> 2645594 bytes
-rw-r--r--prebuild.xml1
18 files changed, 962 insertions, 6171 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
index 1b23a36..747ae71 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs
@@ -34,13 +34,12 @@ using OpenSim.Region.Physics.Manager;
34 34
35namespace OpenSim.Region.Physics.BulletSPlugin 35namespace OpenSim.Region.Physics.BulletSPlugin
36{ 36{
37public class BSCharacter : PhysicsActor 37public class BSCharacter : BSPhysObject
38{ 38{
39 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 39 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
40 private static readonly string LogHeader = "[BULLETS CHAR]"; 40 private static readonly string LogHeader = "[BULLETS CHAR]";
41 41
42 private BSScene _scene; 42 public BSScene Scene { get; private set; }
43 public BSScene Scene { get { return _scene; } }
44 private String _avName; 43 private String _avName;
45 // private bool _stopped; 44 // private bool _stopped;
46 private Vector3 _size; 45 private Vector3 _size;
@@ -74,11 +73,8 @@ public class BSCharacter : PhysicsActor
74 private bool _kinematic; 73 private bool _kinematic;
75 private float _buoyancy; 74 private float _buoyancy;
76 75
77 private BulletBody m_body; 76 public override BulletBody Body { get; set; }
78 public BulletBody Body { 77 public override BSLinkset Linkset { get; set; }
79 get { return m_body; }
80 set { m_body = value; }
81 }
82 78
83 private int _subscribedEventsMs = 0; 79 private int _subscribedEventsMs = 0;
84 private int _nextCollisionOkTime = 0; 80 private int _nextCollisionOkTime = 0;
@@ -95,7 +91,7 @@ public class BSCharacter : PhysicsActor
95 { 91 {
96 _localID = localID; 92 _localID = localID;
97 _avName = avName; 93 _avName = avName;
98 _scene = parent_scene; 94 Scene = parent_scene;
99 _position = pos; 95 _position = pos;
100 _size = size; 96 _size = size;
101 _flying = isFlying; 97 _flying = isFlying;
@@ -104,10 +100,12 @@ public class BSCharacter : PhysicsActor
104 _buoyancy = ComputeBuoyancyFromFlying(isFlying); 100 _buoyancy = ComputeBuoyancyFromFlying(isFlying);
105 // The dimensions of the avatar capsule are kept in the scale. 101 // The dimensions of the avatar capsule are kept in the scale.
106 // Physics creates a unit capsule which is scaled by the physics engine. 102 // Physics creates a unit capsule which is scaled by the physics engine.
107 _scale = new Vector3(_scene.Params.avatarCapsuleRadius, _scene.Params.avatarCapsuleRadius, size.Z); 103 _scale = new Vector3(Scene.Params.avatarCapsuleRadius, Scene.Params.avatarCapsuleRadius, size.Z);
108 _density = _scene.Params.avatarDensity; 104 _density = Scene.Params.avatarDensity;
109 ComputeAvatarVolumeAndMass(); // set _avatarVolume and _mass based on capsule size, _density and _scale 105 ComputeAvatarVolumeAndMass(); // set _avatarVolume and _mass based on capsule size, _density and _scale
110 106
107 Linkset = new BSLinkset(Scene, this);
108
111 ShapeData shapeData = new ShapeData(); 109 ShapeData shapeData = new ShapeData();
112 shapeData.ID = _localID; 110 shapeData.ID = _localID;
113 shapeData.Type = ShapeData.PhysicsShapeType.SHAPE_AVATAR; 111 shapeData.Type = ShapeData.PhysicsShapeType.SHAPE_AVATAR;
@@ -118,19 +116,19 @@ public class BSCharacter : PhysicsActor
118 shapeData.Mass = _mass; 116 shapeData.Mass = _mass;
119 shapeData.Buoyancy = _buoyancy; 117 shapeData.Buoyancy = _buoyancy;
120 shapeData.Static = ShapeData.numericFalse; 118 shapeData.Static = ShapeData.numericFalse;
121 shapeData.Friction = _scene.Params.avatarFriction; 119 shapeData.Friction = Scene.Params.avatarFriction;
122 shapeData.Restitution = _scene.Params.avatarRestitution; 120 shapeData.Restitution = Scene.Params.avatarRestitution;
123 121
124 // do actual create at taint time 122 // do actual create at taint time
125 _scene.TaintedObject("BSCharacter.create", delegate() 123 Scene.TaintedObject("BSCharacter.create", delegate()
126 { 124 {
127 DetailLog("{0},BSCharacter.create", _localID); 125 DetailLog("{0},BSCharacter.create", _localID);
128 BulletSimAPI.CreateObject(parent_scene.WorldID, shapeData); 126 BulletSimAPI.CreateObject(Scene.WorldID, shapeData);
129 127
130 // Set the buoyancy for flying. This will be refactored when all the settings happen in C# 128 // Set the buoyancy for flying. This will be refactored when all the settings happen in C#
131 BulletSimAPI.SetObjectBuoyancy(_scene.WorldID, LocalID, _buoyancy); 129 BulletSimAPI.SetObjectBuoyancy(Scene.WorldID, LocalID, _buoyancy);
132 130
133 m_body = new BulletBody(LocalID, BulletSimAPI.GetBodyHandle2(_scene.World.Ptr, LocalID)); 131 Body = new BulletBody(LocalID, BulletSimAPI.GetBodyHandle2(Scene.World.Ptr, LocalID));
134 // avatars get all collisions no matter what (makes walking on ground and such work) 132 // avatars get all collisions no matter what (makes walking on ground and such work)
135 BulletSimAPI.AddToCollisionFlags2(Body.Ptr, CollisionFlags.BS_SUBSCRIBE_COLLISION_EVENTS); 133 BulletSimAPI.AddToCollisionFlags2(Body.Ptr, CollisionFlags.BS_SUBSCRIBE_COLLISION_EVENTS);
136 }); 134 });
@@ -139,12 +137,12 @@ public class BSCharacter : PhysicsActor
139 } 137 }
140 138
141 // called when this character is being destroyed and the resources should be released 139 // called when this character is being destroyed and the resources should be released
142 public void Destroy() 140 public override void Destroy()
143 { 141 {
144 DetailLog("{0},BSCharacter.Destroy", LocalID); 142 DetailLog("{0},BSCharacter.Destroy", LocalID);
145 _scene.TaintedObject("BSCharacter.destroy", delegate() 143 Scene.TaintedObject("BSCharacter.destroy", delegate()
146 { 144 {
147 BulletSimAPI.DestroyObject(_scene.WorldID, _localID); 145 BulletSimAPI.DestroyObject(Scene.WorldID, _localID);
148 }); 146 });
149 } 147 }
150 148
@@ -173,9 +171,9 @@ public class BSCharacter : PhysicsActor
173 171
174 ComputeAvatarVolumeAndMass(); 172 ComputeAvatarVolumeAndMass();
175 173
176 _scene.TaintedObject("BSCharacter.setSize", delegate() 174 Scene.TaintedObject("BSCharacter.setSize", delegate()
177 { 175 {
178 BulletSimAPI.SetObjectScaleMass(_scene.WorldID, LocalID, _scale, _mass, true); 176 BulletSimAPI.SetObjectScaleMass(Scene.WorldID, LocalID, _scale, _mass, true);
179 }); 177 });
180 178
181 } 179 }
@@ -204,17 +202,17 @@ public class BSCharacter : PhysicsActor
204 202
205 public override Vector3 Position { 203 public override Vector3 Position {
206 get { 204 get {
207 // _position = BulletSimAPI.GetObjectPosition(_scene.WorldID, _localID); 205 // _position = BulletSimAPI.GetObjectPosition(Scene.WorldID, _localID);
208 return _position; 206 return _position;
209 } 207 }
210 set { 208 set {
211 _position = value; 209 _position = value;
212 PositionSanityCheck(); 210 PositionSanityCheck();
213 211
214 _scene.TaintedObject("BSCharacter.setPosition", delegate() 212 Scene.TaintedObject("BSCharacter.setPosition", delegate()
215 { 213 {
216 DetailLog("{0},BSCharacter.SetPosition,taint,pos={1},orient={2}", LocalID, _position, _orientation); 214 DetailLog("{0},BSCharacter.SetPosition,taint,pos={1},orient={2}", LocalID, _position, _orientation);
217 BulletSimAPI.SetObjectTranslation(_scene.WorldID, _localID, _position, _orientation); 215 BulletSimAPI.SetObjectTranslation(Scene.WorldID, _localID, _position, _orientation);
218 }); 216 });
219 } 217 }
220 } 218 }
@@ -227,16 +225,35 @@ public class BSCharacter : PhysicsActor
227 bool ret = false; 225 bool ret = false;
228 226
229 // If below the ground, move the avatar up 227 // If below the ground, move the avatar up
230 float terrainHeight = Scene.GetTerrainHeightAtXYZ(_position); 228 float terrainHeight = Scene.TerrainManager.GetTerrainHeightAtXYZ(_position);
231 if (_position.Z < terrainHeight) 229 if (Position.Z < terrainHeight)
232 { 230 {
233 DetailLog("{0},BSCharacter.PositionAdjustUnderGround,call,pos={1},orient={2}", LocalID, _position, _orientation); 231 DetailLog("{0},BSCharacter.PositionAdjustUnderGround,call,pos={1},terrain={2}", LocalID, _position, terrainHeight);
234 _position.Z = terrainHeight + 2.0f; 232 _position.Z = terrainHeight + 2.0f;
235 ret = true; 233 ret = true;
236 } 234 }
237 235
238 // TODO: check for out of bounds 236 // TODO: check for out of bounds
237 return ret;
238 }
239 239
240 // A version of the sanity check that also makes sure a new position value is
241 // pushed back to the physics engine. This routine would be used by anyone
242 // who is not already pushing the value.
243 private bool PositionSanityCheck2()
244 {
245 bool ret = false;
246 if (PositionSanityCheck())
247 {
248 // The new position value must be pushed into the physics engine but we can't
249 // just assign to "Position" because of potential call loops.
250 Scene.TaintedObject("BSCharacter.PositionSanityCheck", delegate()
251 {
252 DetailLog("{0},BSCharacter.PositionSanityCheck,taint,pos={1},orient={2}", LocalID, _position, _orientation);
253 BulletSimAPI.SetObjectTranslation(Scene.WorldID, _localID, _position, _orientation);
254 });
255 ret = true;
256 }
240 return ret; 257 return ret;
241 } 258 }
242 259
@@ -245,6 +262,10 @@ public class BSCharacter : PhysicsActor
245 return _mass; 262 return _mass;
246 } 263 }
247 } 264 }
265
266 // used when we only want this prim's mass and not the linkset thing
267 public override float MassRaw { get {return _mass; } }
268
248 public override Vector3 Force { 269 public override Vector3 Force {
249 get { return _force; } 270 get { return _force; }
250 set { 271 set {
@@ -277,10 +298,10 @@ public class BSCharacter : PhysicsActor
277 set { 298 set {
278 _velocity = value; 299 _velocity = value;
279 // m_log.DebugFormat("{0}: set velocity = {1}", LogHeader, _velocity); 300 // m_log.DebugFormat("{0}: set velocity = {1}", LogHeader, _velocity);
280 _scene.TaintedObject("BSCharacter.setVelocity", delegate() 301 Scene.TaintedObject("BSCharacter.setVelocity", delegate()
281 { 302 {
282 DetailLog("{0},BSCharacter.setVelocity,taint,vel={1}", LocalID, _velocity); 303 DetailLog("{0},BSCharacter.setVelocity,taint,vel={1}", LocalID, _velocity);
283 BulletSimAPI.SetObjectVelocity(_scene.WorldID, _localID, _velocity); 304 BulletSimAPI.SetObjectVelocity(Scene.WorldID, _localID, _velocity);
284 }); 305 });
285 } 306 }
286 } 307 }
@@ -303,10 +324,10 @@ public class BSCharacter : PhysicsActor
303 set { 324 set {
304 _orientation = value; 325 _orientation = value;
305 // m_log.DebugFormat("{0}: set orientation to {1}", LogHeader, _orientation); 326 // m_log.DebugFormat("{0}: set orientation to {1}", LogHeader, _orientation);
306 _scene.TaintedObject("BSCharacter.setOrientation", delegate() 327 Scene.TaintedObject("BSCharacter.setOrientation", delegate()
307 { 328 {
308 // _position = BulletSimAPI.GetObjectPosition(_scene.WorldID, _localID); 329 // _position = BulletSimAPI.GetObjectPosition(Scene.WorldID, _localID);
309 BulletSimAPI.SetObjectTranslation(_scene.WorldID, _localID, _position, _orientation); 330 BulletSimAPI.SetObjectTranslation(Scene.WorldID, _localID, _position, _orientation);
310 }); 331 });
311 } 332 }
312 } 333 }
@@ -343,11 +364,11 @@ public class BSCharacter : PhysicsActor
343 set { _throttleUpdates = value; } 364 set { _throttleUpdates = value; }
344 } 365 }
345 public override bool IsColliding { 366 public override bool IsColliding {
346 get { return (_collidingStep == _scene.SimulationStep); } 367 get { return (_collidingStep == Scene.SimulationStep); }
347 set { _isColliding = value; } 368 set { _isColliding = value; }
348 } 369 }
349 public override bool CollidingGround { 370 public override bool CollidingGround {
350 get { return (_collidingGroundStep == _scene.SimulationStep); } 371 get { return (_collidingGroundStep == Scene.SimulationStep); }
351 set { _collidingGround = value; } 372 set { _collidingGround = value; }
352 } 373 }
353 public override bool CollidingObj { 374 public override bool CollidingObj {
@@ -369,10 +390,10 @@ public class BSCharacter : PhysicsActor
369 public override float Buoyancy { 390 public override float Buoyancy {
370 get { return _buoyancy; } 391 get { return _buoyancy; }
371 set { _buoyancy = value; 392 set { _buoyancy = value;
372 _scene.TaintedObject("BSCharacter.setBuoyancy", delegate() 393 Scene.TaintedObject("BSCharacter.setBuoyancy", delegate()
373 { 394 {
374 DetailLog("{0},BSCharacter.setBuoyancy,taint,buoy={1}", LocalID, _buoyancy); 395 DetailLog("{0},BSCharacter.setBuoyancy,taint,buoy={1}", LocalID, _buoyancy);
375 BulletSimAPI.SetObjectBuoyancy(_scene.WorldID, LocalID, _buoyancy); 396 BulletSimAPI.SetObjectBuoyancy(Scene.WorldID, LocalID, _buoyancy);
376 }); 397 });
377 } 398 }
378 } 399 }
@@ -416,7 +437,7 @@ public class BSCharacter : PhysicsActor
416 _force.Y += force.Y; 437 _force.Y += force.Y;
417 _force.Z += force.Z; 438 _force.Z += force.Z;
418 // m_log.DebugFormat("{0}: AddForce. adding={1}, newForce={2}", LogHeader, force, _force); 439 // m_log.DebugFormat("{0}: AddForce. adding={1}, newForce={2}", LogHeader, force, _force);
419 _scene.TaintedObject("BSCharacter.AddForce", delegate() 440 Scene.TaintedObject("BSCharacter.AddForce", delegate()
420 { 441 {
421 DetailLog("{0},BSCharacter.setAddForce,taint,addedForce={1}", LocalID, _force); 442 DetailLog("{0},BSCharacter.setAddForce,taint,addedForce={1}", LocalID, _force);
422 BulletSimAPI.AddObjectForce2(Body.Ptr, _force); 443 BulletSimAPI.AddObjectForce2(Body.Ptr, _force);
@@ -448,6 +469,12 @@ public class BSCharacter : PhysicsActor
448 }); 469 });
449 } 470 }
450 } 471 }
472
473 public override void ZeroMotion()
474 {
475 return;
476 }
477
451 // Stop collision events 478 // Stop collision events
452 public override void UnSubscribeEvents() { 479 public override void UnSubscribeEvents() {
453 _subscribedEventsMs = 0; 480 _subscribedEventsMs = 0;
@@ -481,7 +508,7 @@ public class BSCharacter : PhysicsActor
481 508
482 // The physics engine says that properties have updated. Update same and inform 509 // The physics engine says that properties have updated. Update same and inform
483 // the world that things have changed. 510 // the world that things have changed.
484 public void UpdateProperties(EntityProperties entprop) 511 public override void UpdateProperties(EntityProperties entprop)
485 { 512 {
486 _position = entprop.Position; 513 _position = entprop.Position;
487 _orientation = entprop.Rotation; 514 _orientation = entprop.Rotation;
@@ -491,30 +518,33 @@ public class BSCharacter : PhysicsActor
491 // Avatars don't report their changes the usual way. Changes are checked for in the heartbeat loop. 518 // Avatars don't report their changes the usual way. Changes are checked for in the heartbeat loop.
492 // base.RequestPhysicsterseUpdate(); 519 // base.RequestPhysicsterseUpdate();
493 520
494 DetailLog("{0},BSCharacter.UpdateProperties,call,pos={1},orient={2},vel={3},accel={4},rotVel={5}", 521 // Do some sanity checking for the avatar. Make sure it's above ground and inbounds.
495 LocalID, entprop.Position, entprop.Rotation, entprop.Velocity, 522 PositionSanityCheck2();
496 entprop.Acceleration, entprop.RotationalVelocity); 523
524 float heightHere = Scene.TerrainManager.GetTerrainHeightAtXYZ(_position); // only for debug
525 DetailLog("{0},BSCharacter.UpdateProperties,call,pos={1},orient={2},vel={3},accel={4},rotVel={5},terrain={6}",
526 LocalID, _position, _orientation, _velocity, _acceleration, _rotationalVelocity, heightHere);
497 } 527 }
498 528
499 // Called by the scene when a collision with this object is reported 529 // Called by the scene when a collision with this object is reported
500 // The collision, if it should be reported to the character, is placed in a collection 530 // The collision, if it should be reported to the character, is placed in a collection
501 // that will later be sent to the simulator when SendCollisions() is called. 531 // that will later be sent to the simulator when SendCollisions() is called.
502 CollisionEventUpdate collisionCollection = null; 532 CollisionEventUpdate collisionCollection = null;
503 public void Collide(uint collidingWith, ActorTypes type, Vector3 contactPoint, Vector3 contactNormal, float pentrationDepth) 533 public override void Collide(uint collidingWith, BSPhysObject collidee, ActorTypes type, Vector3 contactPoint, Vector3 contactNormal, float pentrationDepth)
504 { 534 {
505 // m_log.DebugFormat("{0}: Collide: ms={1}, id={2}, with={3}", LogHeader, _subscribedEventsMs, LocalID, collidingWith); 535 // m_log.DebugFormat("{0}: Collide: ms={1}, id={2}, with={3}", LogHeader, _subscribedEventsMs, LocalID, collidingWith);
506 536
507 // The following makes IsColliding() and IsCollidingGround() work 537 // The following makes IsColliding() and IsCollidingGround() work
508 _collidingStep = _scene.SimulationStep; 538 _collidingStep = Scene.SimulationStep;
509 if (collidingWith == BSScene.TERRAIN_ID || collidingWith == BSScene.GROUNDPLANE_ID) 539 if (collidingWith == BSScene.TERRAIN_ID || collidingWith == BSScene.GROUNDPLANE_ID)
510 { 540 {
511 _collidingGroundStep = _scene.SimulationStep; 541 _collidingGroundStep = Scene.SimulationStep;
512 } 542 }
513 // DetailLog("{0},BSCharacter.Collison,call,with={1}", LocalID, collidingWith); 543 // DetailLog("{0},BSCharacter.Collison,call,with={1}", LocalID, collidingWith);
514 544
515 // throttle collisions to the rate specified in the subscription 545 // throttle collisions to the rate specified in the subscription
516 if (_subscribedEventsMs != 0) { 546 if (_subscribedEventsMs != 0) {
517 int nowTime = _scene.SimulationNowTime; 547 int nowTime = Scene.SimulationNowTime;
518 if (nowTime >= _nextCollisionOkTime) { 548 if (nowTime >= _nextCollisionOkTime) {
519 _nextCollisionOkTime = nowTime + _subscribedEventsMs; 549 _nextCollisionOkTime = nowTime + _subscribedEventsMs;
520 550
@@ -525,7 +555,7 @@ public class BSCharacter : PhysicsActor
525 } 555 }
526 } 556 }
527 557
528 public void SendCollisions() 558 public override void SendCollisions()
529 { 559 {
530 /* 560 /*
531 if (collisionCollection != null && collisionCollection.Count > 0) 561 if (collisionCollection != null && collisionCollection.Count > 0)
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSConstraint.cs b/OpenSim/Region/Physics/BulletSPlugin/BSConstraint.cs
index 25084d8..d9270d1 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSConstraint.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSConstraint.cs
@@ -48,11 +48,10 @@ public abstract class BSConstraint : IDisposable
48 { 48 {
49 if (m_enabled) 49 if (m_enabled)
50 { 50 {
51 // BulletSimAPI.RemoveConstraint(m_world.ID, m_body1.ID, m_body2.ID); 51 m_enabled = false;
52 bool success = BulletSimAPI.DestroyConstraint2(m_world.Ptr, m_constraint.Ptr); 52 bool success = BulletSimAPI.DestroyConstraint2(m_world.Ptr, m_constraint.Ptr);
53 m_world.scene.DetailLog("{0},BSConstraint.Dispose,taint,body1={1},body2={2},success={3}", BSScene.DetailLogZero, m_body1.ID, m_body2.ID, success); 53 m_world.scene.DetailLog("{0},BSConstraint.Dispose,taint,body1={1},body2={2},success={3}", BSScene.DetailLogZero, m_body1.ID, m_body2.ID, success);
54 m_constraint.Ptr = System.IntPtr.Zero; 54 m_constraint.Ptr = System.IntPtr.Zero;
55 m_enabled = false;
56 } 55 }
57 } 56 }
58 57
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs b/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs
index d7213fc..8169e99 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSDynamics.cs
@@ -465,6 +465,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin
465 } 465 }
466 }//end SetDefaultsForType 466 }//end SetDefaultsForType
467 467
468 // One step of the vehicle properties for the next 'pTimestep' seconds.
468 internal void Step(float pTimestep) 469 internal void Step(float pTimestep)
469 { 470 {
470 if (m_type == Vehicle.TYPE_NONE) return; 471 if (m_type == Vehicle.TYPE_NONE) return;
@@ -592,9 +593,9 @@ namespace OpenSim.Region.Physics.BulletSPlugin
592 } 593 }
593 594
594 // If below the terrain, move us above the ground a little. 595 // If below the terrain, move us above the ground a little.
595 if (pos.Z < m_prim.Scene.GetTerrainHeightAtXYZ(pos)) 596 if (pos.Z < m_prim.Scene.TerrainManager.GetTerrainHeightAtXYZ(pos))
596 { 597 {
597 pos.Z = m_prim.Scene.GetTerrainHeightAtXYZ(pos) + 2; 598 pos.Z = m_prim.Scene.TerrainManager.GetTerrainHeightAtXYZ(pos) + 2;
598 m_prim.Position = pos; 599 m_prim.Position = pos;
599 VDetailLog("{0},MoveLinear,terrainHeight,pos={1}", m_prim.LocalID, pos); 600 VDetailLog("{0},MoveLinear,terrainHeight,pos={1}", m_prim.LocalID, pos);
600 } 601 }
@@ -609,7 +610,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin
609 } 610 }
610 if ((m_flags & VehicleFlag.HOVER_TERRAIN_ONLY) != 0) 611 if ((m_flags & VehicleFlag.HOVER_TERRAIN_ONLY) != 0)
611 { 612 {
612 m_VhoverTargetHeight = m_prim.Scene.GetTerrainHeightAtXY(pos.X, pos.Y) + m_VhoverHeight; 613 m_VhoverTargetHeight = m_prim.Scene.TerrainManager.GetTerrainHeightAtXY(pos.X, pos.Y) + m_VhoverHeight;
613 } 614 }
614 if ((m_flags & VehicleFlag.HOVER_GLOBAL_HEIGHT) != 0) 615 if ((m_flags & VehicleFlag.HOVER_GLOBAL_HEIGHT) != 0)
615 { 616 {
@@ -673,7 +674,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin
673 { 674 {
674 grav.Z = (float)(grav.Z * 1.125); 675 grav.Z = (float)(grav.Z * 1.125);
675 } 676 }
676 float terraintemp = m_prim.Scene.GetTerrainHeightAtXYZ(pos); 677 float terraintemp = m_prim.Scene.TerrainManager.GetTerrainHeightAtXYZ(pos);
677 float postemp = (pos.Z - terraintemp); 678 float postemp = (pos.Z - terraintemp);
678 if (postemp > 2.5f) 679 if (postemp > 2.5f)
679 { 680 {
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs b/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs
index 9e3f0db..b04e1b6 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs
@@ -36,8 +36,8 @@ public class BSLinkset
36{ 36{
37 private static string LogHeader = "[BULLETSIM LINKSET]"; 37 private static string LogHeader = "[BULLETSIM LINKSET]";
38 38
39 private BSPrim m_linksetRoot; 39 private BSPhysObject m_linksetRoot;
40 public BSPrim LinksetRoot { get { return m_linksetRoot; } } 40 public BSPhysObject LinksetRoot { get { return m_linksetRoot; } }
41 41
42 private BSScene m_physicsScene; 42 private BSScene m_physicsScene;
43 public BSScene PhysicsScene { get { return m_physicsScene; } } 43 public BSScene PhysicsScene { get { return m_physicsScene; } }
@@ -46,7 +46,7 @@ public class BSLinkset
46 public int LinksetID { get; private set; } 46 public int LinksetID { get; private set; }
47 47
48 // The children under the root in this linkset 48 // The children under the root in this linkset
49 private List<BSPrim> m_children; 49 private List<BSPhysObject> m_children;
50 50
51 // We lock the diddling of linkset classes to prevent any badness. 51 // We lock the diddling of linkset classes to prevent any badness.
52 // This locks the modification of the instances of this class. Changes 52 // This locks the modification of the instances of this class. Changes
@@ -74,7 +74,7 @@ public class BSLinkset
74 get { return ComputeLinksetGeometricCenter(); } 74 get { return ComputeLinksetGeometricCenter(); }
75 } 75 }
76 76
77 public BSLinkset(BSScene scene, BSPrim parent) 77 public BSLinkset(BSScene scene, BSPhysObject parent)
78 { 78 {
79 // A simple linkset of one (no children) 79 // A simple linkset of one (no children)
80 LinksetID = m_nextLinksetID++; 80 LinksetID = m_nextLinksetID++;
@@ -83,14 +83,14 @@ public class BSLinkset
83 m_nextLinksetID = 1; 83 m_nextLinksetID = 1;
84 m_physicsScene = scene; 84 m_physicsScene = scene;
85 m_linksetRoot = parent; 85 m_linksetRoot = parent;
86 m_children = new List<BSPrim>(); 86 m_children = new List<BSPhysObject>();
87 m_mass = parent.MassRaw; 87 m_mass = parent.MassRaw;
88 } 88 }
89 89
90 // Link to a linkset where the child knows the parent. 90 // Link to a linkset where the child knows the parent.
91 // Parent changing should not happen so do some sanity checking. 91 // Parent changing should not happen so do some sanity checking.
92 // We return the parent's linkset so the child can track its membership. 92 // We return the parent's linkset so the child can track its membership.
93 public BSLinkset AddMeToLinkset(BSPrim child) 93 public BSLinkset AddMeToLinkset(BSPhysObject child)
94 { 94 {
95 lock (m_linksetActivityLock) 95 lock (m_linksetActivityLock)
96 { 96 {
@@ -102,7 +102,7 @@ public class BSLinkset
102 // Remove a child from a linkset. 102 // Remove a child from a linkset.
103 // Returns a new linkset for the child which is a linkset of one (just the 103 // Returns a new linkset for the child which is a linkset of one (just the
104 // orphened child). 104 // orphened child).
105 public BSLinkset RemoveMeFromLinkset(BSPrim child) 105 public BSLinkset RemoveMeFromLinkset(BSPhysObject child)
106 { 106 {
107 lock (m_linksetActivityLock) 107 lock (m_linksetActivityLock)
108 { 108 {
@@ -129,7 +129,7 @@ public class BSLinkset
129 } 129 }
130 130
131 // Return 'true' if the passed object is the root object of this linkset 131 // Return 'true' if the passed object is the root object of this linkset
132 public bool IsRoot(BSPrim requestor) 132 public bool IsRoot(BSPhysObject requestor)
133 { 133 {
134 return (requestor.LocalID == m_linksetRoot.LocalID); 134 return (requestor.LocalID == m_linksetRoot.LocalID);
135 } 135 }
@@ -140,12 +140,12 @@ public class BSLinkset
140 public bool HasAnyChildren { get { return (m_children.Count > 0); } } 140 public bool HasAnyChildren { get { return (m_children.Count > 0); } }
141 141
142 // Return 'true' if this child is in this linkset 142 // Return 'true' if this child is in this linkset
143 public bool HasChild(BSPrim child) 143 public bool HasChild(BSPhysObject child)
144 { 144 {
145 bool ret = false; 145 bool ret = false;
146 lock (m_linksetActivityLock) 146 lock (m_linksetActivityLock)
147 { 147 {
148 foreach (BSPrim bp in m_children) 148 foreach (BSPhysObject bp in m_children)
149 { 149 {
150 if (child.LocalID == bp.LocalID) 150 if (child.LocalID == bp.LocalID)
151 { 151 {
@@ -160,7 +160,7 @@ public class BSLinkset
160 private float ComputeLinksetMass() 160 private float ComputeLinksetMass()
161 { 161 {
162 float mass = m_linksetRoot.MassRaw; 162 float mass = m_linksetRoot.MassRaw;
163 foreach (BSPrim bp in m_children) 163 foreach (BSPhysObject bp in m_children)
164 { 164 {
165 mass += bp.MassRaw; 165 mass += bp.MassRaw;
166 } 166 }
@@ -174,7 +174,7 @@ public class BSLinkset
174 174
175 lock (m_linksetActivityLock) 175 lock (m_linksetActivityLock)
176 { 176 {
177 foreach (BSPrim bp in m_children) 177 foreach (BSPhysObject bp in m_children)
178 { 178 {
179 com += bp.Position * bp.MassRaw; 179 com += bp.Position * bp.MassRaw;
180 totalMass += bp.MassRaw; 180 totalMass += bp.MassRaw;
@@ -192,7 +192,7 @@ public class BSLinkset
192 192
193 lock (m_linksetActivityLock) 193 lock (m_linksetActivityLock)
194 { 194 {
195 foreach (BSPrim bp in m_children) 195 foreach (BSPhysObject bp in m_children)
196 { 196 {
197 com += bp.Position * bp.MassRaw; 197 com += bp.Position * bp.MassRaw;
198 } 198 }
@@ -204,7 +204,7 @@ public class BSLinkset
204 204
205 // When physical properties are changed the linkset needs to recalculate 205 // When physical properties are changed the linkset needs to recalculate
206 // its internal properties. 206 // its internal properties.
207 public void Refresh(BSPrim requestor) 207 public void Refresh(BSPhysObject requestor)
208 { 208 {
209 // If there are no children, there aren't any constraints to recompute 209 // If there are no children, there aren't any constraints to recompute
210 if (!HasAnyChildren) 210 if (!HasAnyChildren)
@@ -230,7 +230,7 @@ public class BSLinkset
230 float linksetMass = LinksetMass; 230 float linksetMass = LinksetMass;
231 lock (m_linksetActivityLock) 231 lock (m_linksetActivityLock)
232 { 232 {
233 foreach (BSPrim child in m_children) 233 foreach (BSPhysObject child in m_children)
234 { 234 {
235 BSConstraint constrain; 235 BSConstraint constrain;
236 if (m_physicsScene.Constraints.TryGetConstraint(LinksetRoot.Body, child.Body, out constrain)) 236 if (m_physicsScene.Constraints.TryGetConstraint(LinksetRoot.Body, child.Body, out constrain))
@@ -255,14 +255,14 @@ public class BSLinkset
255 255
256 // I am the root of a linkset and a new child is being added 256 // I am the root of a linkset and a new child is being added
257 // Called while LinkActivity is locked. 257 // Called while LinkActivity is locked.
258 private void AddChildToLinkset(BSPrim child) 258 private void AddChildToLinkset(BSPhysObject child)
259 { 259 {
260 if (!HasChild(child)) 260 if (!HasChild(child))
261 { 261 {
262 m_children.Add(child); 262 m_children.Add(child);
263 263
264 BSPrim rootx = LinksetRoot; // capture the root as of now 264 BSPhysObject rootx = LinksetRoot; // capture the root as of now
265 BSPrim childx = child; 265 BSPhysObject childx = child;
266 m_physicsScene.TaintedObject("AddChildToLinkset", delegate() 266 m_physicsScene.TaintedObject("AddChildToLinkset", delegate()
267 { 267 {
268 DetailLog("{0},AddChildToLinkset,taint,child={1}", m_linksetRoot.LocalID, child.LocalID); 268 DetailLog("{0},AddChildToLinkset,taint,child={1}", m_linksetRoot.LocalID, child.LocalID);
@@ -277,7 +277,7 @@ public class BSLinkset
277 // it's still connected to the linkset. 277 // it's still connected to the linkset.
278 // Normal OpenSimulator operation will never do this because other SceneObjectPart information 278 // Normal OpenSimulator operation will never do this because other SceneObjectPart information
279 // has to be updated also (like pointer to prim's parent). 279 // has to be updated also (like pointer to prim's parent).
280 private void RemoveChildFromOtherLinkset(BSPrim pchild) 280 private void RemoveChildFromOtherLinkset(BSPhysObject pchild)
281 { 281 {
282 pchild.Linkset = new BSLinkset(m_physicsScene, pchild); 282 pchild.Linkset = new BSLinkset(m_physicsScene, pchild);
283 RemoveChildFromLinkset(pchild); 283 RemoveChildFromLinkset(pchild);
@@ -285,12 +285,12 @@ public class BSLinkset
285 285
286 // I am the root of a linkset and one of my children is being removed. 286 // I am the root of a linkset and one of my children is being removed.
287 // Safe to call even if the child is not really in my linkset. 287 // Safe to call even if the child is not really in my linkset.
288 private void RemoveChildFromLinkset(BSPrim child) 288 private void RemoveChildFromLinkset(BSPhysObject child)
289 { 289 {
290 if (m_children.Remove(child)) 290 if (m_children.Remove(child))
291 { 291 {
292 BSPrim rootx = LinksetRoot; // capture the root as of now 292 BSPhysObject rootx = LinksetRoot; // capture the root as of now
293 BSPrim childx = child; 293 BSPhysObject childx = child;
294 m_physicsScene.TaintedObject("RemoveChildFromLinkset", delegate() 294 m_physicsScene.TaintedObject("RemoveChildFromLinkset", delegate()
295 { 295 {
296 DetailLog("{0},RemoveChildFromLinkset,taint,child={1}", m_linksetRoot.LocalID, child.LocalID); 296 DetailLog("{0},RemoveChildFromLinkset,taint,child={1}", m_linksetRoot.LocalID, child.LocalID);
@@ -310,7 +310,7 @@ public class BSLinkset
310 310
311 // Create a constraint between me (root of linkset) and the passed prim (the child). 311 // Create a constraint between me (root of linkset) and the passed prim (the child).
312 // Called at taint time! 312 // Called at taint time!
313 private void PhysicallyLinkAChildToRoot(BSPrim rootPrim, BSPrim childPrim) 313 private void PhysicallyLinkAChildToRoot(BSPhysObject rootPrim, BSPhysObject childPrim)
314 { 314 {
315 // Zero motion for children so they don't interpolate 315 // Zero motion for children so they don't interpolate
316 childPrim.ZeroMotion(); 316 childPrim.ZeroMotion();
@@ -383,7 +383,7 @@ public class BSLinkset
383 383
384 // Remove linkage between myself and a particular child 384 // Remove linkage between myself and a particular child
385 // Called at taint time! 385 // Called at taint time!
386 private void PhysicallyUnlinkAChildFromRoot(BSPrim rootPrim, BSPrim childPrim) 386 private void PhysicallyUnlinkAChildFromRoot(BSPhysObject rootPrim, BSPhysObject childPrim)
387 { 387 {
388 DetailLog("{0},PhysicallyUnlinkAChildFromRoot,taint,root={1},child={2}", rootPrim.LocalID, rootPrim.LocalID, childPrim.LocalID); 388 DetailLog("{0},PhysicallyUnlinkAChildFromRoot,taint,root={1},child={2}", rootPrim.LocalID, rootPrim.LocalID, childPrim.LocalID);
389 389
@@ -396,7 +396,7 @@ public class BSLinkset
396 396
397 // Remove linkage between myself and any possible children I might have 397 // Remove linkage between myself and any possible children I might have
398 // Called at taint time! 398 // Called at taint time!
399 private void PhysicallyUnlinkAllChildrenFromRoot(BSPrim rootPrim) 399 private void PhysicallyUnlinkAllChildrenFromRoot(BSPhysObject rootPrim)
400 { 400 {
401 DetailLog("{0},PhysicallyUnlinkAllChildren,taint", rootPrim.LocalID); 401 DetailLog("{0},PhysicallyUnlinkAllChildren,taint", rootPrim.LocalID);
402 402
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
new file mode 100755
index 0000000..ef463ca
--- /dev/null
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPhysObject.cs
@@ -0,0 +1,60 @@
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 copyrightD
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 */
27using System;
28using System.Collections.Generic;
29using System.Text;
30
31using OMV = OpenMetaverse;
32using OpenSim.Framework;
33using OpenSim.Region.Physics.Manager;
34
35namespace OpenSim.Region.Physics.BulletSPlugin
36{
37// Class to wrap all objects.
38// The rest of BulletSim doesn't need to keep checking for avatars or prims
39// unless the difference is significant.
40public abstract class BSPhysObject : PhysicsActor
41{
42 public abstract BSLinkset Linkset { get; set; }
43
44 public abstract void Collide(uint collidingWith, BSPhysObject collidee, ActorTypes type,
45 OMV.Vector3 contactPoint, OMV.Vector3 contactNormal, float pentrationDepth);
46 public abstract void SendCollisions();
47
48 // Return the object mass without calculating it or side effects
49 public abstract float MassRaw { get; }
50
51 public abstract BulletBody Body { get; set; }
52 public abstract void ZeroMotion();
53
54 public virtual void StepVehicle(float timeStep) { }
55
56 public abstract void UpdateProperties(EntityProperties entprop);
57
58 public abstract void Destroy();
59}
60}
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
index d3f1e9c..6bfce5c 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrim.cs
@@ -37,7 +37,7 @@ using OpenSim.Region.Physics.ConvexDecompositionDotNet;
37namespace OpenSim.Region.Physics.BulletSPlugin 37namespace OpenSim.Region.Physics.BulletSPlugin
38{ 38{
39 [Serializable] 39 [Serializable]
40public sealed class BSPrim : PhysicsActor 40public sealed class BSPrim : BSPhysObject
41{ 41{
42 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 42 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
43 private static readonly string LogHeader = "[BULLETS PRIM]"; 43 private static readonly string LogHeader = "[BULLETS PRIM]";
@@ -88,23 +88,14 @@ public sealed class BSPrim : PhysicsActor
88 private float _buoyancy; 88 private float _buoyancy;
89 89
90 // Membership in a linkset is controlled by this class. 90 // Membership in a linkset is controlled by this class.
91 private BSLinkset _linkset; 91 public override BSLinkset Linkset { get; set; }
92 public BSLinkset Linkset
93 {
94 get { return _linkset; }
95 set { _linkset = value; }
96 }
97 92
98 private int _subscribedEventsMs = 0; 93 private int _subscribedEventsMs = 0;
99 private int _nextCollisionOkTime = 0; 94 private int _nextCollisionOkTime = 0;
100 long _collidingStep; 95 long _collidingStep;
101 long _collidingGroundStep; 96 long _collidingGroundStep;
102 97
103 private BulletBody m_body; 98 public override BulletBody Body { get; set; }
104 public BulletBody Body {
105 get { return m_body; }
106 set { m_body = value; }
107 }
108 99
109 private BSDynamics _vehicle; 100 private BSDynamics _vehicle;
110 101
@@ -139,7 +130,7 @@ public sealed class BSPrim : PhysicsActor
139 _friction = _scene.Params.defaultFriction; // TODO: compute based on object material 130 _friction = _scene.Params.defaultFriction; // TODO: compute based on object material
140 _density = _scene.Params.defaultDensity; // TODO: compute based on object material 131 _density = _scene.Params.defaultDensity; // TODO: compute based on object material
141 _restitution = _scene.Params.defaultRestitution; 132 _restitution = _scene.Params.defaultRestitution;
142 _linkset = new BSLinkset(Scene, this); // a linkset of one 133 Linkset = new BSLinkset(Scene, this); // a linkset of one
143 _vehicle = new BSDynamics(Scene, this); // add vehicleness 134 _vehicle = new BSDynamics(Scene, this); // add vehicleness
144 _mass = CalculateMass(); 135 _mass = CalculateMass();
145 // do the actual object creation at taint time 136 // do the actual object creation at taint time
@@ -151,23 +142,23 @@ public sealed class BSPrim : PhysicsActor
151 // Get the pointer to the physical body for this object. 142 // Get the pointer to the physical body for this object.
152 // At the moment, we're still letting BulletSim manage the creation and destruction 143 // At the moment, we're still letting BulletSim manage the creation and destruction
153 // of the object. Someday we'll move that into the C# code. 144 // of the object. Someday we'll move that into the C# code.
154 m_body = new BulletBody(LocalID, BulletSimAPI.GetBodyHandle2(_scene.World.Ptr, LocalID)); 145 Body = new BulletBody(LocalID, BulletSimAPI.GetBodyHandle2(_scene.World.Ptr, LocalID));
155 }); 146 });
156 } 147 }
157 148
158 // called when this prim is being destroyed and we should free all the resources 149 // called when this prim is being destroyed and we should free all the resources
159 public void Destroy() 150 public override void Destroy()
160 { 151 {
161 // m_log.DebugFormat("{0}: Destroy, id={1}", LogHeader, LocalID); 152 // m_log.DebugFormat("{0}: Destroy, id={1}", LogHeader, LocalID);
162 153
163 // Undo any links between me and any other object 154 // Undo any links between me and any other object
164 BSPrim parentBefore = _linkset.LinksetRoot; 155 BSPhysObject parentBefore = Linkset.LinksetRoot;
165 int childrenBefore = _linkset.NumberOfChildren; 156 int childrenBefore = Linkset.NumberOfChildren;
166 157
167 _linkset = _linkset.RemoveMeFromLinkset(this); 158 Linkset = Linkset.RemoveMeFromLinkset(this);
168 159
169 DetailLog("{0},BSPrim.Destroy,call,parentBefore={1},childrenBefore={2},parentAfter={3},childrenAfter={4}", 160 DetailLog("{0},BSPrim.Destroy,call,parentBefore={1},childrenBefore={2},parentAfter={3},childrenAfter={4}",
170 LocalID, parentBefore.LocalID, childrenBefore, _linkset.LinksetRoot.LocalID, _linkset.NumberOfChildren); 161 LocalID, parentBefore.LocalID, childrenBefore, Linkset.LinksetRoot.LocalID, Linkset.NumberOfChildren);
171 162
172 // Undo any vehicle properties 163 // Undo any vehicle properties
173 this.VehicleType = (int)Vehicle.TYPE_NONE; 164 this.VehicleType = (int)Vehicle.TYPE_NONE;
@@ -230,13 +221,13 @@ public sealed class BSPrim : PhysicsActor
230 BSPrim parent = obj as BSPrim; 221 BSPrim parent = obj as BSPrim;
231 if (parent != null) 222 if (parent != null)
232 { 223 {
233 BSPrim parentBefore = _linkset.LinksetRoot; 224 BSPhysObject parentBefore = Linkset.LinksetRoot;
234 int childrenBefore = _linkset.NumberOfChildren; 225 int childrenBefore = Linkset.NumberOfChildren;
235 226
236 _linkset = parent.Linkset.AddMeToLinkset(this); 227 Linkset = parent.Linkset.AddMeToLinkset(this);
237 228
238 DetailLog("{0},BSPrim.link,call,parentBefore={1}, childrenBefore=={2}, parentAfter={3}, childrenAfter={4}", 229 DetailLog("{0},BSPrim.link,call,parentBefore={1}, childrenBefore=={2}, parentAfter={3}, childrenAfter={4}",
239 LocalID, parentBefore.LocalID, childrenBefore, _linkset.LinksetRoot.LocalID, _linkset.NumberOfChildren); 230 LocalID, parentBefore.LocalID, childrenBefore, Linkset.LinksetRoot.LocalID, Linkset.NumberOfChildren);
240 } 231 }
241 return; 232 return;
242 } 233 }
@@ -246,13 +237,13 @@ public sealed class BSPrim : PhysicsActor
246 // TODO: decide if this parent checking needs to happen at taint time 237 // TODO: decide if this parent checking needs to happen at taint time
247 // Race condition here: if link() and delink() in same simulation tick, the delink will not happen 238 // Race condition here: if link() and delink() in same simulation tick, the delink will not happen
248 239
249 BSPrim parentBefore = _linkset.LinksetRoot; 240 BSPhysObject parentBefore = Linkset.LinksetRoot;
250 int childrenBefore = _linkset.NumberOfChildren; 241 int childrenBefore = Linkset.NumberOfChildren;
251 242
252 _linkset = _linkset.RemoveMeFromLinkset(this); 243 Linkset = Linkset.RemoveMeFromLinkset(this);
253 244
254 DetailLog("{0},BSPrim.delink,parentBefore={1},childrenBefore={2},parentAfter={3},childrenAfter={4}, ", 245 DetailLog("{0},BSPrim.delink,parentBefore={1},childrenBefore={2},parentAfter={3},childrenAfter={4}, ",
255 LocalID, parentBefore.LocalID, childrenBefore, _linkset.LinksetRoot.LocalID, _linkset.NumberOfChildren); 246 LocalID, parentBefore.LocalID, childrenBefore, Linkset.LinksetRoot.LocalID, Linkset.NumberOfChildren);
256 return; 247 return;
257 } 248 }
258 249
@@ -260,7 +251,7 @@ public sealed class BSPrim : PhysicsActor
260 // Do it to the properties so the values get set in the physics engine. 251 // Do it to the properties so the values get set in the physics engine.
261 // Push the setting of the values to the viewer. 252 // Push the setting of the values to the viewer.
262 // Called at taint time! 253 // Called at taint time!
263 public void ZeroMotion() 254 public override void ZeroMotion()
264 { 255 {
265 _velocity = OMV.Vector3.Zero; 256 _velocity = OMV.Vector3.Zero;
266 _acceleration = OMV.Vector3.Zero; 257 _acceleration = OMV.Vector3.Zero;
@@ -281,7 +272,7 @@ public sealed class BSPrim : PhysicsActor
281 272
282 public override OMV.Vector3 Position { 273 public override OMV.Vector3 Position {
283 get { 274 get {
284 if (!_linkset.IsRoot(this)) 275 if (!Linkset.IsRoot(this))
285 // child prims move around based on their parent. Need to get the latest location 276 // child prims move around based on their parent. Need to get the latest location
286 _position = BulletSimAPI.GetObjectPosition(_scene.WorldID, _localID); 277 _position = BulletSimAPI.GetObjectPosition(_scene.WorldID, _localID);
287 278
@@ -306,23 +297,23 @@ public sealed class BSPrim : PhysicsActor
306 { 297 {
307 get 298 get
308 { 299 {
309 return _linkset.LinksetMass; 300 return Linkset.LinksetMass;
310 } 301 }
311 } 302 }
312 303
313 // used when we only want this prim's mass and not the linkset thing 304 // used when we only want this prim's mass and not the linkset thing
314 public float MassRaw { get { return _mass; } } 305 public override float MassRaw { get { return _mass; } }
315 306
316 // Is this used? 307 // Is this used?
317 public override OMV.Vector3 CenterOfMass 308 public override OMV.Vector3 CenterOfMass
318 { 309 {
319 get { return _linkset.CenterOfMass; } 310 get { return Linkset.CenterOfMass; }
320 } 311 }
321 312
322 // Is this used? 313 // Is this used?
323 public override OMV.Vector3 GeometricCenter 314 public override OMV.Vector3 GeometricCenter
324 { 315 {
325 get { return _linkset.GeometricCenter; } 316 get { return Linkset.GeometricCenter; }
326 } 317 }
327 318
328 public override OMV.Vector3 Force { 319 public override OMV.Vector3 Force {
@@ -386,7 +377,7 @@ public sealed class BSPrim : PhysicsActor
386 377
387 // Called each simulation step to advance vehicle characteristics. 378 // Called each simulation step to advance vehicle characteristics.
388 // Called from Scene when doing simulation step so we're in taint processing time. 379 // Called from Scene when doing simulation step so we're in taint processing time.
389 public void StepVehicle(float timeStep) 380 public override void StepVehicle(float timeStep)
390 { 381 {
391 if (IsPhysical) 382 if (IsPhysical)
392 _vehicle.Step(timeStep); 383 _vehicle.Step(timeStep);
@@ -431,7 +422,7 @@ public sealed class BSPrim : PhysicsActor
431 } 422 }
432 public override OMV.Quaternion Orientation { 423 public override OMV.Quaternion Orientation {
433 get { 424 get {
434 if (!_linkset.IsRoot(this)) 425 if (!Linkset.IsRoot(this))
435 { 426 {
436 // Children move around because tied to parent. Get a fresh value. 427 // Children move around because tied to parent. Get a fresh value.
437 _orientation = BulletSimAPI.GetObjectOrientation(_scene.WorldID, LocalID); 428 _orientation = BulletSimAPI.GetObjectOrientation(_scene.WorldID, LocalID);
@@ -490,7 +481,7 @@ public sealed class BSPrim : PhysicsActor
490 BulletSimAPI.SetObjectProperties(_scene.WorldID, LocalID, IsStatic, IsSolid, SubscribedEvents(), mass); 481 BulletSimAPI.SetObjectProperties(_scene.WorldID, LocalID, IsStatic, IsSolid, SubscribedEvents(), mass);
491 482
492 // recompute any linkset parameters 483 // recompute any linkset parameters
493 _linkset.Refresh(this); 484 Linkset.Refresh(this);
494 485
495 CollisionFlags cf = BulletSimAPI.GetCollisionFlags2(Body.Ptr); 486 CollisionFlags cf = BulletSimAPI.GetCollisionFlags2(Body.Ptr);
496 DetailLog("{0},BSPrim.SetObjectDynamic,taint,static={1},solid={2},mass={3}, cf={4}", LocalID, IsStatic, IsSolid, mass, cf); 487 DetailLog("{0},BSPrim.SetObjectDynamic,taint,static={1},solid={2},mass={3}, cf={4}", LocalID, IsStatic, IsSolid, mass, cf);
@@ -1299,7 +1290,7 @@ public sealed class BSPrim : PhysicsActor
1299 const float ACCELERATION_TOLERANCE = 0.01f; 1290 const float ACCELERATION_TOLERANCE = 0.01f;
1300 const float ROTATIONAL_VELOCITY_TOLERANCE = 0.01f; 1291 const float ROTATIONAL_VELOCITY_TOLERANCE = 0.01f;
1301 1292
1302 public void UpdateProperties(EntityProperties entprop) 1293 public override void UpdateProperties(EntityProperties entprop)
1303 { 1294 {
1304 /* 1295 /*
1305 UpdatedProperties changed = 0; 1296 UpdatedProperties changed = 0;
@@ -1347,7 +1338,7 @@ public sealed class BSPrim : PhysicsActor
1347 // Don't check for damping here -- it's done in BulletSim and SceneObjectPart. 1338 // Don't check for damping here -- it's done in BulletSim and SceneObjectPart.
1348 1339
1349 // Updates only for individual prims and for the root object of a linkset. 1340 // Updates only for individual prims and for the root object of a linkset.
1350 if (_linkset.IsRoot(this)) 1341 if (Linkset.IsRoot(this))
1351 { 1342 {
1352 // Assign to the local variables so the normal set action does not happen 1343 // Assign to the local variables so the normal set action does not happen
1353 _position = entprop.Position; 1344 _position = entprop.Position;
@@ -1375,7 +1366,7 @@ public sealed class BSPrim : PhysicsActor
1375 // I've collided with something 1366 // I've collided with something
1376 // Called at taint time from within the Step() function 1367 // Called at taint time from within the Step() function
1377 CollisionEventUpdate collisionCollection; 1368 CollisionEventUpdate collisionCollection;
1378 public void Collide(uint collidingWith, ActorTypes type, OMV.Vector3 contactPoint, OMV.Vector3 contactNormal, float pentrationDepth) 1369 public override void Collide(uint collidingWith, BSPhysObject collidee, ActorTypes type, OMV.Vector3 contactPoint, OMV.Vector3 contactNormal, float pentrationDepth)
1379 { 1370 {
1380 // m_log.DebugFormat("{0}: Collide: ms={1}, id={2}, with={3}", LogHeader, _subscribedEventsMs, LocalID, collidingWith); 1371 // m_log.DebugFormat("{0}: Collide: ms={1}, id={2}, with={3}", LogHeader, _subscribedEventsMs, LocalID, collidingWith);
1381 1372
@@ -1387,18 +1378,15 @@ public sealed class BSPrim : PhysicsActor
1387 } 1378 }
1388 1379
1389 // DetailLog("{0},BSPrim.Collison,call,with={1}", LocalID, collidingWith); 1380 // DetailLog("{0},BSPrim.Collison,call,with={1}", LocalID, collidingWith);
1390 BSPrim collidingWithPrim; 1381
1391 if (_scene.Prims.TryGetValue(collidingWith, out collidingWithPrim)) 1382 // prims in the same linkset cannot collide with each other
1383 if (collidee != null && (this.Linkset.LinksetID == collidee.Linkset.LinksetID))
1392 { 1384 {
1393 // prims in the same linkset cannot collide with each other 1385 return;
1394 if (this.Linkset.LinksetID == collidingWithPrim.Linkset.LinksetID)
1395 {
1396 return;
1397 }
1398 } 1386 }
1399 1387
1400 // if someone is subscribed to collision events.... 1388 // if someone has subscribed for collision events....
1401 if (_subscribedEventsMs != 0) { 1389 if (SubscribedEvents()) {
1402 // throttle the collisions to the number of milliseconds specified in the subscription 1390 // throttle the collisions to the number of milliseconds specified in the subscription
1403 int nowTime = _scene.SimulationNowTime; 1391 int nowTime = _scene.SimulationNowTime;
1404 if (nowTime >= _nextCollisionOkTime) { 1392 if (nowTime >= _nextCollisionOkTime) {
@@ -1412,7 +1400,7 @@ public sealed class BSPrim : PhysicsActor
1412 } 1400 }
1413 1401
1414 // The scene is telling us it's time to pass our collected collisions into the simulator 1402 // The scene is telling us it's time to pass our collected collisions into the simulator
1415 public void SendCollisions() 1403 public override void SendCollisions()
1416 { 1404 {
1417 if (collisionCollection != null && collisionCollection.Count > 0) 1405 if (collisionCollection != null && collisionCollection.Count > 0)
1418 { 1406 {
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
index 56924aa..4a468af 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs
@@ -39,8 +39,6 @@ using log4net;
39using OpenMetaverse; 39using OpenMetaverse;
40 40
41// TODOs for BulletSim (for BSScene, BSPrim, BSCharacter and BulletSim) 41// TODOs for BulletSim (for BSScene, BSPrim, BSCharacter and BulletSim)
42// Debug linkset
43// Test with multiple regions in one simulator
44// Adjust character capsule size when height is adjusted (ScenePresence.SetHeight) 42// Adjust character capsule size when height is adjusted (ScenePresence.SetHeight)
45// Test sculpties 43// Test sculpties
46// Compute physics FPS reasonably 44// Compute physics FPS reasonably
@@ -54,10 +52,8 @@ using OpenMetaverse;
54// Use collision masks for collision with terrain and phantom objects 52// Use collision masks for collision with terrain and phantom objects
55// Check out llVolumeDetect. Must do something for that. 53// Check out llVolumeDetect. Must do something for that.
56// Should prim.link() and prim.delink() membership checking happen at taint time? 54// Should prim.link() and prim.delink() membership checking happen at taint time?
57// changing the position and orientation of a linked prim must rebuild the constraint with the root.
58// Mesh sharing. Use meshHash to tell if we already have a hull of that shape and only create once 55// Mesh sharing. Use meshHash to tell if we already have a hull of that shape and only create once
59// Do attachments need to be handled separately? Need collision events. Do not collide with VolumeDetect 56// Do attachments need to be handled separately? Need collision events. Do not collide with VolumeDetect
60// Implement the genCollisions feature in BulletSim::SetObjectProperties (don't pass up unneeded collisions)
61// Implement LockAngularMotion 57// Implement LockAngularMotion
62// Decide if clearing forces is the right thing to do when setting position (BulletSim::SetObjectTranslation) 58// Decide if clearing forces is the right thing to do when setting position (BulletSim::SetObjectTranslation)
63// Does NeedsMeshing() really need to exclude all the different shapes? 59// Does NeedsMeshing() really need to exclude all the different shapes?
@@ -78,27 +74,22 @@ public class BSScene : PhysicsScene, IPhysicsParameters
78 74
79 public string BulletSimVersion = "?"; 75 public string BulletSimVersion = "?";
80 76
81 private Dictionary<uint, BSCharacter> m_avatars = new Dictionary<uint, BSCharacter>(); 77 public Dictionary<uint, BSPhysObject> PhysObjects = new Dictionary<uint, BSPhysObject>();
82 public Dictionary<uint, BSCharacter> Characters { get { return m_avatars; } }
83
84 private Dictionary<uint, BSPrim> m_prims = new Dictionary<uint, BSPrim>();
85 public Dictionary<uint, BSPrim> Prims { get { return m_prims; } }
86 78
79 private HashSet<BSPhysObject> m_objectsWithCollisions = new HashSet<BSPhysObject>();
80 // Following is a kludge and can be removed when avatar animation updating is
81 // moved to a better place.
87 private HashSet<BSCharacter> m_avatarsWithCollisions = new HashSet<BSCharacter>(); 82 private HashSet<BSCharacter> m_avatarsWithCollisions = new HashSet<BSCharacter>();
88 private HashSet<BSPrim> m_primsWithCollisions = new HashSet<BSPrim>();
89
90 private List<BSPrim> m_vehicles = new List<BSPrim>();
91 83
92 private float[] m_heightMap; 84 // List of all the objects that have vehicle properties and should be called
93 private float m_waterLevel; 85 // to update each physics step.
94 private uint m_worldID; 86 private List<BSPhysObject> m_vehicles = new List<BSPhysObject>();
95 public uint WorldID { get { return m_worldID; } }
96 87
97 // let my minuions use my logger 88 // let my minuions use my logger
98 public ILog Logger { get { return m_log; } } 89 public ILog Logger { get { return m_log; } }
99 90
100 private bool m_initialized = false; 91 // If non-zero, the number of simulation steps between calls to the physics
101 92 // engine to output detailed physics stats. Debug logging level must be on also.
102 private int m_detailedStatsStep = 0; 93 private int m_detailedStatsStep = 0;
103 94
104 public IMesher mesher; 95 public IMesher mesher;
@@ -108,29 +99,31 @@ public class BSScene : PhysicsScene, IPhysicsParameters
108 public float MeshMegaPrimThreshold { get; private set; } 99 public float MeshMegaPrimThreshold { get; private set; }
109 public float SculptLOD { get; private set; } 100 public float SculptLOD { get; private set; }
110 101
111 private BulletSim m_worldSim; 102 public uint WorldID { get; private set; }
112 public BulletSim World 103 public BulletSim World { get; private set; }
113 {
114 get { return m_worldSim; }
115 }
116 private BSConstraintCollection m_constraintCollection;
117 public BSConstraintCollection Constraints
118 {
119 get { return m_constraintCollection; }
120 }
121 104
105 // All the constraints that have been allocated in this instance.
106 public BSConstraintCollection Constraints { get; private set; }
107
108 // Simulation parameters
122 private int m_maxSubSteps; 109 private int m_maxSubSteps;
123 private float m_fixedTimeStep; 110 private float m_fixedTimeStep;
124 private long m_simulationStep = 0; 111 private long m_simulationStep = 0;
125 public long SimulationStep { get { return m_simulationStep; } } 112 public long SimulationStep { get { return m_simulationStep; } }
126 113
114 // The length of the last timestep we were asked to simulate.
115 // This is used by the vehicle code. Since the vehicle code is called
116 // once per simulation step, its constants need to be scaled by this.
127 public float LastSimulatedTimestep { get; private set; } 117 public float LastSimulatedTimestep { get; private set; }
128 118
129 // A value of the time now so all the collision and update routines do not have to get their own 119 // A value of the time now so all the collision and update routines do not have to get their own
130 // Set to 'now' just before all the prims and actors are called for collisions and updates 120 // Set to 'now' just before all the prims and actors are called for collisions and updates
131 private int m_simulationNowTime; 121 public int SimulationNowTime { get; private set; }
132 public int SimulationNowTime { get { return m_simulationNowTime; } } 122
123 // True if initialized and ready to do simulation steps
124 private bool m_initialized = false;
133 125
126 // Pinned memory used to pass step information between managed and unmanaged
134 private int m_maxCollisionsPerFrame; 127 private int m_maxCollisionsPerFrame;
135 private CollisionDesc[] m_collisionArray; 128 private CollisionDesc[] m_collisionArray;
136 private GCHandle m_collisionArrayPinnedHandle; 129 private GCHandle m_collisionArrayPinnedHandle;
@@ -147,6 +140,10 @@ public class BSScene : PhysicsScene, IPhysicsParameters
147 140
148 public const uint TERRAIN_ID = 0; // OpenSim senses terrain with a localID of zero 141 public const uint TERRAIN_ID = 0; // OpenSim senses terrain with a localID of zero
149 public const uint GROUNDPLANE_ID = 1; 142 public const uint GROUNDPLANE_ID = 1;
143 public const uint CHILDTERRAIN_ID = 2; // Terrain allocated based on our mega-prim childre start here
144
145 private float m_waterLevel;
146 public BSTerrainManager TerrainManager { get; private set; }
150 147
151 public ConfigurationParameters Params 148 public ConfigurationParameters Params
152 { 149 {
@@ -157,12 +154,12 @@ public class BSScene : PhysicsScene, IPhysicsParameters
157 get { return new Vector3(0f, 0f, Params.gravity); } 154 get { return new Vector3(0f, 0f, Params.gravity); }
158 } 155 }
159 156
160 private float m_maximumObjectMass; 157 public float MaximumObjectMass { get; private set; }
161 public float MaximumObjectMass
162 {
163 get { return m_maximumObjectMass; }
164 }
165 158
159 // When functions in the unmanaged code must be called, it is only
160 // done at a known time just before the simulation step. The taint
161 // system saves all these function calls and executes them in
162 // order before the simulation.
166 public delegate void TaintCallback(); 163 public delegate void TaintCallback();
167 private struct TaintCallbackEntry 164 private struct TaintCallbackEntry
168 { 165 {
@@ -178,6 +175,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
178 private Object _taintLock = new Object(); 175 private Object _taintLock = new Object();
179 176
180 // A pointer to an instance if this structure is passed to the C++ code 177 // A pointer to an instance if this structure is passed to the C++ code
178 // Used to pass basic configuration values to the unmanaged code.
181 ConfigurationParameters[] m_params; 179 ConfigurationParameters[] m_params;
182 GCHandle m_paramsHandle; 180 GCHandle m_paramsHandle;
183 181
@@ -192,10 +190,10 @@ public class BSScene : PhysicsScene, IPhysicsParameters
192 private string m_physicsLoggingDir; 190 private string m_physicsLoggingDir;
193 private string m_physicsLoggingPrefix; 191 private string m_physicsLoggingPrefix;
194 private int m_physicsLoggingFileMinutes; 192 private int m_physicsLoggingFileMinutes;
193 // 'true' of the vehicle code is to log lots of details
194 public bool VehicleLoggingEnabled { get; private set; }
195 195
196 private bool m_vehicleLoggingEnabled; 196 #region Construction and Initialization
197 public bool VehicleLoggingEnabled { get { return m_vehicleLoggingEnabled; } }
198
199 public BSScene(string identifier) 197 public BSScene(string identifier)
200 { 198 {
201 m_initialized = false; 199 m_initialized = false;
@@ -218,6 +216,9 @@ public class BSScene : PhysicsScene, IPhysicsParameters
218 m_updateArray = new EntityProperties[m_maxUpdatesPerFrame]; 216 m_updateArray = new EntityProperties[m_maxUpdatesPerFrame];
219 m_updateArrayPinnedHandle = GCHandle.Alloc(m_updateArray, GCHandleType.Pinned); 217 m_updateArrayPinnedHandle = GCHandle.Alloc(m_updateArray, GCHandleType.Pinned);
220 218
219 mesher = meshmerizer;
220 _taintedObjects = new List<TaintCallbackEntry>();
221
221 // Enable very detailed logging. 222 // Enable very detailed logging.
222 // By creating an empty logger when not logging, the log message invocation code 223 // By creating an empty logger when not logging, the log message invocation code
223 // can be left in and every call doesn't have to check for null. 224 // can be left in and every call doesn't have to check for null.
@@ -230,38 +231,43 @@ public class BSScene : PhysicsScene, IPhysicsParameters
230 PhysicsLogging = new Logging.LogWriter(); 231 PhysicsLogging = new Logging.LogWriter();
231 } 232 }
232 233
233 // Get the version of the DLL 234 // If Debug logging level, enable logging from the unmanaged code
234 // TODO: this doesn't work yet. Something wrong with marshaling the returned string. 235 m_DebugLogCallbackHandle = null;
235 // BulletSimVersion = BulletSimAPI.GetVersion();
236 // m_log.WarnFormat("{0}: BulletSim.dll version='{1}'", LogHeader, BulletSimVersion);
237
238 // if Debug, enable logging from the unmanaged code
239 if (m_log.IsDebugEnabled || PhysicsLogging.Enabled) 236 if (m_log.IsDebugEnabled || PhysicsLogging.Enabled)
240 { 237 {
241 m_log.DebugFormat("{0}: Initialize: Setting debug callback for unmanaged code", LogHeader); 238 m_log.DebugFormat("{0}: Initialize: Setting debug callback for unmanaged code", LogHeader);
242 if (PhysicsLogging.Enabled) 239 if (PhysicsLogging.Enabled)
240 // The handle is saved in a variable to make sure it doesn't get freed after this call
243 m_DebugLogCallbackHandle = new BulletSimAPI.DebugLogCallback(BulletLoggerPhysLog); 241 m_DebugLogCallbackHandle = new BulletSimAPI.DebugLogCallback(BulletLoggerPhysLog);
244 else 242 else
245 m_DebugLogCallbackHandle = new BulletSimAPI.DebugLogCallback(BulletLogger); 243 m_DebugLogCallbackHandle = new BulletSimAPI.DebugLogCallback(BulletLogger);
246 // the handle is saved in a variable to make sure it doesn't get freed after this call
247 BulletSimAPI.SetDebugLogCallback(m_DebugLogCallbackHandle);
248 } 244 }
249 245
250 _taintedObjects = new List<TaintCallbackEntry>(); 246 // Get the version of the DLL
247 // TODO: this doesn't work yet. Something wrong with marshaling the returned string.
248 // BulletSimVersion = BulletSimAPI.GetVersion();
249 // m_log.WarnFormat("{0}: BulletSim.dll version='{1}'", LogHeader, BulletSimVersion);
251 250
252 mesher = meshmerizer; 251 // The bounding box for the simulated world. The origin is 0,0,0 unless we're
253 // The bounding box for the simulated world 252 // a child in a mega-region.
253 // Turns out that Bullet really doesn't care about the extents of the simulated
254 // area. It tracks active objects no matter where they are.
254 Vector3 worldExtent = new Vector3(Constants.RegionSize, Constants.RegionSize, 8192f); 255 Vector3 worldExtent = new Vector3(Constants.RegionSize, Constants.RegionSize, 8192f);
255 256
256 // m_log.DebugFormat("{0}: Initialize: Calling BulletSimAPI.Initialize.", LogHeader); 257 // m_log.DebugFormat("{0}: Initialize: Calling BulletSimAPI.Initialize.", LogHeader);
257 m_worldID = BulletSimAPI.Initialize(worldExtent, m_paramsHandle.AddrOfPinnedObject(), 258 WorldID = BulletSimAPI.Initialize(worldExtent, m_paramsHandle.AddrOfPinnedObject(),
258 m_maxCollisionsPerFrame, m_collisionArrayPinnedHandle.AddrOfPinnedObject(), 259 m_maxCollisionsPerFrame, m_collisionArrayPinnedHandle.AddrOfPinnedObject(),
259 m_maxUpdatesPerFrame, m_updateArrayPinnedHandle.AddrOfPinnedObject()); 260 m_maxUpdatesPerFrame, m_updateArrayPinnedHandle.AddrOfPinnedObject(),
261 m_DebugLogCallbackHandle);
260 262
261 // Initialization to support the transition to a new API which puts most of the logic 263 // Initialization to support the transition to a new API which puts most of the logic
262 // into the C# code so it is easier to modify and add to. 264 // into the C# code so it is easier to modify and add to.
263 m_worldSim = new BulletSim(m_worldID, this, BulletSimAPI.GetSimHandle2(m_worldID)); 265 World = new BulletSim(WorldID, this, BulletSimAPI.GetSimHandle2(WorldID));
264 m_constraintCollection = new BSConstraintCollection(World); 266
267 Constraints = new BSConstraintCollection(World);
268
269 TerrainManager = new BSTerrainManager(this);
270 TerrainManager.CreateInitialGroundPlaneAndTerrain();
265 271
266 m_initialized = true; 272 m_initialized = true;
267 } 273 }
@@ -289,7 +295,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
289 m_physicsLoggingPrefix = pConfig.GetString("PhysicsLoggingPrefix", "physics-%REGIONNAME%-"); 295 m_physicsLoggingPrefix = pConfig.GetString("PhysicsLoggingPrefix", "physics-%REGIONNAME%-");
290 m_physicsLoggingFileMinutes = pConfig.GetInt("PhysicsLoggingFileMinutes", 5); 296 m_physicsLoggingFileMinutes = pConfig.GetInt("PhysicsLoggingFileMinutes", 5);
291 // Very detailed logging for vehicle debugging 297 // Very detailed logging for vehicle debugging
292 m_vehicleLoggingEnabled = pConfig.GetBoolean("VehicleLoggingEnabled", false); 298 VehicleLoggingEnabled = pConfig.GetBoolean("VehicleLoggingEnabled", false);
293 299
294 // Do any replacements in the parameters 300 // Do any replacements in the parameters
295 m_physicsLoggingPrefix = m_physicsLoggingPrefix.Replace("%REGIONNAME%", RegionName); 301 m_physicsLoggingPrefix = m_physicsLoggingPrefix.Replace("%REGIONNAME%", RegionName);
@@ -324,6 +330,38 @@ public class BSScene : PhysicsScene, IPhysicsParameters
324 PhysicsLogging.Write("[BULLETS UNMANAGED]:" + msg); 330 PhysicsLogging.Write("[BULLETS UNMANAGED]:" + msg);
325 } 331 }
326 332
333 public override void Dispose()
334 {
335 // m_log.DebugFormat("{0}: Dispose()", LogHeader);
336
337 // make sure no stepping happens while we're deleting stuff
338 m_initialized = false;
339
340 TerrainManager.ReleaseGroundPlaneAndTerrain();
341
342 foreach (KeyValuePair<uint, BSPhysObject> kvp in PhysObjects)
343 {
344 kvp.Value.Destroy();
345 }
346 PhysObjects.Clear();
347
348 // Now that the prims are all cleaned up, there should be no constraints left
349 if (Constraints != null)
350 {
351 Constraints.Dispose();
352 Constraints = null;
353 }
354
355 // Anything left in the unmanaged code should be cleaned out
356 BulletSimAPI.Shutdown(WorldID);
357
358 // Not logging any more
359 PhysicsLogging.Close();
360 }
361 #endregion // Construction and Initialization
362
363 #region Prim and Avatar addition and removal
364
327 public override PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying) 365 public override PhysicsActor AddAvatar(string avName, Vector3 position, Vector3 size, bool isFlying)
328 { 366 {
329 m_log.ErrorFormat("{0}: CALL TO AddAvatar in BSScene. NOT IMPLEMENTED", LogHeader); 367 m_log.ErrorFormat("{0}: CALL TO AddAvatar in BSScene. NOT IMPLEMENTED", LogHeader);
@@ -337,7 +375,13 @@ public class BSScene : PhysicsScene, IPhysicsParameters
337 if (!m_initialized) return null; 375 if (!m_initialized) return null;
338 376
339 BSCharacter actor = new BSCharacter(localID, avName, this, position, size, isFlying); 377 BSCharacter actor = new BSCharacter(localID, avName, this, position, size, isFlying);
340 lock (m_avatars) m_avatars.Add(localID, actor); 378 lock (PhysObjects) PhysObjects.Add(localID, actor);
379
380 // TODO: Remove kludge someday.
381 // We must generate a collision for avatars whether they collide or not.
382 // This is required by OpenSim to update avatar animations, etc.
383 lock (m_avatarsWithCollisions) m_avatarsWithCollisions.Add(actor);
384
341 return actor; 385 return actor;
342 } 386 }
343 387
@@ -352,7 +396,9 @@ public class BSScene : PhysicsScene, IPhysicsParameters
352 { 396 {
353 try 397 try
354 { 398 {
355 lock (m_avatars) m_avatars.Remove(actor.LocalID); 399 lock (PhysObjects) PhysObjects.Remove(actor.LocalID);
400 // Remove kludge someday
401 lock (m_avatarsWithCollisions) m_avatarsWithCollisions.Remove(bsactor);
356 } 402 }
357 catch (Exception e) 403 catch (Exception e)
358 { 404 {
@@ -374,7 +420,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
374 // m_log.DebugFormat("{0}: RemovePrim. id={1}/{2}", LogHeader, bsprim.Name, bsprim.LocalID); 420 // m_log.DebugFormat("{0}: RemovePrim. id={1}/{2}", LogHeader, bsprim.Name, bsprim.LocalID);
375 try 421 try
376 { 422 {
377 lock (m_prims) m_prims.Remove(bsprim.LocalID); 423 lock (PhysObjects) PhysObjects.Remove(bsprim.LocalID);
378 } 424 }
379 catch (Exception e) 425 catch (Exception e)
380 { 426 {
@@ -399,7 +445,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
399 DetailLog("{0},AddPrimShape,call", localID); 445 DetailLog("{0},AddPrimShape,call", localID);
400 446
401 BSPrim prim = new BSPrim(localID, primName, this, position, size, rotation, pbs, isPhysical); 447 BSPrim prim = new BSPrim(localID, primName, this, position, size, rotation, pbs, isPhysical);
402 lock (m_prims) m_prims.Add(localID, prim); 448 lock (PhysObjects) PhysObjects.Add(localID, prim);
403 return prim; 449 return prim;
404 } 450 }
405 451
@@ -408,6 +454,9 @@ public class BSScene : PhysicsScene, IPhysicsParameters
408 // information call is not needed. 454 // information call is not needed.
409 public override void AddPhysicsActorTaint(PhysicsActor prim) { } 455 public override void AddPhysicsActorTaint(PhysicsActor prim) { }
410 456
457 #endregion // Prim and Avatar addition and removal
458
459 #region Simulation
411 // Simulate one timestep 460 // Simulate one timestep
412 public override float Simulate(float timeStep) 461 public override float Simulate(float timeStep)
413 { 462 {
@@ -424,6 +473,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
424 int simulateStartTime = Util.EnvironmentTickCount(); 473 int simulateStartTime = Util.EnvironmentTickCount();
425 474
426 // update the prim states while we know the physics engine is not busy 475 // update the prim states while we know the physics engine is not busy
476 int numTaints = _taintedObjects.Count;
427 ProcessTaints(); 477 ProcessTaints();
428 478
429 // Some of the prims operate with special vehicle properties 479 // Some of the prims operate with special vehicle properties
@@ -435,14 +485,17 @@ public class BSScene : PhysicsScene, IPhysicsParameters
435 int numSubSteps = 0; 485 int numSubSteps = 0;
436 try 486 try
437 { 487 {
438 numSubSteps = BulletSimAPI.PhysicsStep(m_worldID, timeStep, m_maxSubSteps, m_fixedTimeStep, 488 numSubSteps = BulletSimAPI.PhysicsStep(WorldID, timeStep, m_maxSubSteps, m_fixedTimeStep,
439 out updatedEntityCount, out updatedEntitiesPtr, out collidersCount, out collidersPtr); 489 out updatedEntityCount, out updatedEntitiesPtr, out collidersCount, out collidersPtr);
440 DetailLog("{0},Simulate,call, substeps={1}, updates={2}, colliders={3}", DetailLogZero, numSubSteps, updatedEntityCount, collidersCount); 490 DetailLog("{0},Simulate,call, nTaints= {1}, substeps={2}, updates={3}, colliders={4}",
491 DetailLogZero, numTaints, numSubSteps, updatedEntityCount, collidersCount);
441 } 492 }
442 catch (Exception e) 493 catch (Exception e)
443 { 494 {
444 m_log.WarnFormat("{0},PhysicsStep Exception: substeps={1}, updates={2}, colliders={3}, e={4}", LogHeader, numSubSteps, updatedEntityCount, collidersCount, e); 495 m_log.WarnFormat("{0},PhysicsStep Exception: nTaints={1}, substeps={2}, updates={3}, colliders={4}, e={5}",
445 // DetailLog("{0},PhysicsStepException,call, substeps={1}, updates={2}, colliders={3}", DetailLogZero, numSubSteps, updatedEntityCount, collidersCount); 496 LogHeader, numTaints, numSubSteps, updatedEntityCount, collidersCount, e);
497 DetailLog("{0},PhysicsStepException,call, nTaints={1}, substeps={2}, updates={3}, colliders={4}",
498 DetailLogZero, numTaints, numSubSteps, updatedEntityCount, collidersCount);
446 updatedEntityCount = 0; 499 updatedEntityCount = 0;
447 collidersCount = 0; 500 collidersCount = 0;
448 } 501 }
@@ -451,7 +504,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
451 // Don't have to use the pointers passed back since we know it is the same pinned memory we passed in 504 // Don't have to use the pointers passed back since we know it is the same pinned memory we passed in
452 505
453 // Get a value for 'now' so all the collision and update routines don't have to get their own 506 // Get a value for 'now' so all the collision and update routines don't have to get their own
454 m_simulationNowTime = Util.EnvironmentTickCount(); 507 SimulationNowTime = Util.EnvironmentTickCount();
455 508
456 // If there were collisions, process them by sending the event to the prim. 509 // If there were collisions, process them by sending the event to the prim.
457 // Collisions must be processed before updates. 510 // Collisions must be processed before updates.
@@ -470,19 +523,16 @@ public class BSScene : PhysicsScene, IPhysicsParameters
470 523
471 // The above SendCollision's batch up the collisions on the objects. 524 // The above SendCollision's batch up the collisions on the objects.
472 // Now push the collisions into the simulator. 525 // Now push the collisions into the simulator.
473 foreach (BSPrim bsp in m_primsWithCollisions) 526 foreach (BSPhysObject bsp in m_objectsWithCollisions)
474 bsp.SendCollisions(); 527 bsp.SendCollisions();
475 m_primsWithCollisions.Clear(); 528 m_objectsWithCollisions.Clear();
476 529
477 // This is a kludge to get avatar movement updated. 530 // This is a kludge to get avatar movement updated.
478 // Don't send collisions only if there were collisions -- send everytime.
479 // ODE sends collisions even if there are none and this is used to update 531 // ODE sends collisions even if there are none and this is used to update
480 // avatar animations and stuff. 532 // avatar animations and stuff.
481 // foreach (BSCharacter bsc in m_avatarsWithCollisions) 533 foreach (BSPhysObject bpo in m_avatarsWithCollisions)
482 // bsc.SendCollisions(); 534 bpo.SendCollisions();
483 foreach (KeyValuePair<uint, BSCharacter> kvp in m_avatars) 535 // m_avatarsWithCollisions.Clear();
484 kvp.Value.SendCollisions();
485 m_avatarsWithCollisions.Clear();
486 536
487 // If any of the objects had updated properties, tell the object it has been changed by the physics engine 537 // If any of the objects had updated properties, tell the object it has been changed by the physics engine
488 if (updatedEntityCount > 0) 538 if (updatedEntityCount > 0)
@@ -490,16 +540,10 @@ public class BSScene : PhysicsScene, IPhysicsParameters
490 for (int ii = 0; ii < updatedEntityCount; ii++) 540 for (int ii = 0; ii < updatedEntityCount; ii++)
491 { 541 {
492 EntityProperties entprop = m_updateArray[ii]; 542 EntityProperties entprop = m_updateArray[ii];
493 BSPrim prim; 543 BSPhysObject pobj;
494 if (m_prims.TryGetValue(entprop.ID, out prim)) 544 if (PhysObjects.TryGetValue(entprop.ID, out pobj))
495 {
496 prim.UpdateProperties(entprop);
497 continue;
498 }
499 BSCharacter actor;
500 if (m_avatars.TryGetValue(entprop.ID, out actor))
501 { 545 {
502 actor.UpdateProperties(entprop); 546 pobj.UpdateProperties(entprop);
503 continue; 547 continue;
504 } 548 }
505 } 549 }
@@ -529,58 +573,47 @@ public class BSScene : PhysicsScene, IPhysicsParameters
529 } 573 }
530 574
531 // Something has collided 575 // Something has collided
532 private void SendCollision(uint localID, uint collidingWith, Vector3 collidePoint, Vector3 collideNormal, float penitration) 576 private void SendCollision(uint localID, uint collidingWith, Vector3 collidePoint, Vector3 collideNormal, float penetration)
533 { 577 {
534 if (localID == TERRAIN_ID || localID == GROUNDPLANE_ID) 578 if (localID <= TerrainManager.HighestTerrainID)
535 { 579 {
536 return; // don't send collisions to the terrain 580 return; // don't send collisions to the terrain
537 } 581 }
538 582
583 BSPhysObject collider = PhysObjects[localID];
584 // TODO: as of this code, terrain was not in the physical object list.
585 // When BSTerrain is created and it will be in the list, we can remove
586 // the possibility that it's not there and just fetch the collidee.
587 BSPhysObject collidee = null;
588
539 ActorTypes type = ActorTypes.Prim; 589 ActorTypes type = ActorTypes.Prim;
540 if (collidingWith == TERRAIN_ID || collidingWith == GROUNDPLANE_ID) 590 if (collidingWith <= TerrainManager.HighestTerrainID)
591 {
541 type = ActorTypes.Ground; 592 type = ActorTypes.Ground;
542 else if (m_avatars.ContainsKey(collidingWith)) 593 }
543 type = ActorTypes.Agent; 594 else
595 {
596 collidee = PhysObjects[collidingWith];
597 if (collidee is BSCharacter)
598 type = ActorTypes.Agent;
599 }
544 600
545 // DetailLog("{0},BSScene.SendCollision,collide,id={1},with={2}", DetailLogZero, localID, collidingWith); 601 // DetailLog("{0},BSScene.SendCollision,collide,id={1},with={2}", DetailLogZero, localID, collidingWith);
546 602
547 BSPrim prim; 603 collider.Collide(collidingWith, collidee, type, collidePoint, collideNormal, penetration);
548 if (m_prims.TryGetValue(localID, out prim)) { 604 m_objectsWithCollisions.Add(collider);
549 prim.Collide(collidingWith, type, collidePoint, collideNormal, penitration); 605
550 m_primsWithCollisions.Add(prim);
551 return;
552 }
553 BSCharacter actor;
554 if (m_avatars.TryGetValue(localID, out actor)) {
555 actor.Collide(collidingWith, type, collidePoint, collideNormal, penitration);
556 m_avatarsWithCollisions.Add(actor);
557 return;
558 }
559 return; 606 return;
560 } 607 }
561 608
562 public override void GetResults() { } 609 #endregion // Simulation
563 610
564 public override void SetTerrain(float[] heightMap) { 611 public override void GetResults() { }
565 m_heightMap = heightMap;
566 this.TaintedObject("BSScene.SetTerrain", delegate()
567 {
568 BulletSimAPI.SetHeightmap(m_worldID, m_heightMap);
569 });
570 }
571 612
572 // Someday we will have complex terrain with caves and tunnels 613 #region Terrain
573 // For the moment, it's flat and convex
574 public float GetTerrainHeightAtXYZ(Vector3 loc)
575 {
576 return GetTerrainHeightAtXY(loc.X, loc.Y);
577 }
578 614
579 public float GetTerrainHeightAtXY(float tX, float tY) 615 public override void SetTerrain(float[] heightMap) {
580 { 616 TerrainManager.SetTerrain(heightMap);
581 if (tX < 0 || tX >= Constants.RegionSize || tY < 0 || tY >= Constants.RegionSize)
582 return 30;
583 return m_heightMap[((int)tX) * Constants.RegionSize + ((int)tY)];
584 } 617 }
585 618
586 public override void SetWaterLevel(float baseheight) 619 public override void SetWaterLevel(float baseheight)
@@ -598,39 +631,27 @@ public class BSScene : PhysicsScene, IPhysicsParameters
598 // m_log.DebugFormat("{0}: DeleteTerrain()", LogHeader); 631 // m_log.DebugFormat("{0}: DeleteTerrain()", LogHeader);
599 } 632 }
600 633
601 public override void Dispose() 634 // Although no one seems to check this, I do support combining.
635 public override bool SupportsCombining()
602 { 636 {
603 // m_log.DebugFormat("{0}: Dispose()", LogHeader); 637 return TerrainManager.SupportsCombining();
604 638 }
605 // make sure no stepping happens while we're deleting stuff 639 // This call says I am a child to region zero in a mega-region. 'pScene' is that
606 m_initialized = false; 640 // of region zero, 'offset' is my offset from regions zero's origin, and
607 641 // 'extents' is the largest XY that is handled in my region.
608 foreach (KeyValuePair<uint, BSCharacter> kvp in m_avatars) 642 public override void Combine(PhysicsScene pScene, Vector3 offset, Vector3 extents)
609 { 643 {
610 kvp.Value.Destroy(); 644 TerrainManager.Combine(pScene, offset, extents);
611 } 645 }
612 m_avatars.Clear();
613
614 foreach (KeyValuePair<uint, BSPrim> kvp in m_prims)
615 {
616 kvp.Value.Destroy();
617 }
618 m_prims.Clear();
619
620 // Now that the prims are all cleaned up, there should be no constraints left
621 if (m_constraintCollection != null)
622 {
623 m_constraintCollection.Dispose();
624 m_constraintCollection = null;
625 }
626
627 // Anything left in the unmanaged code should be cleaned out
628 BulletSimAPI.Shutdown(WorldID);
629 646
630 // Not logging any more 647 // Unhook all the combining that I know about.
631 PhysicsLogging.Close(); 648 public override void UnCombine(PhysicsScene pScene)
649 {
650 TerrainManager.UnCombine(pScene);
632 } 651 }
633 652
653 #endregion // Terrain
654
634 public override Dictionary<uint, float> GetTopColliders() 655 public override Dictionary<uint, float> GetTopColliders()
635 { 656 {
636 return new Dictionary<uint, float>(); 657 return new Dictionary<uint, float>();
@@ -840,14 +861,14 @@ public class BSScene : PhysicsScene, IPhysicsParameters
840 // no locking because only called when physics engine is not busy 861 // no locking because only called when physics engine is not busy
841 private void ProcessVehicles(float timeStep) 862 private void ProcessVehicles(float timeStep)
842 { 863 {
843 foreach (BSPrim prim in m_vehicles) 864 foreach (BSPhysObject pobj in m_vehicles)
844 { 865 {
845 prim.StepVehicle(timeStep); 866 pobj.StepVehicle(timeStep);
846 } 867 }
847 } 868 }
848 #endregion Vehicles 869 #endregion Vehicles
849 870
850 #region Parameters 871 #region INI and command line parameter processing
851 872
852 delegate void ParamUser(BSScene scene, IConfig conf, string paramName, float val); 873 delegate void ParamUser(BSScene scene, IConfig conf, string paramName, float val);
853 delegate float ParamGet(BSScene scene); 874 delegate float ParamGet(BSScene scene);
@@ -950,9 +971,9 @@ public class BSScene : PhysicsScene, IPhysicsParameters
950 (s,p,l,v) => { s.m_maxUpdatesPerFrame = (int)v; } ), 971 (s,p,l,v) => { s.m_maxUpdatesPerFrame = (int)v; } ),
951 new ParameterDefn("MaxObjectMass", "Maximum object mass (10000.01)", 972 new ParameterDefn("MaxObjectMass", "Maximum object mass (10000.01)",
952 10000.01f, 973 10000.01f,
953 (s,cf,p,v) => { s.m_maximumObjectMass = cf.GetFloat(p, v); }, 974 (s,cf,p,v) => { s.MaximumObjectMass = cf.GetFloat(p, v); },
954 (s) => { return (float)s.m_maximumObjectMass; }, 975 (s) => { return (float)s.MaximumObjectMass; },
955 (s,p,l,v) => { s.m_maximumObjectMass = v; } ), 976 (s,p,l,v) => { s.MaximumObjectMass = v; } ),
956 977
957 new ParameterDefn("PID_D", "Derivitive factor for motion smoothing", 978 new ParameterDefn("PID_D", "Derivitive factor for motion smoothing",
958 2200f, 979 2200f,
@@ -996,42 +1017,42 @@ public class BSScene : PhysicsScene, IPhysicsParameters
996 0f, 1017 0f,
997 (s,cf,p,v) => { s.m_params[0].linearDamping = cf.GetFloat(p, v); }, 1018 (s,cf,p,v) => { s.m_params[0].linearDamping = cf.GetFloat(p, v); },
998 (s) => { return s.m_params[0].linearDamping; }, 1019 (s) => { return s.m_params[0].linearDamping; },
999 (s,p,l,v) => { s.UpdateParameterPrims(ref s.m_params[0].linearDamping, p, l, v); } ), 1020 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].linearDamping, p, l, v); } ),
1000 new ParameterDefn("AngularDamping", "Factor to damp angular movement per second (0.0 - 1.0)", 1021 new ParameterDefn("AngularDamping", "Factor to damp angular movement per second (0.0 - 1.0)",
1001 0f, 1022 0f,
1002 (s,cf,p,v) => { s.m_params[0].angularDamping = cf.GetFloat(p, v); }, 1023 (s,cf,p,v) => { s.m_params[0].angularDamping = cf.GetFloat(p, v); },
1003 (s) => { return s.m_params[0].angularDamping; }, 1024 (s) => { return s.m_params[0].angularDamping; },
1004 (s,p,l,v) => { s.UpdateParameterPrims(ref s.m_params[0].angularDamping, p, l, v); } ), 1025 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].angularDamping, p, l, v); } ),
1005 new ParameterDefn("DeactivationTime", "Seconds before considering an object potentially static", 1026 new ParameterDefn("DeactivationTime", "Seconds before considering an object potentially static",
1006 0.2f, 1027 0.2f,
1007 (s,cf,p,v) => { s.m_params[0].deactivationTime = cf.GetFloat(p, v); }, 1028 (s,cf,p,v) => { s.m_params[0].deactivationTime = cf.GetFloat(p, v); },
1008 (s) => { return s.m_params[0].deactivationTime; }, 1029 (s) => { return s.m_params[0].deactivationTime; },
1009 (s,p,l,v) => { s.UpdateParameterPrims(ref s.m_params[0].deactivationTime, p, l, v); } ), 1030 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].deactivationTime, p, l, v); } ),
1010 new ParameterDefn("LinearSleepingThreshold", "Seconds to measure linear movement before considering static", 1031 new ParameterDefn("LinearSleepingThreshold", "Seconds to measure linear movement before considering static",
1011 0.8f, 1032 0.8f,
1012 (s,cf,p,v) => { s.m_params[0].linearSleepingThreshold = cf.GetFloat(p, v); }, 1033 (s,cf,p,v) => { s.m_params[0].linearSleepingThreshold = cf.GetFloat(p, v); },
1013 (s) => { return s.m_params[0].linearSleepingThreshold; }, 1034 (s) => { return s.m_params[0].linearSleepingThreshold; },
1014 (s,p,l,v) => { s.UpdateParameterPrims(ref s.m_params[0].linearSleepingThreshold, p, l, v); } ), 1035 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].linearSleepingThreshold, p, l, v); } ),
1015 new ParameterDefn("AngularSleepingThreshold", "Seconds to measure angular movement before considering static", 1036 new ParameterDefn("AngularSleepingThreshold", "Seconds to measure angular movement before considering static",
1016 1.0f, 1037 1.0f,
1017 (s,cf,p,v) => { s.m_params[0].angularSleepingThreshold = cf.GetFloat(p, v); }, 1038 (s,cf,p,v) => { s.m_params[0].angularSleepingThreshold = cf.GetFloat(p, v); },
1018 (s) => { return s.m_params[0].angularSleepingThreshold; }, 1039 (s) => { return s.m_params[0].angularSleepingThreshold; },
1019 (s,p,l,v) => { s.UpdateParameterPrims(ref s.m_params[0].angularSleepingThreshold, p, l, v); } ), 1040 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].angularSleepingThreshold, p, l, v); } ),
1020 new ParameterDefn("CcdMotionThreshold", "Continuious collision detection threshold (0 means no CCD)" , 1041 new ParameterDefn("CcdMotionThreshold", "Continuious collision detection threshold (0 means no CCD)" ,
1021 0f, // set to zero to disable 1042 0f, // set to zero to disable
1022 (s,cf,p,v) => { s.m_params[0].ccdMotionThreshold = cf.GetFloat(p, v); }, 1043 (s,cf,p,v) => { s.m_params[0].ccdMotionThreshold = cf.GetFloat(p, v); },
1023 (s) => { return s.m_params[0].ccdMotionThreshold; }, 1044 (s) => { return s.m_params[0].ccdMotionThreshold; },
1024 (s,p,l,v) => { s.UpdateParameterPrims(ref s.m_params[0].ccdMotionThreshold, p, l, v); } ), 1045 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].ccdMotionThreshold, p, l, v); } ),
1025 new ParameterDefn("CcdSweptSphereRadius", "Continuious collision detection test radius" , 1046 new ParameterDefn("CcdSweptSphereRadius", "Continuious collision detection test radius" ,
1026 0f, 1047 0f,
1027 (s,cf,p,v) => { s.m_params[0].ccdSweptSphereRadius = cf.GetFloat(p, v); }, 1048 (s,cf,p,v) => { s.m_params[0].ccdSweptSphereRadius = cf.GetFloat(p, v); },
1028 (s) => { return s.m_params[0].ccdSweptSphereRadius; }, 1049 (s) => { return s.m_params[0].ccdSweptSphereRadius; },
1029 (s,p,l,v) => { s.UpdateParameterPrims(ref s.m_params[0].ccdSweptSphereRadius, p, l, v); } ), 1050 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].ccdSweptSphereRadius, p, l, v); } ),
1030 new ParameterDefn("ContactProcessingThreshold", "Distance between contacts before doing collision check" , 1051 new ParameterDefn("ContactProcessingThreshold", "Distance between contacts before doing collision check" ,
1031 0.1f, 1052 0.1f,
1032 (s,cf,p,v) => { s.m_params[0].contactProcessingThreshold = cf.GetFloat(p, v); }, 1053 (s,cf,p,v) => { s.m_params[0].contactProcessingThreshold = cf.GetFloat(p, v); },
1033 (s) => { return s.m_params[0].contactProcessingThreshold; }, 1054 (s) => { return s.m_params[0].contactProcessingThreshold; },
1034 (s,p,l,v) => { s.UpdateParameterPrims(ref s.m_params[0].contactProcessingThreshold, p, l, v); } ), 1055 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].contactProcessingThreshold, p, l, v); } ),
1035 1056
1036 new ParameterDefn("TerrainFriction", "Factor to reduce movement against terrain surface" , 1057 new ParameterDefn("TerrainFriction", "Factor to reduce movement against terrain surface" ,
1037 0.5f, 1058 0.5f,
@@ -1049,35 +1070,35 @@ public class BSScene : PhysicsScene, IPhysicsParameters
1049 (s) => { return s.m_params[0].terrainRestitution; }, 1070 (s) => { return s.m_params[0].terrainRestitution; },
1050 (s,p,l,v) => { s.m_params[0].terrainRestitution = v; s.TaintedUpdateParameter(p,l,v); } ), 1071 (s,p,l,v) => { s.m_params[0].terrainRestitution = v; s.TaintedUpdateParameter(p,l,v); } ),
1051 new ParameterDefn("AvatarFriction", "Factor to reduce movement against an avatar. Changed on avatar recreation.", 1072 new ParameterDefn("AvatarFriction", "Factor to reduce movement against an avatar. Changed on avatar recreation.",
1052 0.5f, 1073 0.2f,
1053 (s,cf,p,v) => { s.m_params[0].avatarFriction = cf.GetFloat(p, v); }, 1074 (s,cf,p,v) => { s.m_params[0].avatarFriction = cf.GetFloat(p, v); },
1054 (s) => { return s.m_params[0].avatarFriction; }, 1075 (s) => { return s.m_params[0].avatarFriction; },
1055 (s,p,l,v) => { s.UpdateParameterAvatars(ref s.m_params[0].avatarFriction, p, l, v); } ), 1076 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].avatarFriction, p, l, v); } ),
1056 new ParameterDefn("AvatarDensity", "Density of an avatar. Changed on avatar recreation.", 1077 new ParameterDefn("AvatarDensity", "Density of an avatar. Changed on avatar recreation.",
1057 60f, 1078 60f,
1058 (s,cf,p,v) => { s.m_params[0].avatarDensity = cf.GetFloat(p, v); }, 1079 (s,cf,p,v) => { s.m_params[0].avatarDensity = cf.GetFloat(p, v); },
1059 (s) => { return s.m_params[0].avatarDensity; }, 1080 (s) => { return s.m_params[0].avatarDensity; },
1060 (s,p,l,v) => { s.UpdateParameterAvatars(ref s.m_params[0].avatarDensity, p, l, v); } ), 1081 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].avatarDensity, p, l, v); } ),
1061 new ParameterDefn("AvatarRestitution", "Bouncyness. Changed on avatar recreation.", 1082 new ParameterDefn("AvatarRestitution", "Bouncyness. Changed on avatar recreation.",
1062 0f, 1083 0f,
1063 (s,cf,p,v) => { s.m_params[0].avatarRestitution = cf.GetFloat(p, v); }, 1084 (s,cf,p,v) => { s.m_params[0].avatarRestitution = cf.GetFloat(p, v); },
1064 (s) => { return s.m_params[0].avatarRestitution; }, 1085 (s) => { return s.m_params[0].avatarRestitution; },
1065 (s,p,l,v) => { s.UpdateParameterAvatars(ref s.m_params[0].avatarRestitution, p, l, v); } ), 1086 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].avatarRestitution, p, l, v); } ),
1066 new ParameterDefn("AvatarCapsuleRadius", "Radius of space around an avatar", 1087 new ParameterDefn("AvatarCapsuleRadius", "Radius of space around an avatar",
1067 0.37f, 1088 0.37f,
1068 (s,cf,p,v) => { s.m_params[0].avatarCapsuleRadius = cf.GetFloat(p, v); }, 1089 (s,cf,p,v) => { s.m_params[0].avatarCapsuleRadius = cf.GetFloat(p, v); },
1069 (s) => { return s.m_params[0].avatarCapsuleRadius; }, 1090 (s) => { return s.m_params[0].avatarCapsuleRadius; },
1070 (s,p,l,v) => { s.UpdateParameterAvatars(ref s.m_params[0].avatarCapsuleRadius, p, l, v); } ), 1091 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].avatarCapsuleRadius, p, l, v); } ),
1071 new ParameterDefn("AvatarCapsuleHeight", "Default height of space around avatar", 1092 new ParameterDefn("AvatarCapsuleHeight", "Default height of space around avatar",
1072 1.5f, 1093 1.5f,
1073 (s,cf,p,v) => { s.m_params[0].avatarCapsuleHeight = cf.GetFloat(p, v); }, 1094 (s,cf,p,v) => { s.m_params[0].avatarCapsuleHeight = cf.GetFloat(p, v); },
1074 (s) => { return s.m_params[0].avatarCapsuleHeight; }, 1095 (s) => { return s.m_params[0].avatarCapsuleHeight; },
1075 (s,p,l,v) => { s.UpdateParameterAvatars(ref s.m_params[0].avatarCapsuleHeight, p, l, v); } ), 1096 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].avatarCapsuleHeight, p, l, v); } ),
1076 new ParameterDefn("AvatarContactProcessingThreshold", "Distance from capsule to check for collisions", 1097 new ParameterDefn("AvatarContactProcessingThreshold", "Distance from capsule to check for collisions",
1077 0.1f, 1098 0.1f,
1078 (s,cf,p,v) => { s.m_params[0].avatarContactProcessingThreshold = cf.GetFloat(p, v); }, 1099 (s,cf,p,v) => { s.m_params[0].avatarContactProcessingThreshold = cf.GetFloat(p, v); },
1079 (s) => { return s.m_params[0].avatarContactProcessingThreshold; }, 1100 (s) => { return s.m_params[0].avatarContactProcessingThreshold; },
1080 (s,p,l,v) => { s.UpdateParameterAvatars(ref s.m_params[0].avatarContactProcessingThreshold, p, l, v); } ), 1101 (s,p,l,v) => { s.UpdateParameterObject(ref s.m_params[0].avatarContactProcessingThreshold, p, l, v); } ),
1081 1102
1082 1103
1083 new ParameterDefn("MaxPersistantManifoldPoolSize", "Number of manifolds pooled (0 means default of 4096)", 1104 new ParameterDefn("MaxPersistantManifoldPoolSize", "Number of manifolds pooled (0 means default of 4096)",
@@ -1214,6 +1235,8 @@ public class BSScene : PhysicsScene, IPhysicsParameters
1214 1235
1215 private PhysParameterEntry[] SettableParameters = new PhysParameterEntry[1]; 1236 private PhysParameterEntry[] SettableParameters = new PhysParameterEntry[1];
1216 1237
1238 // This creates an array in the correct format for returning the list of
1239 // parameters. This is used by the 'list' option of the 'physics' command.
1217 private void BuildParameterTable() 1240 private void BuildParameterTable()
1218 { 1241 {
1219 if (SettableParameters.Length < ParameterDefinitions.Length) 1242 if (SettableParameters.Length < ParameterDefinitions.Length)
@@ -1264,18 +1287,10 @@ public class BSScene : PhysicsScene, IPhysicsParameters
1264 } 1287 }
1265 1288
1266 // check to see if we are updating a parameter for a particular or all of the prims 1289 // check to see if we are updating a parameter for a particular or all of the prims
1267 protected void UpdateParameterPrims(ref float loc, string parm, uint localID, float val) 1290 protected void UpdateParameterObject(ref float loc, string parm, uint localID, float val)
1268 {
1269 List<uint> operateOn;
1270 lock (m_prims) operateOn = new List<uint>(m_prims.Keys);
1271 UpdateParameterSet(operateOn, ref loc, parm, localID, val);
1272 }
1273
1274 // check to see if we are updating a parameter for a particular or all of the avatars
1275 protected void UpdateParameterAvatars(ref float loc, string parm, uint localID, float val)
1276 { 1291 {
1277 List<uint> operateOn; 1292 List<uint> operateOn;
1278 lock (m_avatars) operateOn = new List<uint>(m_avatars.Keys); 1293 lock (PhysObjects) operateOn = new List<uint>(PhysObjects.Keys);
1279 UpdateParameterSet(operateOn, ref loc, parm, localID, val); 1294 UpdateParameterSet(operateOn, ref loc, parm, localID, val);
1280 } 1295 }
1281 1296
@@ -1298,7 +1313,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
1298 TaintedObject("BSScene.UpdateParameterSet", delegate() { 1313 TaintedObject("BSScene.UpdateParameterSet", delegate() {
1299 foreach (uint lID in objectIDs) 1314 foreach (uint lID in objectIDs)
1300 { 1315 {
1301 BulletSimAPI.UpdateParameter(m_worldID, lID, xparm, xval); 1316 BulletSimAPI.UpdateParameter(WorldID, lID, xparm, xval);
1302 } 1317 }
1303 }); 1318 });
1304 break; 1319 break;
@@ -1316,7 +1331,7 @@ public class BSScene : PhysicsScene, IPhysicsParameters
1316 string xparm = parm.ToLower(); 1331 string xparm = parm.ToLower();
1317 float xval = val; 1332 float xval = val;
1318 TaintedObject("BSScene.TaintedUpdateParameter", delegate() { 1333 TaintedObject("BSScene.TaintedUpdateParameter", delegate() {
1319 BulletSimAPI.UpdateParameter(m_worldID, xlocalID, xparm, xval); 1334 BulletSimAPI.UpdateParameter(WorldID, xlocalID, xparm, xval);
1320 }); 1335 });
1321 } 1336 }
1322 1337
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSTerrainManager.cs b/OpenSim/Region/Physics/BulletSPlugin/BSTerrainManager.cs
new file mode 100755
index 0000000..ab45f8f
--- /dev/null
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSTerrainManager.cs
@@ -0,0 +1,464 @@
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 copyrightD
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 */
27using System;
28using System.Collections.Generic;
29using System.Text;
30
31using OpenSim.Framework;
32using OpenSim.Region.Framework;
33using OpenSim.Region.CoreModules;
34using OpenSim.Region.Physics.Manager;
35
36using Nini.Config;
37using log4net;
38
39using OpenMetaverse;
40
41namespace OpenSim.Region.Physics.BulletSPlugin
42{
43public class BSTerrainManager
44{
45 static string LogHeader = "[BULLETSIM TERRAIN MANAGER]";
46
47 // These height values are fractional so the odd values will be
48 // noticable when debugging.
49 public const float HEIGHT_INITIALIZATION = 24.987f;
50 public const float HEIGHT_INITIAL_LASTHEIGHT = 24.876f;
51 public const float HEIGHT_GETHEIGHT_RET = 24.765f;
52
53 // If the min and max height are equal, we reduce the min by this
54 // amount to make sure that a bounding box is built for the terrain.
55 public const float HEIGHT_EQUAL_FUDGE = 0.2f;
56
57 public const float TERRAIN_COLLISION_MARGIN = 0.0f;
58
59 // Until the whole simulator is changed to pass us the region size, we rely on constants.
60 public Vector3 DefaultRegionSize = new Vector3(Constants.RegionSize, Constants.RegionSize, 0f);
61
62 // The scene that I am part of
63 private BSScene m_physicsScene;
64
65 // The ground plane created to keep thing from falling to infinity.
66 private BulletBody m_groundPlane;
67
68 // If doing mega-regions, if we're region zero we will be managing multiple
69 // region terrains since region zero does the physics for the whole mega-region.
70 private Dictionary<Vector2, BulletHeightMapInfo> m_heightMaps;
71
72 // True of the terrain has been modified.
73 // Used to force recalculation of terrain height after terrain has been modified
74 private bool m_terrainModified;
75
76 // If we are doing mega-regions, terrains are added from TERRAIN_ID to m_terrainCount.
77 // This is incremented before assigning to new region so it is the last ID allocated.
78 private uint m_terrainCount = BSScene.CHILDTERRAIN_ID - 1;
79 public uint HighestTerrainID { get {return m_terrainCount; } }
80
81 // If doing mega-regions, this holds our offset from region zero of
82 // the mega-regions. "parentScene" points to the PhysicsScene of region zero.
83 private Vector3 m_worldOffset;
84 // If the parent region (region 0), this is the extent of the combined regions
85 // relative to the origin of region zero
86 private Vector3 m_worldMax;
87 private PhysicsScene m_parentScene;
88
89 public BSTerrainManager(BSScene physicsScene)
90 {
91 m_physicsScene = physicsScene;
92 m_heightMaps = new Dictionary<Vector2,BulletHeightMapInfo>();
93 m_terrainModified = false;
94
95 // Assume one region of default size
96 m_worldOffset = Vector3.Zero;
97 m_worldMax = new Vector3(DefaultRegionSize.X, DefaultRegionSize.Y, 4096f);
98 m_parentScene = null;
99 }
100
101 // Create the initial instance of terrain and the underlying ground plane.
102 // The objects are allocated in the unmanaged space and the pointers are tracked
103 // by the managed code.
104 // The terrains and the groundPlane are not added to the list of PhysObjects.
105 // This is called from the initialization routine so we presume it is
106 // safe to call Bullet in real time. We hope no one is moving prims around yet.
107 public void CreateInitialGroundPlaneAndTerrain()
108 {
109 // The ground plane is here to catch things that are trying to drop to negative infinity
110 BulletShape groundPlaneShape = new BulletShape(BulletSimAPI.CreateGroundPlaneShape2(BSScene.GROUNDPLANE_ID, 1f, TERRAIN_COLLISION_MARGIN));
111 m_groundPlane = new BulletBody(BSScene.GROUNDPLANE_ID,
112 BulletSimAPI.CreateBodyWithDefaultMotionState2(groundPlaneShape.Ptr, Vector3.Zero, Quaternion.Identity));
113 BulletSimAPI.AddObjectToWorld2(m_physicsScene.World.Ptr, m_groundPlane.Ptr);
114
115 Vector3 minTerrainCoords = new Vector3(0f, 0f, HEIGHT_INITIALIZATION - HEIGHT_EQUAL_FUDGE);
116 Vector3 maxTerrainCoords = new Vector3(DefaultRegionSize.X, DefaultRegionSize.Y, HEIGHT_INITIALIZATION);
117 int totalHeights = (int)maxTerrainCoords.X * (int)maxTerrainCoords.Y;
118 float[] initialMap = new float[totalHeights];
119 for (int ii = 0; ii < totalHeights; ii++)
120 {
121 initialMap[ii] = HEIGHT_INITIALIZATION;
122 }
123 UpdateOrCreateTerrain(BSScene.TERRAIN_ID, initialMap, minTerrainCoords, maxTerrainCoords, true);
124 }
125
126 // Release all the terrain structures we might have allocated
127 public void ReleaseGroundPlaneAndTerrain()
128 {
129 if (m_groundPlane.Ptr != IntPtr.Zero)
130 {
131 if (BulletSimAPI.RemoveObjectFromWorld2(m_physicsScene.World.Ptr, m_groundPlane.Ptr))
132 {
133 BulletSimAPI.DestroyObject2(m_physicsScene.World.Ptr, m_groundPlane.Ptr);
134 }
135 m_groundPlane.Ptr = IntPtr.Zero;
136 }
137
138 ReleaseTerrain();
139 }
140
141 // Release all the terrain we have allocated
142 public void ReleaseTerrain()
143 {
144 foreach (KeyValuePair<Vector2, BulletHeightMapInfo> kvp in m_heightMaps)
145 {
146 if (BulletSimAPI.RemoveObjectFromWorld2(m_physicsScene.World.Ptr, kvp.Value.terrainBody.Ptr))
147 {
148 BulletSimAPI.DestroyObject2(m_physicsScene.World.Ptr, kvp.Value.terrainBody.Ptr);
149 BulletSimAPI.ReleaseHeightMapInfo2(kvp.Value.Ptr);
150 }
151 }
152 m_heightMaps.Clear();
153 }
154
155 // The simulator wants to set a new heightmap for the terrain.
156 public void SetTerrain(float[] heightMap) {
157 if (m_worldOffset != Vector3.Zero && m_parentScene != null)
158 {
159 // If a child of a mega-region, we shouldn't have any terrain allocated for us
160 ReleaseGroundPlaneAndTerrain();
161 // If doing the mega-prim stuff and we are the child of the zero region,
162 // the terrain is added to our parent
163 if (m_parentScene is BSScene)
164 {
165 DetailLog("{0},SetTerrain.ToParent,offset={1},worldMax={2}",
166 BSScene.DetailLogZero, m_worldOffset, m_worldMax);
167 ((BSScene)m_parentScene).TerrainManager.UpdateOrCreateTerrain(BSScene.CHILDTERRAIN_ID,
168 heightMap, m_worldOffset, m_worldOffset+DefaultRegionSize, false);
169 }
170 }
171 else
172 {
173 // If not doing the mega-prim thing, just change the terrain
174 DetailLog("{0},SetTerrain.Existing", BSScene.DetailLogZero);
175
176 UpdateOrCreateTerrain(BSScene.TERRAIN_ID, heightMap, m_worldOffset, m_worldOffset+DefaultRegionSize, false);
177 }
178 }
179
180 // If called with no mapInfo for the terrain, this will create a new mapInfo and terrain
181 // based on the passed information. The 'id' should be either the terrain id or
182 // BSScene.CHILDTERRAIN_ID. If the latter, a new child terrain ID will be allocated and used.
183 // The latter feature is for creating child terrains for mega-regions.
184 // If called with a mapInfo in m_heightMaps but the terrain has no body yet (mapInfo.terrainBody.Ptr == 0)
185 // then a new body and shape is created and the mapInfo is filled.
186 // This call is used for doing the initial terrain creation.
187 // If called with a mapInfo in m_heightMaps and there is an existing terrain body, a new
188 // terrain shape is created and added to the body.
189 // This call is most often used to update the heightMap and parameters of the terrain.
190 // The 'doNow' boolean says whether to do all the unmanaged activities right now (like when
191 // calling this routine from initialization or taint-time routines) or whether to delay
192 // all the unmanaged activities to taint-time.
193 private void UpdateOrCreateTerrain(uint id, float[] heightMap, Vector3 minCoords, Vector3 maxCoords, bool doNow)
194 {
195 DetailLog("{0},BSTerrainManager.UpdateOrCreateTerrain,call,minC={1},maxC={2},doNow={3}",
196 BSScene.DetailLogZero, minCoords, maxCoords, doNow);
197
198 float minZ = float.MaxValue;
199 float maxZ = float.MinValue;
200 Vector2 terrainRegionBase = new Vector2(minCoords.X, minCoords.Y);
201
202 int heightMapSize = heightMap.Length;
203 for (int ii = 0; ii < heightMapSize; ii++)
204 {
205 float height = heightMap[ii];
206 if (height < minZ) minZ = height;
207 if (height > maxZ) maxZ = height;
208 }
209
210 // The shape of the terrain is from its base to its extents.
211 minCoords.Z = minZ;
212 maxCoords.Z = maxZ;
213
214 BulletHeightMapInfo mapInfo;
215 if (m_heightMaps.TryGetValue(terrainRegionBase, out mapInfo))
216 {
217 // If this is terrain we know about, it's easy to update
218
219 mapInfo.heightMap = heightMap;
220 mapInfo.minCoords = minCoords;
221 mapInfo.maxCoords = maxCoords;
222 mapInfo.minZ = minZ;
223 mapInfo.maxZ = maxZ;
224 mapInfo.sizeX = maxCoords.X - minCoords.X;
225 mapInfo.sizeY = maxCoords.Y - minCoords.Y;
226 DetailLog("{0},UpdateOrCreateTerrain:UpdateExisting,call,terrainBase={1},minC={2}, maxC={3}, szX={4}, szY={5}",
227 BSScene.DetailLogZero, terrainRegionBase, mapInfo.minCoords, mapInfo.maxCoords, mapInfo.sizeX, mapInfo.sizeY);
228
229 BSScene.TaintCallback rebuildOperation = delegate()
230 {
231 if (m_parentScene != null)
232 {
233 // It's possible that Combine() was called after this code was queued.
234 // If we are a child of combined regions, we don't create any terrain for us.
235 DetailLog("{0},UpdateOrCreateTerrain:AmACombineChild,taint", BSScene.DetailLogZero);
236
237 // Get rid of any terrain that may have been allocated for us.
238 ReleaseGroundPlaneAndTerrain();
239
240 // I hate doing this, but just bail
241 return;
242 }
243
244 if (mapInfo.terrainBody.Ptr != IntPtr.Zero)
245 {
246 // Updating an existing terrain.
247 DetailLog("{0},UpdateOrCreateTerrain:UpdateExisting,taint,terrainBase={1},minC={2}, maxC={3}, szX={4}, szY={5}",
248 BSScene.DetailLogZero, terrainRegionBase, mapInfo.minCoords, mapInfo.maxCoords, mapInfo.sizeX, mapInfo.sizeY);
249
250 // Remove from the dynamics world because we're going to mangle this object
251 BulletSimAPI.RemoveObjectFromWorld2(m_physicsScene.World.Ptr, mapInfo.terrainBody.Ptr);
252
253 // Get rid of the old terrain
254 BulletSimAPI.DestroyObject2(m_physicsScene.World.Ptr, mapInfo.terrainBody.Ptr);
255 BulletSimAPI.ReleaseHeightMapInfo2(mapInfo.Ptr);
256 mapInfo.Ptr = IntPtr.Zero;
257
258 /*
259 // NOTE: This routine is half here because I can't get the terrain shape replacement
260 // to work. In the short term, the above three lines completely delete the old
261 // terrain and the code below recreates one from scratch.
262 // Hopefully the Bullet community will help me out on this one.
263
264 // First, release the old collision shape (there is only one terrain)
265 BulletSimAPI.DeleteCollisionShape2(m_physicsScene.World.Ptr, mapInfo.terrainShape.Ptr);
266
267 // Fill the existing height map info with the new location and size information
268 BulletSimAPI.FillHeightMapInfo2(m_physicsScene.World.Ptr, mapInfo.Ptr, mapInfo.ID,
269 mapInfo.minCoords, mapInfo.maxCoords, mapInfo.heightMap, TERRAIN_COLLISION_MARGIN);
270
271 // Create a terrain shape based on the new info
272 mapInfo.terrainShape = new BulletShape(BulletSimAPI.CreateTerrainShape2(mapInfo.Ptr));
273
274 // Stuff the shape into the existing terrain body
275 BulletSimAPI.SetBodyShape2(m_physicsScene.World.Ptr, mapInfo.terrainBody.Ptr, mapInfo.terrainShape.Ptr);
276 */
277 }
278 // else
279 {
280 // Creating a new terrain.
281 DetailLog("{0},UpdateOrCreateTerrain:CreateNewTerrain,taint,baseX={1},baseY={2},minZ={3},maxZ={4}",
282 BSScene.DetailLogZero, mapInfo.minCoords.X, mapInfo.minCoords.Y, minZ, maxZ);
283
284 mapInfo.ID = id;
285 mapInfo.Ptr = BulletSimAPI.CreateHeightMapInfo2(m_physicsScene.World.Ptr, mapInfo.ID,
286 mapInfo.minCoords, mapInfo.maxCoords, mapInfo.heightMap, TERRAIN_COLLISION_MARGIN);
287
288 // The terrain object initial position is at the center of the object
289 Vector3 centerPos;
290 centerPos.X = minCoords.X + (mapInfo.sizeX / 2f);
291 centerPos.Y = minCoords.Y + (mapInfo.sizeY / 2f);
292 centerPos.Z = minZ + ((maxZ - minZ) / 2f);
293
294 // Create the terrain shape from the mapInfo
295 mapInfo.terrainShape = new BulletShape(BulletSimAPI.CreateTerrainShape2(mapInfo.Ptr));
296
297 mapInfo.terrainBody = new BulletBody(mapInfo.ID,
298 BulletSimAPI.CreateBodyWithDefaultMotionState2(mapInfo.terrainShape.Ptr,
299 centerPos, Quaternion.Identity));
300 }
301
302 // Make sure the entry is in the heightmap table
303 m_heightMaps[terrainRegionBase] = mapInfo;
304
305 // Set current terrain attributes
306 BulletSimAPI.SetFriction2(mapInfo.terrainBody.Ptr, m_physicsScene.Params.terrainFriction);
307 BulletSimAPI.SetHitFraction2(mapInfo.terrainBody.Ptr, m_physicsScene.Params.terrainHitFraction);
308 BulletSimAPI.SetRestitution2(mapInfo.terrainBody.Ptr, m_physicsScene.Params.terrainRestitution);
309 BulletSimAPI.SetCollisionFlags2(mapInfo.terrainBody.Ptr, CollisionFlags.CF_STATIC_OBJECT);
310
311 BulletSimAPI.SetMassProps2(mapInfo.terrainBody.Ptr, 0f, Vector3.Zero);
312 BulletSimAPI.UpdateInertiaTensor2(mapInfo.terrainBody.Ptr);
313
314 // Return the new terrain to the world of physical objects
315 BulletSimAPI.AddObjectToWorld2(m_physicsScene.World.Ptr, mapInfo.terrainBody.Ptr);
316
317 // redo its bounding box now that it is in the world
318 BulletSimAPI.UpdateSingleAabb2(m_physicsScene.World.Ptr, mapInfo.terrainBody.Ptr);
319
320 // Make sure the new shape is processed.
321 BulletSimAPI.Activate2(mapInfo.terrainBody.Ptr, true);
322 };
323
324 // There is the option to do the changes now (we're already in 'taint time'), or
325 // to do the Bullet operations later.
326 if (doNow)
327 rebuildOperation();
328 else
329 m_physicsScene.TaintedObject("BSScene.UpdateOrCreateTerrain:UpdateExisting", rebuildOperation);
330 }
331 else
332 {
333 // We don't know about this terrain so either we are creating a new terrain or
334 // our mega-prim child is giving us a new terrain to add to the phys world
335
336 // if this is a child terrain, calculate a unique terrain id
337 uint newTerrainID = id;
338 if (newTerrainID >= BSScene.CHILDTERRAIN_ID)
339 newTerrainID = ++m_terrainCount;
340
341 float[] heightMapX = heightMap;
342 Vector3 minCoordsX = minCoords;
343 Vector3 maxCoordsX = maxCoords;
344
345 DetailLog("{0},UpdateOrCreateTerrain:NewTerrain,call,id={1}, minC={2}, maxC={3}",
346 BSScene.DetailLogZero, newTerrainID, minCoords, minCoords);
347
348 // Code that must happen at taint-time
349 BSScene.TaintCallback createOperation = delegate()
350 {
351 DetailLog("{0},UpdateOrCreateTerrain:NewTerrain,taint,baseX={1},baseY={2}", BSScene.DetailLogZero, minCoords.X, minCoords.Y);
352 // Create a new mapInfo that will be filled with the new info
353 mapInfo = new BulletHeightMapInfo(id, heightMapX,
354 BulletSimAPI.CreateHeightMapInfo2(m_physicsScene.World.Ptr, newTerrainID,
355 minCoordsX, maxCoordsX, heightMapX, TERRAIN_COLLISION_MARGIN));
356 // Put the unfilled heightmap info into the collection of same
357 m_heightMaps.Add(terrainRegionBase, mapInfo);
358 // Build the terrain
359 UpdateOrCreateTerrain(newTerrainID, heightMap, minCoords, maxCoords, true);
360 };
361
362 // If already in taint-time, just call Bullet. Otherwise queue the operations for the safe time.
363 if (doNow)
364 createOperation();
365 else
366 m_physicsScene.TaintedObject("BSScene.UpdateOrCreateTerrain:NewTerrain", createOperation);
367 }
368 }
369
370 // Someday we will have complex terrain with caves and tunnels
371 public float GetTerrainHeightAtXYZ(Vector3 loc)
372 {
373 // For the moment, it's flat and convex
374 return GetTerrainHeightAtXY(loc.X, loc.Y);
375 }
376
377 // Given an X and Y, find the height of the terrain.
378 // Since we could be handling multiple terrains for a mega-region,
379 // the base of the region is calcuated assuming all regions are
380 // the same size and that is the default.
381 // Once the heightMapInfo is found, we have all the information to
382 // compute the offset into the array.
383 private float lastHeightTX = 999999f;
384 private float lastHeightTY = 999999f;
385 private float lastHeight = HEIGHT_INITIAL_LASTHEIGHT;
386 public float GetTerrainHeightAtXY(float tX, float tY)
387 {
388 // You'd be surprized at the number of times this routine is called
389 // with the same parameters as last time.
390 if (!m_terrainModified && lastHeightTX == tX && lastHeightTY == tY)
391 return lastHeight;
392
393 lastHeightTX = tX;
394 lastHeightTY = tY;
395 float ret = HEIGHT_GETHEIGHT_RET;
396
397 int offsetX = ((int)(tX / (int)DefaultRegionSize.X)) * (int)DefaultRegionSize.X;
398 int offsetY = ((int)(tY / (int)DefaultRegionSize.Y)) * (int)DefaultRegionSize.Y;
399 Vector2 terrainBaseXY = new Vector2(offsetX, offsetY);
400
401 BulletHeightMapInfo mapInfo;
402 if (m_heightMaps.TryGetValue(terrainBaseXY, out mapInfo))
403 {
404 float regionX = tX - offsetX;
405 float regionY = tY - offsetY;
406 if (regionX > mapInfo.sizeX) regionX = 0;
407 if (regionY > mapInfo.sizeY) regionY = 0;
408 int mapIndex = (int)regionY * (int)mapInfo.sizeY + (int)regionX;
409 ret = mapInfo.heightMap[mapIndex];
410 m_terrainModified = false;
411 DetailLog("{0},BSTerrainManager.GetTerrainHeightAtXY,bX={1},baseY={2},szX={3},szY={4},regX={5},regY={6},index={7},ht={8}",
412 BSScene.DetailLogZero, offsetX, offsetY, mapInfo.sizeX, mapInfo.sizeY, regionX, regionY, mapIndex, ret);
413 }
414 else
415 {
416 m_physicsScene.Logger.ErrorFormat("{0} GetTerrainHeightAtXY: terrain not found: region={1}, x={2}, y={3}",
417 LogHeader, m_physicsScene.RegionName, tX, tY);
418 }
419 lastHeight = ret;
420 return ret;
421 }
422
423 // Although no one seems to check this, I do support combining.
424 public bool SupportsCombining()
425 {
426 return true;
427 }
428
429 // This routine is called two ways:
430 // One with 'offset' and 'pScene' zero and null but 'extents' giving the maximum
431 // extent of the combined regions. This is to inform the parent of the size
432 // of the combined regions.
433 // and one with 'offset' as the offset of the child region to the base region,
434 // 'pScene' pointing to the parent and 'extents' of zero. This informs the
435 // child of its relative base and new parent.
436 public void Combine(PhysicsScene pScene, Vector3 offset, Vector3 extents)
437 {
438 m_worldOffset = offset;
439 m_worldMax = extents;
440 m_parentScene = pScene;
441 if (pScene != null)
442 {
443 // We are a child.
444 // We want m_worldMax to be the highest coordinate of our piece of terrain.
445 m_worldMax = offset + DefaultRegionSize;
446 }
447 DetailLog("{0},BSTerrainManager.Combine,offset={1},extents={2},wOffset={3},wMax={4}",
448 BSScene.DetailLogZero, offset, extents, m_worldOffset, m_worldMax);
449 }
450
451 // Unhook all the combining that I know about.
452 public void UnCombine(PhysicsScene pScene)
453 {
454 // Just like ODE, for the moment a NOP
455 DetailLog("{0},BSTerrainManager.UnCombine", BSScene.DetailLogZero);
456 }
457
458
459 private void DetailLog(string msg, params Object[] args)
460 {
461 m_physicsScene.PhysicsLogging.Write(msg, args);
462 }
463}
464}
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs b/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs
index 504bd3c..a0bad3a 100644
--- a/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BulletSimAPI.cs
@@ -33,15 +33,25 @@ using OpenMetaverse;
33namespace OpenSim.Region.Physics.BulletSPlugin { 33namespace OpenSim.Region.Physics.BulletSPlugin {
34 34
35// Classes to allow some type checking for the API 35// Classes to allow some type checking for the API
36// These hold pointers to allocated objects in the unmanaged space.
37
38// The physics engine controller class created at initialization
36public struct BulletSim 39public struct BulletSim
37{ 40{
38 public BulletSim(uint id, BSScene bss, IntPtr xx) { ID = id; scene = bss; Ptr = xx; } 41 public BulletSim(uint worldId, BSScene bss, IntPtr xx) { worldID = worldId; scene = bss; Ptr = xx; }
39 public uint ID; 42 public uint worldID;
40 // The scene is only in here so very low level routines have a handle to print debug/error messages 43 // The scene is only in here so very low level routines have a handle to print debug/error messages
41 public BSScene scene; 44 public BSScene scene;
42 public IntPtr Ptr; 45 public IntPtr Ptr;
43} 46}
44 47
48public struct BulletShape
49{
50 public BulletShape(IntPtr xx) { Ptr = xx; }
51 public IntPtr Ptr;
52}
53
54// An allocated Bullet btRigidBody
45public struct BulletBody 55public struct BulletBody
46{ 56{
47 public BulletBody(uint id, IntPtr xx) { ID = id; Ptr = xx; } 57 public BulletBody(uint id, IntPtr xx) { ID = id; Ptr = xx; }
@@ -49,12 +59,41 @@ public struct BulletBody
49 public uint ID; 59 public uint ID;
50} 60}
51 61
62// An allocated Bullet btConstraint
52public struct BulletConstraint 63public struct BulletConstraint
53{ 64{
54 public BulletConstraint(IntPtr xx) { Ptr = xx; } 65 public BulletConstraint(IntPtr xx) { Ptr = xx; }
55 public IntPtr Ptr; 66 public IntPtr Ptr;
56} 67}
57 68
69// An allocated HeightMapThing which hold various heightmap info
70// Made a class rather than a struct so there would be only one
71// instance of this and C# will pass around pointers rather
72// than making copies.
73public class BulletHeightMapInfo
74{
75 public BulletHeightMapInfo(uint id, float[] hm, IntPtr xx) {
76 ID = id;
77 Ptr = xx;
78 heightMap = hm;
79 terrainRegionBase = new Vector2(0f, 0f);
80 minCoords = new Vector3(100f, 100f, 25f);
81 maxCoords = new Vector3(101f, 101f, 26f);
82 minZ = maxZ = 0f;
83 sizeX = sizeY = 256f;
84 }
85 public uint ID;
86 public IntPtr Ptr;
87 public float[] heightMap;
88 public Vector2 terrainRegionBase;
89 public Vector3 minCoords;
90 public Vector3 maxCoords;
91 public float sizeX, sizeY;
92 public float minZ, maxZ;
93 public BulletShape terrainShape;
94 public BulletBody terrainBody;
95}
96
58// =============================================================================== 97// ===============================================================================
59[StructLayout(LayoutKind.Sequential)] 98[StructLayout(LayoutKind.Sequential)]
60public struct ConvexHull 99public struct ConvexHull
@@ -221,6 +260,10 @@ public enum ConstraintParamAxis : int
221// =============================================================================== 260// ===============================================================================
222static class BulletSimAPI { 261static class BulletSimAPI {
223 262
263// Link back to the managed code for outputting log messages
264[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
265public delegate void DebugLogCallback([MarshalAs(UnmanagedType.LPStr)]string msg);
266
224[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 267[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
225[return: MarshalAs(UnmanagedType.LPStr)] 268[return: MarshalAs(UnmanagedType.LPStr)]
226public static extern string GetVersion(); 269public static extern string GetVersion();
@@ -228,7 +271,11 @@ public static extern string GetVersion();
228[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 271[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
229public static extern uint Initialize(Vector3 maxPosition, IntPtr parms, 272public static extern uint Initialize(Vector3 maxPosition, IntPtr parms,
230 int maxCollisions, IntPtr collisionArray, 273 int maxCollisions, IntPtr collisionArray,
231 int maxUpdates, IntPtr updateArray); 274 int maxUpdates, IntPtr updateArray,
275 DebugLogCallback logRoutine);
276
277[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
278public static extern void CreateInitialGroundPlaneAndTerrain(uint worldID);
232 279
233[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 280[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
234public static extern void SetHeightmap(uint worldID, [MarshalAs(UnmanagedType.LPArray)] float[] heightMap); 281public static extern void SetHeightmap(uint worldID, [MarshalAs(UnmanagedType.LPArray)] float[] heightMap);
@@ -342,8 +389,6 @@ public static extern Vector3 RecoverFromPenetration(uint worldID, uint id);
342public static extern void DumpBulletStatistics(); 389public static extern void DumpBulletStatistics();
343 390
344// Log a debug message 391// Log a debug message
345[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
346public delegate void DebugLogCallback([MarshalAs(UnmanagedType.LPStr)]string msg);
347[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 392[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
348public static extern void SetDebugLogCallback(DebugLogCallback callback); 393public static extern void SetDebugLogCallback(DebugLogCallback callback);
349 394
@@ -377,7 +422,7 @@ public static extern IntPtr Initialize2(Vector3 maxPosition, IntPtr parms,
377public static extern bool UpdateParameter2(IntPtr world, uint localID, String parm, float value); 422public static extern bool UpdateParameter2(IntPtr world, uint localID, String parm, float value);
378 423
379[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 424[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
380public static extern void SetHeightmap2(IntPtr world, float[] heightmap); 425public static extern void SetHeightMap2(IntPtr world, float[] heightmap);
381 426
382[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 427[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
383public static extern void Shutdown2(IntPtr sim); 428public static extern void Shutdown2(IntPtr sim);
@@ -392,24 +437,54 @@ public static extern int PhysicsStep2(IntPtr world, float timeStep, int maxSubSt
392[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 437[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
393public static extern bool PushUpdate2(IntPtr obj); 438public static extern bool PushUpdate2(IntPtr obj);
394 439
395/* 440// =====================================================================================
396[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 441[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
397public static extern IntPtr CreateMesh2(IntPtr world, int indicesCount, int* indices, int verticesCount, float* vertices ); 442public static extern IntPtr CreateMeshShape2(IntPtr world,
443 int indicesCount, [MarshalAs(UnmanagedType.LPArray)] int[] indices,
444 int verticesCount, [MarshalAs(UnmanagedType.LPArray)] float[] vertices );
398 445
399[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 446[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
400public static extern bool BuildHull2(IntPtr world, IntPtr mesh); 447public static extern IntPtr CreateHullShape2(IntPtr world,
448 int hullCount, [MarshalAs(UnmanagedType.LPArray)] float[] hulls);
401 449
402[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 450[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
403public static extern bool ReleaseHull2(IntPtr world, IntPtr mesh); 451public static extern IntPtr BuildHullShape2(IntPtr world, IntPtr meshShape);
404 452
405[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 453[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
406public static extern bool DestroyMesh2(IntPtr world, IntPtr mesh); 454public static extern IntPtr BuildNativeShape2(IntPtr world,
455 float shapeType, float collisionMargin, Vector3 scale);
407 456
408[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 457[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
409public static extern IntPtr CreateObject2(IntPtr world, ShapeData shapeData); 458public static extern bool DeleteCollisionShape2(IntPtr world, IntPtr shape);
410*/
411 459
412[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 460[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
461public static extern IntPtr CreateBodyFromShape2(IntPtr sim, IntPtr shape, Vector3 pos, Quaternion rot);
462
463[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
464public static extern IntPtr CreateBodyWithDefaultMotionState2(IntPtr shape, Vector3 pos, Quaternion rot);
465
466[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
467public static extern bool SetBodyShape2(IntPtr sim, IntPtr obj, IntPtr shape);
468// =====================================================================================
469[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
470public static extern IntPtr CreateHeightMapInfo2(IntPtr sim, uint id, Vector3 minCoords, Vector3 maxCoords,
471 [MarshalAs(UnmanagedType.LPArray)] float[] heightMap, float collisionMargin);
472
473[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
474public static extern IntPtr FillHeightMapInfo2(IntPtr sim, IntPtr mapInfo, uint id, Vector3 minCoords, Vector3 maxCoords,
475 [MarshalAs(UnmanagedType.LPArray)] float[] heightMap, float collisionMargin);
476
477[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
478public static extern bool ReleaseHeightMapInfo2(IntPtr heightMapInfo);
479
480[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
481public static extern IntPtr CreateGroundPlaneShape2(uint id, float height, float collisionMargin);
482
483[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
484public static extern IntPtr CreateTerrainShape2(IntPtr mapInfo);
485
486// =====================================================================================
487[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
413public static extern IntPtr Create6DofConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, 488public static extern IntPtr Create6DofConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2,
414 Vector3 frame1loc, Quaternion frame1rot, 489 Vector3 frame1loc, Quaternion frame1rot,
415 Vector3 frame2loc, Quaternion frame2rot, 490 Vector3 frame2loc, Quaternion frame2rot,
@@ -460,11 +535,16 @@ public static extern bool SetConstraintParam2(IntPtr constrain, ConstraintParams
460[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 535[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
461public static extern bool DestroyConstraint2(IntPtr world, IntPtr constrain); 536public static extern bool DestroyConstraint2(IntPtr world, IntPtr constrain);
462 537
538// =====================================================================================
463[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 539[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
464public static extern Vector3 AddObjectToWorld2(IntPtr world, IntPtr obj); 540public static extern bool AddObjectToWorld2(IntPtr world, IntPtr obj);
465 541
466[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 542[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
467public static extern Vector3 RemoveObjectFromWorld2(IntPtr world, IntPtr obj); 543public static extern bool RemoveObjectFromWorld2(IntPtr world, IntPtr obj);
544
545// =====================================================================================
546[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
547public static extern void Activate2(IntPtr obj, bool forceActivation);
468 548
469[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 549[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
470public static extern Vector3 GetPosition2(IntPtr obj); 550public static extern Vector3 GetPosition2(IntPtr obj);
@@ -509,6 +589,9 @@ public static extern bool SetContactProcessingThreshold2(IntPtr obj, float val);
509public static extern bool SetFriction2(IntPtr obj, float val); 589public static extern bool SetFriction2(IntPtr obj, float val);
510 590
511[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 591[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
592public static extern bool SetHitFraction2(IntPtr obj, float val);
593
594[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
512public static extern bool SetRestitution2(IntPtr obj, float val); 595public static extern bool SetRestitution2(IntPtr obj, float val);
513 596
514[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 597[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
@@ -551,7 +634,7 @@ public static extern bool SetMargin2(IntPtr obj, float val);
551public static extern bool UpdateSingleAabb2(IntPtr world, IntPtr obj); 634public static extern bool UpdateSingleAabb2(IntPtr world, IntPtr obj);
552 635
553[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 636[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
554public static extern bool DestroyObject2(IntPtr world, uint id); 637public static extern bool DestroyObject2(IntPtr world, IntPtr obj);
555 638
556[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] 639[DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
557public static extern void DumpPhysicsStatistics2(IntPtr sim); 640public static extern void DumpPhysicsStatistics2(IntPtr sim);
diff --git a/ThirdPartyLicenses/Newtonsoft-JsonDotNet.txt b/ThirdPartyLicenses/Newtonsoft-JsonDotNet.txt
deleted file mode 100644
index 457daca..0000000
--- a/ThirdPartyLicenses/Newtonsoft-JsonDotNet.txt
+++ /dev/null
@@ -1,23 +0,0 @@
1Json.NET
2License: The MIT License
3Copyright (c) 2007 James Newton-King
4
5
6Permission is hereby granted, free of charge, to any person obtaining
7a copy of this software and associated documentation files (the
8"Software"), to deal in the Software without restriction, including
9without limitation the rights to use, copy, modify, merge, publish,
10distribute, sublicense, and/or sell copies of the Software, and to
11permit persons to whom the Software is furnished to do so, subject to
12the following conditions:
13
14The above copyright notice and this permission notice shall be
15included in all copies or substantial portions of the Software.
16
17THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/bin/Newtonsoft.Json.Net20.dll b/bin/Newtonsoft.Json.Net20.dll
deleted file mode 100755
index 177d9b5..0000000
--- a/bin/Newtonsoft.Json.Net20.dll
+++ /dev/null
Binary files differ
diff --git a/bin/Newtonsoft.Json.XML b/bin/Newtonsoft.Json.XML
deleted file mode 100644
index 1a1e56c..0000000
--- a/bin/Newtonsoft.Json.XML
+++ /dev/null
@@ -1,5827 +0,0 @@
1<?xml version="1.0"?>
2<doc>
3 <assembly>
4 <name>Newtonsoft.Json.Net20</name>
5 </assembly>
6 <members>
7 <member name="T:Newtonsoft.Json.Bson.BsonReader">
8 <summary>
9 Represents a reader that provides fast, non-cached, forward-only access to serialized Json data.
10 </summary>
11 </member>
12 <member name="T:Newtonsoft.Json.JsonReader">
13 <summary>
14 Represents a reader that provides fast, non-cached, forward-only access to serialized Json data.
15 </summary>
16 </member>
17 <member name="M:Newtonsoft.Json.JsonReader.#ctor">
18 <summary>
19 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonReader"/> class with the specified <see cref="T:System.IO.TextReader"/>.
20 </summary>
21 </member>
22 <member name="M:Newtonsoft.Json.JsonReader.Read">
23 <summary>
24 Reads the next JSON token from the stream.
25 </summary>
26 <returns>true if the next token was read successfully; false if there are no more tokens to read.</returns>
27 </member>
28 <member name="M:Newtonsoft.Json.JsonReader.ReadAsBytes">
29 <summary>
30 Reads the next JSON token from the stream as a <see cref="T:Byte[]"/>.
31 </summary>
32 <returns>A <see cref="T:Byte[]"/> or a null reference if the next JSON token is null.</returns>
33 </member>
34 <member name="M:Newtonsoft.Json.JsonReader.Skip">
35 <summary>
36 Skips the children of the current token.
37 </summary>
38 </member>
39 <member name="M:Newtonsoft.Json.JsonReader.SetToken(Newtonsoft.Json.JsonToken)">
40 <summary>
41 Sets the current token.
42 </summary>
43 <param name="newToken">The new token.</param>
44 </member>
45 <member name="M:Newtonsoft.Json.JsonReader.SetToken(Newtonsoft.Json.JsonToken,System.Object)">
46 <summary>
47 Sets the current token and value.
48 </summary>
49 <param name="newToken">The new token.</param>
50 <param name="value">The value.</param>
51 </member>
52 <member name="M:Newtonsoft.Json.JsonReader.SetStateBasedOnCurrent">
53 <summary>
54 Sets the state based on current token type.
55 </summary>
56 </member>
57 <member name="M:Newtonsoft.Json.JsonReader.System#IDisposable#Dispose">
58 <summary>
59 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
60 </summary>
61 </member>
62 <member name="M:Newtonsoft.Json.JsonReader.Dispose(System.Boolean)">
63 <summary>
64 Releases unmanaged and - optionally - managed resources
65 </summary>
66 <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
67 </member>
68 <member name="M:Newtonsoft.Json.JsonReader.Close">
69 <summary>
70 Changes the <see cref="T:Newtonsoft.Json.JsonReader.State"/> to Closed.
71 </summary>
72 </member>
73 <member name="P:Newtonsoft.Json.JsonReader.CurrentState">
74 <summary>
75 Gets the current reader state.
76 </summary>
77 <value>The current reader state.</value>
78 </member>
79 <member name="P:Newtonsoft.Json.JsonReader.QuoteChar">
80 <summary>
81 Gets the quotation mark character used to enclose the value of a string.
82 </summary>
83 </member>
84 <member name="P:Newtonsoft.Json.JsonReader.TokenType">
85 <summary>
86 Gets the type of the current Json token.
87 </summary>
88 </member>
89 <member name="P:Newtonsoft.Json.JsonReader.Value">
90 <summary>
91 Gets the text value of the current Json token.
92 </summary>
93 </member>
94 <member name="P:Newtonsoft.Json.JsonReader.ValueType">
95 <summary>
96 Gets The Common Language Runtime (CLR) type for the current Json token.
97 </summary>
98 </member>
99 <member name="P:Newtonsoft.Json.JsonReader.Depth">
100 <summary>
101 Gets the depth of the current token in the JSON document.
102 </summary>
103 <value>The depth of the current token in the JSON document.</value>
104 </member>
105 <member name="T:Newtonsoft.Json.JsonReader.State">
106 <summary>
107 Specifies the state of the reader.
108 </summary>
109 </member>
110 <member name="F:Newtonsoft.Json.JsonReader.State.Start">
111 <summary>
112 The Read method has not been called.
113 </summary>
114 </member>
115 <member name="F:Newtonsoft.Json.JsonReader.State.Complete">
116 <summary>
117 The end of the file has been reached successfully.
118 </summary>
119 </member>
120 <member name="F:Newtonsoft.Json.JsonReader.State.Property">
121 <summary>
122 Reader is at a property.
123 </summary>
124 </member>
125 <member name="F:Newtonsoft.Json.JsonReader.State.ObjectStart">
126 <summary>
127 Reader is at the start of an object.
128 </summary>
129 </member>
130 <member name="F:Newtonsoft.Json.JsonReader.State.Object">
131 <summary>
132 Reader is in an object.
133 </summary>
134 </member>
135 <member name="F:Newtonsoft.Json.JsonReader.State.ArrayStart">
136 <summary>
137 Reader is at the start of an array.
138 </summary>
139 </member>
140 <member name="F:Newtonsoft.Json.JsonReader.State.Array">
141 <summary>
142 Reader is in an array.
143 </summary>
144 </member>
145 <member name="F:Newtonsoft.Json.JsonReader.State.Closed">
146 <summary>
147 The Close method has been called.
148 </summary>
149 </member>
150 <member name="F:Newtonsoft.Json.JsonReader.State.PostValue">
151 <summary>
152 Reader has just read a value.
153 </summary>
154 </member>
155 <member name="F:Newtonsoft.Json.JsonReader.State.ConstructorStart">
156 <summary>
157 Reader is at the start of a constructor.
158 </summary>
159 </member>
160 <member name="F:Newtonsoft.Json.JsonReader.State.Constructor">
161 <summary>
162 Reader in a constructor.
163 </summary>
164 </member>
165 <member name="F:Newtonsoft.Json.JsonReader.State.Error">
166 <summary>
167 An error occurred that prevents the read operation from continuing.
168 </summary>
169 </member>
170 <member name="F:Newtonsoft.Json.JsonReader.State.Finished">
171 <summary>
172 The end of the file has been reached successfully.
173 </summary>
174 </member>
175 <member name="M:Newtonsoft.Json.Bson.BsonReader.#ctor(System.IO.Stream)">
176 <summary>
177 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Bson.BsonReader"/> class.
178 </summary>
179 <param name="stream">The stream.</param>
180 </member>
181 <member name="M:Newtonsoft.Json.Bson.BsonReader.#ctor(System.IO.Stream,System.Boolean,System.DateTimeKind)">
182 <summary>
183 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Bson.BsonReader"/> class.
184 </summary>
185 <param name="stream">The stream.</param>
186 <param name="readRootValueAsArray">if set to <c>true</c> the root object will be read as a JSON array.</param>
187 <param name="dateTimeKindHandling">The <see cref="T:System.DateTimeKind"/> used when reading <see cref="T:System.DateTime"/> values from BSON.</param>
188 </member>
189 <member name="M:Newtonsoft.Json.Bson.BsonReader.ReadAsBytes">
190 <summary>
191 Reads the next JSON token from the stream as a <see cref="T:Byte[]"/>.
192 </summary>
193 <returns>
194 A <see cref="T:Byte[]"/> or a null reference if the next JSON token is null.
195 </returns>
196 </member>
197 <member name="M:Newtonsoft.Json.Bson.BsonReader.Read">
198 <summary>
199 Reads the next JSON token from the stream.
200 </summary>
201 <returns>
202 true if the next token was read successfully; false if there are no more tokens to read.
203 </returns>
204 </member>
205 <member name="P:Newtonsoft.Json.Bson.BsonReader.ReadRootValueAsArray">
206 <summary>
207 Gets or sets a value indicating whether the root object will be read as a JSON array.
208 </summary>
209 <value>
210 <c>true</c> if the root object will be read as a JSON array; otherwise, <c>false</c>.
211 </value>
212 </member>
213 <member name="P:Newtonsoft.Json.Bson.BsonReader.DateTimeKindHandling">
214 <summary>
215 Gets or sets the <see cref="T:System.DateTimeKind"/> used when reading <see cref="T:System.DateTime"/> values from BSON.
216 </summary>
217 <value>The <see cref="T:System.DateTimeKind"/> used when reading <see cref="T:System.DateTime"/> values from BSON.</value>
218 </member>
219 <member name="T:Newtonsoft.Json.Bson.BsonWriter">
220 <summary>
221 Represents a writer that provides a fast, non-cached, forward-only way of generating Json data.
222 </summary>
223 </member>
224 <member name="T:Newtonsoft.Json.Linq.JTokenWriter">
225 <summary>
226 Represents a writer that provides a fast, non-cached, forward-only way of generating Json data.
227 </summary>
228 </member>
229 <member name="T:Newtonsoft.Json.JsonWriter">
230 <summary>
231 Represents a writer that provides a fast, non-cached, forward-only way of generating Json data.
232 </summary>
233 </member>
234 <member name="M:Newtonsoft.Json.JsonWriter.#ctor">
235 <summary>
236 Creates an instance of the <c>JsonWriter</c> class.
237 </summary>
238 </member>
239 <member name="M:Newtonsoft.Json.JsonWriter.Flush">
240 <summary>
241 Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
242 </summary>
243 </member>
244 <member name="M:Newtonsoft.Json.JsonWriter.Close">
245 <summary>
246 Closes this stream and the underlying stream.
247 </summary>
248 </member>
249 <member name="M:Newtonsoft.Json.JsonWriter.WriteStartObject">
250 <summary>
251 Writes the beginning of a Json object.
252 </summary>
253 </member>
254 <member name="M:Newtonsoft.Json.JsonWriter.WriteEndObject">
255 <summary>
256 Writes the end of a Json object.
257 </summary>
258 </member>
259 <member name="M:Newtonsoft.Json.JsonWriter.WriteStartArray">
260 <summary>
261 Writes the beginning of a Json array.
262 </summary>
263 </member>
264 <member name="M:Newtonsoft.Json.JsonWriter.WriteEndArray">
265 <summary>
266 Writes the end of an array.
267 </summary>
268 </member>
269 <member name="M:Newtonsoft.Json.JsonWriter.WriteStartConstructor(System.String)">
270 <summary>
271 Writes the start of a constructor with the given name.
272 </summary>
273 <param name="name">The name of the constructor.</param>
274 </member>
275 <member name="M:Newtonsoft.Json.JsonWriter.WriteEndConstructor">
276 <summary>
277 Writes the end constructor.
278 </summary>
279 </member>
280 <member name="M:Newtonsoft.Json.JsonWriter.WritePropertyName(System.String)">
281 <summary>
282 Writes the property name of a name/value pair on a Json object.
283 </summary>
284 <param name="name">The name of the property.</param>
285 </member>
286 <member name="M:Newtonsoft.Json.JsonWriter.WriteEnd">
287 <summary>
288 Writes the end of the current Json object or array.
289 </summary>
290 </member>
291 <member name="M:Newtonsoft.Json.JsonWriter.WriteToken(Newtonsoft.Json.JsonReader)">
292 <summary>
293 Writes the current <see cref="T:Newtonsoft.Json.JsonReader"/> token.
294 </summary>
295 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read the token from.</param>
296 </member>
297 <member name="M:Newtonsoft.Json.JsonWriter.WriteEnd(Newtonsoft.Json.JsonToken)">
298 <summary>
299 Writes the specified end token.
300 </summary>
301 <param name="token">The end token to write.</param>
302 </member>
303 <member name="M:Newtonsoft.Json.JsonWriter.WriteIndent">
304 <summary>
305 Writes indent characters.
306 </summary>
307 </member>
308 <member name="M:Newtonsoft.Json.JsonWriter.WriteValueDelimiter">
309 <summary>
310 Writes the JSON value delimiter.
311 </summary>
312 </member>
313 <member name="M:Newtonsoft.Json.JsonWriter.WriteIndentSpace">
314 <summary>
315 Writes an indent space.
316 </summary>
317 </member>
318 <member name="M:Newtonsoft.Json.JsonWriter.WriteNull">
319 <summary>
320 Writes a null value.
321 </summary>
322 </member>
323 <member name="M:Newtonsoft.Json.JsonWriter.WriteUndefined">
324 <summary>
325 Writes an undefined value.
326 </summary>
327 </member>
328 <member name="M:Newtonsoft.Json.JsonWriter.WriteRaw(System.String)">
329 <summary>
330 Writes raw JSON without changing the writer's state.
331 </summary>
332 <param name="json">The raw JSON to write.</param>
333 </member>
334 <member name="M:Newtonsoft.Json.JsonWriter.WriteRawValue(System.String)">
335 <summary>
336 Writes raw JSON where a value is expected and updates the writer's state.
337 </summary>
338 <param name="json">The raw JSON to write.</param>
339 </member>
340 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.String)">
341 <summary>
342 Writes a <see cref="T:System.String"/> value.
343 </summary>
344 <param name="value">The <see cref="T:System.String"/> value to write.</param>
345 </member>
346 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Int32)">
347 <summary>
348 Writes a <see cref="T:System.Int32"/> value.
349 </summary>
350 <param name="value">The <see cref="T:System.Int32"/> value to write.</param>
351 </member>
352 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.UInt32)">
353 <summary>
354 Writes a <see cref="T:System.UInt32"/> value.
355 </summary>
356 <param name="value">The <see cref="T:System.UInt32"/> value to write.</param>
357 </member>
358 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Int64)">
359 <summary>
360 Writes a <see cref="T:System.Int64"/> value.
361 </summary>
362 <param name="value">The <see cref="T:System.Int64"/> value to write.</param>
363 </member>
364 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.UInt64)">
365 <summary>
366 Writes a <see cref="T:System.UInt64"/> value.
367 </summary>
368 <param name="value">The <see cref="T:System.UInt64"/> value to write.</param>
369 </member>
370 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Single)">
371 <summary>
372 Writes a <see cref="T:System.Single"/> value.
373 </summary>
374 <param name="value">The <see cref="T:System.Single"/> value to write.</param>
375 </member>
376 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Double)">
377 <summary>
378 Writes a <see cref="T:System.Double"/> value.
379 </summary>
380 <param name="value">The <see cref="T:System.Double"/> value to write.</param>
381 </member>
382 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Boolean)">
383 <summary>
384 Writes a <see cref="T:System.Boolean"/> value.
385 </summary>
386 <param name="value">The <see cref="T:System.Boolean"/> value to write.</param>
387 </member>
388 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Int16)">
389 <summary>
390 Writes a <see cref="T:System.Int16"/> value.
391 </summary>
392 <param name="value">The <see cref="T:System.Int16"/> value to write.</param>
393 </member>
394 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.UInt16)">
395 <summary>
396 Writes a <see cref="T:System.UInt16"/> value.
397 </summary>
398 <param name="value">The <see cref="T:System.UInt16"/> value to write.</param>
399 </member>
400 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Char)">
401 <summary>
402 Writes a <see cref="T:System.Char"/> value.
403 </summary>
404 <param name="value">The <see cref="T:System.Char"/> value to write.</param>
405 </member>
406 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Byte)">
407 <summary>
408 Writes a <see cref="T:System.Byte"/> value.
409 </summary>
410 <param name="value">The <see cref="T:System.Byte"/> value to write.</param>
411 </member>
412 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.SByte)">
413 <summary>
414 Writes a <see cref="T:System.SByte"/> value.
415 </summary>
416 <param name="value">The <see cref="T:System.SByte"/> value to write.</param>
417 </member>
418 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Decimal)">
419 <summary>
420 Writes a <see cref="T:System.Decimal"/> value.
421 </summary>
422 <param name="value">The <see cref="T:System.Decimal"/> value to write.</param>
423 </member>
424 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.DateTime)">
425 <summary>
426 Writes a <see cref="T:System.DateTime"/> value.
427 </summary>
428 <param name="value">The <see cref="T:System.DateTime"/> value to write.</param>
429 </member>
430 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.Int32})">
431 <summary>
432 Writes a <see cref="T:System.Nullable`1"/> value.
433 </summary>
434 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
435 </member>
436 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.UInt32})">
437 <summary>
438 Writes a <see cref="T:System.Nullable`1"/> value.
439 </summary>
440 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
441 </member>
442 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.Int64})">
443 <summary>
444 Writes a <see cref="T:System.Nullable`1"/> value.
445 </summary>
446 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
447 </member>
448 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.UInt64})">
449 <summary>
450 Writes a <see cref="T:System.Nullable`1"/> value.
451 </summary>
452 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
453 </member>
454 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.Single})">
455 <summary>
456 Writes a <see cref="T:System.Nullable`1"/> value.
457 </summary>
458 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
459 </member>
460 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.Double})">
461 <summary>
462 Writes a <see cref="T:System.Nullable`1"/> value.
463 </summary>
464 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
465 </member>
466 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.Boolean})">
467 <summary>
468 Writes a <see cref="T:System.Nullable`1"/> value.
469 </summary>
470 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
471 </member>
472 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.Int16})">
473 <summary>
474 Writes a <see cref="T:System.Nullable`1"/> value.
475 </summary>
476 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
477 </member>
478 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.UInt16})">
479 <summary>
480 Writes a <see cref="T:System.Nullable`1"/> value.
481 </summary>
482 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
483 </member>
484 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.Char})">
485 <summary>
486 Writes a <see cref="T:System.Nullable`1"/> value.
487 </summary>
488 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
489 </member>
490 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.Byte})">
491 <summary>
492 Writes a <see cref="T:System.Nullable`1"/> value.
493 </summary>
494 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
495 </member>
496 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.SByte})">
497 <summary>
498 Writes a <see cref="T:System.Nullable`1"/> value.
499 </summary>
500 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
501 </member>
502 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.Decimal})">
503 <summary>
504 Writes a <see cref="T:System.Nullable`1"/> value.
505 </summary>
506 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
507 </member>
508 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Nullable{System.DateTime})">
509 <summary>
510 Writes a <see cref="T:System.Nullable`1"/> value.
511 </summary>
512 <param name="value">The <see cref="T:System.Nullable`1"/> value to write.</param>
513 </member>
514 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Byte[])">
515 <summary>
516 Writes a <see cref="T:Byte[]"/> value.
517 </summary>
518 <param name="value">The <see cref="T:Byte[]"/> value to write.</param>
519 </member>
520 <member name="M:Newtonsoft.Json.JsonWriter.WriteValue(System.Object)">
521 <summary>
522 Writes a <see cref="T:System.Object"/> value.
523 An error will raised if the value cannot be written as a single JSON token.
524 </summary>
525 <param name="value">The <see cref="T:System.Object"/> value to write.</param>
526 </member>
527 <member name="M:Newtonsoft.Json.JsonWriter.WriteComment(System.String)">
528 <summary>
529 Writes out a comment <code>/*...*/</code> containing the specified text.
530 </summary>
531 <param name="text">Text to place inside the comment.</param>
532 </member>
533 <member name="M:Newtonsoft.Json.JsonWriter.WriteWhitespace(System.String)">
534 <summary>
535 Writes out the given white space.
536 </summary>
537 <param name="ws">The string of white space characters.</param>
538 </member>
539 <member name="P:Newtonsoft.Json.JsonWriter.Top">
540 <summary>
541 Gets the top.
542 </summary>
543 <value>The top.</value>
544 </member>
545 <member name="P:Newtonsoft.Json.JsonWriter.WriteState">
546 <summary>
547 Gets the state of the writer.
548 </summary>
549 </member>
550 <member name="P:Newtonsoft.Json.JsonWriter.Formatting">
551 <summary>
552 Indicates how the output is formatted.
553 </summary>
554 </member>
555 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.#ctor(Newtonsoft.Json.Linq.JContainer)">
556 <summary>
557 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JTokenWriter"/> class writing to the given <see cref="T:Newtonsoft.Json.Linq.JContainer"/>.
558 </summary>
559 <param name="container">The container being written to.</param>
560 </member>
561 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.#ctor">
562 <summary>
563 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JTokenWriter"/> class.
564 </summary>
565 </member>
566 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.Flush">
567 <summary>
568 Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
569 </summary>
570 </member>
571 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.Close">
572 <summary>
573 Closes this stream and the underlying stream.
574 </summary>
575 </member>
576 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteStartObject">
577 <summary>
578 Writes the beginning of a Json object.
579 </summary>
580 </member>
581 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteStartArray">
582 <summary>
583 Writes the beginning of a Json array.
584 </summary>
585 </member>
586 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteStartConstructor(System.String)">
587 <summary>
588 Writes the start of a constructor with the given name.
589 </summary>
590 <param name="name">The name of the constructor.</param>
591 </member>
592 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteEnd(Newtonsoft.Json.JsonToken)">
593 <summary>
594 Writes the end.
595 </summary>
596 <param name="token">The token.</param>
597 </member>
598 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WritePropertyName(System.String)">
599 <summary>
600 Writes the property name of a name/value pair on a Json object.
601 </summary>
602 <param name="name">The name of the property.</param>
603 </member>
604 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteNull">
605 <summary>
606 Writes a null value.
607 </summary>
608 </member>
609 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteUndefined">
610 <summary>
611 Writes an undefined value.
612 </summary>
613 </member>
614 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteRaw(System.String)">
615 <summary>
616 Writes raw JSON.
617 </summary>
618 <param name="json">The raw JSON to write.</param>
619 </member>
620 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteComment(System.String)">
621 <summary>
622 Writes out a comment <code>/*...*/</code> containing the specified text.
623 </summary>
624 <param name="text">Text to place inside the comment.</param>
625 </member>
626 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.String)">
627 <summary>
628 Writes a <see cref="T:System.String"/> value.
629 </summary>
630 <param name="value">The <see cref="T:System.String"/> value to write.</param>
631 </member>
632 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Int32)">
633 <summary>
634 Writes a <see cref="T:System.Int32"/> value.
635 </summary>
636 <param name="value">The <see cref="T:System.Int32"/> value to write.</param>
637 </member>
638 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.UInt32)">
639 <summary>
640 Writes a <see cref="T:System.UInt32"/> value.
641 </summary>
642 <param name="value">The <see cref="T:System.UInt32"/> value to write.</param>
643 </member>
644 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Int64)">
645 <summary>
646 Writes a <see cref="T:System.Int64"/> value.
647 </summary>
648 <param name="value">The <see cref="T:System.Int64"/> value to write.</param>
649 </member>
650 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.UInt64)">
651 <summary>
652 Writes a <see cref="T:System.UInt64"/> value.
653 </summary>
654 <param name="value">The <see cref="T:System.UInt64"/> value to write.</param>
655 </member>
656 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Single)">
657 <summary>
658 Writes a <see cref="T:System.Single"/> value.
659 </summary>
660 <param name="value">The <see cref="T:System.Single"/> value to write.</param>
661 </member>
662 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Double)">
663 <summary>
664 Writes a <see cref="T:System.Double"/> value.
665 </summary>
666 <param name="value">The <see cref="T:System.Double"/> value to write.</param>
667 </member>
668 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Boolean)">
669 <summary>
670 Writes a <see cref="T:System.Boolean"/> value.
671 </summary>
672 <param name="value">The <see cref="T:System.Boolean"/> value to write.</param>
673 </member>
674 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Int16)">
675 <summary>
676 Writes a <see cref="T:System.Int16"/> value.
677 </summary>
678 <param name="value">The <see cref="T:System.Int16"/> value to write.</param>
679 </member>
680 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.UInt16)">
681 <summary>
682 Writes a <see cref="T:System.UInt16"/> value.
683 </summary>
684 <param name="value">The <see cref="T:System.UInt16"/> value to write.</param>
685 </member>
686 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Char)">
687 <summary>
688 Writes a <see cref="T:System.Char"/> value.
689 </summary>
690 <param name="value">The <see cref="T:System.Char"/> value to write.</param>
691 </member>
692 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Byte)">
693 <summary>
694 Writes a <see cref="T:System.Byte"/> value.
695 </summary>
696 <param name="value">The <see cref="T:System.Byte"/> value to write.</param>
697 </member>
698 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.SByte)">
699 <summary>
700 Writes a <see cref="T:System.SByte"/> value.
701 </summary>
702 <param name="value">The <see cref="T:System.SByte"/> value to write.</param>
703 </member>
704 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Decimal)">
705 <summary>
706 Writes a <see cref="T:System.Decimal"/> value.
707 </summary>
708 <param name="value">The <see cref="T:System.Decimal"/> value to write.</param>
709 </member>
710 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.DateTime)">
711 <summary>
712 Writes a <see cref="T:System.DateTime"/> value.
713 </summary>
714 <param name="value">The <see cref="T:System.DateTime"/> value to write.</param>
715 </member>
716 <member name="M:Newtonsoft.Json.Linq.JTokenWriter.WriteValue(System.Byte[])">
717 <summary>
718 Writes a <see cref="T:Byte[]"/> value.
719 </summary>
720 <param name="value">The <see cref="T:Byte[]"/> value to write.</param>
721 </member>
722 <member name="P:Newtonsoft.Json.Linq.JTokenWriter.Token">
723 <summary>
724 Gets the token being writen.
725 </summary>
726 <value>The token being writen.</value>
727 </member>
728 <member name="M:Newtonsoft.Json.Bson.BsonWriter.#ctor(System.IO.Stream)">
729 <summary>
730 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Bson.BsonWriter"/> class.
731 </summary>
732 <param name="stream">The stream.</param>
733 </member>
734 <member name="M:Newtonsoft.Json.Bson.BsonWriter.Flush">
735 <summary>
736 Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
737 </summary>
738 </member>
739 <member name="M:Newtonsoft.Json.Bson.BsonWriter.WriteEnd(Newtonsoft.Json.JsonToken)">
740 <summary>
741 Writes the end.
742 </summary>
743 <param name="token">The token.</param>
744 </member>
745 <member name="M:Newtonsoft.Json.Bson.BsonWriter.WriteComment(System.String)">
746 <summary>
747 Writes out a comment <code>/*...*/</code> containing the specified text.
748 </summary>
749 <param name="text">Text to place inside the comment.</param>
750 </member>
751 <member name="M:Newtonsoft.Json.Bson.BsonWriter.WriteStartConstructor(System.String)">
752 <summary>
753 Writes the start of a constructor with the given name.
754 </summary>
755 <param name="name">The name of the constructor.</param>
756 </member>
757 <member name="M:Newtonsoft.Json.Bson.BsonWriter.WriteRaw(System.String)">
758 <summary>
759 Writes raw JSON.
760 </summary>
761 <param name="json">The raw JSON to write.</param>
762 </member>
763 <member name="M:Newtonsoft.Json.Bson.BsonWriter.WriteRawValue(System.String)">
764 <summary>
765 Writes raw JSON where a value is expected and updates the writer's state.
766 </summary>
767 <param name="json">The raw JSON to write.</param>
768 </member>
769 <member name="T:Newtonsoft.Json.ConstructorHandling">
770 <summary>
771 Specifies how constructors are used when initializing objects during deserialization by the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
772 </summary>
773 </member>
774 <member name="F:Newtonsoft.Json.ConstructorHandling.Default">
775 <summary>
776 First attempt to use the public default constructor then fall back to single paramatized constructor.
777 </summary>
778 </member>
779 <member name="F:Newtonsoft.Json.ConstructorHandling.AllowNonPublicDefaultConstructor">
780 <summary>
781 Allow Json.NET to use a non-public default constructor.
782 </summary>
783 </member>
784 <member name="T:Newtonsoft.Json.Converters.BinaryConverter">
785 <summary>
786 Converts a binary value to and from a base 64 string value.
787 </summary>
788 </member>
789 <member name="T:Newtonsoft.Json.JsonConverter">
790 <summary>
791 Converts an object to and from JSON.
792 </summary>
793 </member>
794 <member name="M:Newtonsoft.Json.JsonConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
795 <summary>
796 Writes the JSON representation of the object.
797 </summary>
798 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
799 <param name="value">The value.</param>
800 <param name="serializer">The calling serializer.</param>
801 </member>
802 <member name="M:Newtonsoft.Json.JsonConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
803 <summary>
804 Reads the JSON representation of the object.
805 </summary>
806 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
807 <param name="objectType">Type of the object.</param>
808 <param name="serializer">The calling serializer.</param>
809 <returns>The object value.</returns>
810 </member>
811 <member name="M:Newtonsoft.Json.JsonConverter.CanConvert(System.Type)">
812 <summary>
813 Determines whether this instance can convert the specified object type.
814 </summary>
815 <param name="objectType">Type of the object.</param>
816 <returns>
817 <c>true</c> if this instance can convert the specified object type; otherwise, <c>false</c>.
818 </returns>
819 </member>
820 <member name="M:Newtonsoft.Json.Converters.BinaryConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
821 <summary>
822 Writes the JSON representation of the object.
823 </summary>
824 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
825 <param name="value">The value.</param>
826 <param name="serializer">The calling serializer.</param>
827 </member>
828 <member name="M:Newtonsoft.Json.Converters.BinaryConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
829 <summary>
830 Reads the JSON representation of the object.
831 </summary>
832 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
833 <param name="objectType">Type of the object.</param>
834 <param name="serializer">The calling serializer.</param>
835 <returns>The object value.</returns>
836 </member>
837 <member name="M:Newtonsoft.Json.Converters.BinaryConverter.CanConvert(System.Type)">
838 <summary>
839 Determines whether this instance can convert the specified object type.
840 </summary>
841 <param name="objectType">Type of the object.</param>
842 <returns>
843 <c>true</c> if this instance can convert the specified object type; otherwise, <c>false</c>.
844 </returns>
845 </member>
846 <member name="T:Newtonsoft.Json.Converters.CustomCreationConverter`1">
847 <summary>
848 Create a custom object
849 </summary>
850 <typeparam name="T"></typeparam>
851 </member>
852 <member name="M:Newtonsoft.Json.Converters.CustomCreationConverter`1.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
853 <summary>
854 Writes the JSON representation of the object.
855 </summary>
856 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
857 <param name="value">The value.</param>
858 <param name="serializer">The calling serializer.</param>
859 </member>
860 <member name="M:Newtonsoft.Json.Converters.CustomCreationConverter`1.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
861 <summary>
862 Reads the JSON representation of the object.
863 </summary>
864 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
865 <param name="objectType">Type of the object.</param>
866 <param name="serializer">The calling serializer.</param>
867 <returns>The object value.</returns>
868 </member>
869 <member name="M:Newtonsoft.Json.Converters.CustomCreationConverter`1.Create(System.Type)">
870 <summary>
871 Creates an object which will then be populated by the serializer.
872 </summary>
873 <param name="objectType">Type of the object.</param>
874 <returns></returns>
875 </member>
876 <member name="M:Newtonsoft.Json.Converters.CustomCreationConverter`1.CanConvert(System.Type)">
877 <summary>
878 Determines whether this instance can convert the specified object type.
879 </summary>
880 <param name="objectType">Type of the object.</param>
881 <returns>
882 <c>true</c> if this instance can convert the specified object type; otherwise, <c>false</c>.
883 </returns>
884 </member>
885 <member name="T:Newtonsoft.Json.Converters.DataSetConverter">
886 <summary>
887 Converts a <see cref="T:System.Data.DataSet"/> to and from JSON.
888 </summary>
889 </member>
890 <member name="M:Newtonsoft.Json.Converters.DataSetConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
891 <summary>
892 Writes the JSON representation of the object.
893 </summary>
894 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
895 <param name="value">The value.</param>
896 <param name="serializer">The calling serializer.</param>
897 </member>
898 <member name="M:Newtonsoft.Json.Converters.DataSetConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
899 <summary>
900 Reads the JSON representation of the object.
901 </summary>
902 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
903 <param name="objectType">Type of the object.</param>
904 <param name="serializer">The calling serializer.</param>
905 <returns>The object value.</returns>
906 </member>
907 <member name="M:Newtonsoft.Json.Converters.DataSetConverter.CanConvert(System.Type)">
908 <summary>
909 Determines whether this instance can convert the specified value type.
910 </summary>
911 <param name="valueType">Type of the value.</param>
912 <returns>
913 <c>true</c> if this instance can convert the specified value type; otherwise, <c>false</c>.
914 </returns>
915 </member>
916 <member name="T:Newtonsoft.Json.Converters.DataTableConverter">
917 <summary>
918 Converts a <see cref="T:System.Data.DataTable"/> to and from JSON.
919 </summary>
920 </member>
921 <member name="M:Newtonsoft.Json.Converters.DataTableConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
922 <summary>
923 Writes the JSON representation of the object.
924 </summary>
925 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
926 <param name="value">The value.</param>
927 <param name="serializer">The calling serializer.</param>
928 </member>
929 <member name="M:Newtonsoft.Json.Converters.DataTableConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
930 <summary>
931 Reads the JSON representation of the object.
932 </summary>
933 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
934 <param name="objectType">Type of the object.</param>
935 <param name="serializer">The calling serializer.</param>
936 <returns>The object value.</returns>
937 </member>
938 <member name="M:Newtonsoft.Json.Converters.DataTableConverter.CanConvert(System.Type)">
939 <summary>
940 Determines whether this instance can convert the specified value type.
941 </summary>
942 <param name="valueType">Type of the value.</param>
943 <returns>
944 <c>true</c> if this instance can convert the specified value type; otherwise, <c>false</c>.
945 </returns>
946 </member>
947 <member name="T:Newtonsoft.Json.Converters.DateTimeConverterBase">
948 <summary>
949 Provides a base class for converting a <see cref="T:System.DateTime"/> to and from JSON.
950 </summary>
951 </member>
952 <member name="M:Newtonsoft.Json.Converters.DateTimeConverterBase.CanConvert(System.Type)">
953 <summary>
954 Determines whether this instance can convert the specified object type.
955 </summary>
956 <param name="objectType">Type of the object.</param>
957 <returns>
958 <c>true</c> if this instance can convert the specified object type; otherwise, <c>false</c>.
959 </returns>
960 </member>
961 <member name="T:Newtonsoft.Json.Converters.StringEnumConverter">
962 <summary>
963 Converts an <see cref="T:System.Enum"/> to and from its name string value.
964 </summary>
965 </member>
966 <member name="M:Newtonsoft.Json.Converters.StringEnumConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
967 <summary>
968 Writes the JSON representation of the object.
969 </summary>
970 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
971 <param name="value">The value.</param>
972 <param name="serializer">The calling serializer.</param>
973 </member>
974 <member name="M:Newtonsoft.Json.Converters.StringEnumConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
975 <summary>
976 Reads the JSON representation of the object.
977 </summary>
978 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
979 <param name="objectType">Type of the object.</param>
980 <param name="serializer">The calling serializer.</param>
981 <returns>The object value.</returns>
982 </member>
983 <member name="M:Newtonsoft.Json.Converters.StringEnumConverter.CanConvert(System.Type)">
984 <summary>
985 Determines whether this instance can convert the specified object type.
986 </summary>
987 <param name="objectType">Type of the object.</param>
988 <returns>
989 <c>true</c> if this instance can convert the specified object type; otherwise, <c>false</c>.
990 </returns>
991 </member>
992 <member name="T:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor">
993 <summary>
994 Represents a view of a <see cref="T:Newtonsoft.Json.Linq.JProperty"/>.
995 </summary>
996 </member>
997 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.#ctor(System.String,System.Type)">
998 <summary>
999 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor"/> class.
1000 </summary>
1001 <param name="name">The name.</param>
1002 <param name="propertyType">Type of the property.</param>
1003 </member>
1004 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.CanResetValue(System.Object)">
1005 <summary>
1006 When overridden in a derived class, returns whether resetting an object changes its value.
1007 </summary>
1008 <returns>
1009 true if resetting the component changes its value; otherwise, false.
1010 </returns>
1011 <param name="component">The component to test for reset capability.
1012 </param>
1013 </member>
1014 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.GetValue(System.Object)">
1015 <summary>
1016 When overridden in a derived class, gets the current value of the property on a component.
1017 </summary>
1018 <returns>
1019 The value of a property for a given component.
1020 </returns>
1021 <param name="component">The component with the property for which to retrieve the value.
1022 </param>
1023 </member>
1024 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.ResetValue(System.Object)">
1025 <summary>
1026 When overridden in a derived class, resets the value for this property of the component to the default value.
1027 </summary>
1028 <param name="component">The component with the property value that is to be reset to the default value.
1029 </param>
1030 </member>
1031 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.SetValue(System.Object,System.Object)">
1032 <summary>
1033 When overridden in a derived class, sets the value of the component to a different value.
1034 </summary>
1035 <param name="component">The component with the property value that is to be set.
1036 </param><param name="value">The new value.
1037 </param>
1038 </member>
1039 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.ShouldSerializeValue(System.Object)">
1040 <summary>
1041 When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
1042 </summary>
1043 <returns>
1044 true if the property should be persisted; otherwise, false.
1045 </returns>
1046 <param name="component">The component with the property to be examined for persistence.
1047 </param>
1048 </member>
1049 <member name="P:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.ComponentType">
1050 <summary>
1051 When overridden in a derived class, gets the type of the component this property is bound to.
1052 </summary>
1053 <returns>
1054 A <see cref="T:System.Type"/> that represents the type of component this property is bound to. When the <see cref="M:System.ComponentModel.PropertyDescriptor.GetValue(System.Object)"/> or <see cref="M:System.ComponentModel.PropertyDescriptor.SetValue(System.Object,System.Object)"/> methods are invoked, the object specified might be an instance of this type.
1055 </returns>
1056 </member>
1057 <member name="P:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.IsReadOnly">
1058 <summary>
1059 When overridden in a derived class, gets a value indicating whether this property is read-only.
1060 </summary>
1061 <returns>
1062 true if the property is read-only; otherwise, false.
1063 </returns>
1064 </member>
1065 <member name="P:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.PropertyType">
1066 <summary>
1067 When overridden in a derived class, gets the type of the property.
1068 </summary>
1069 <returns>
1070 A <see cref="T:System.Type"/> that represents the type of the property.
1071 </returns>
1072 </member>
1073 <member name="P:Newtonsoft.Json.Linq.ComponentModel.JPropertyDescriptor.NameHashCode">
1074 <summary>
1075 Gets the hash code for the name of the member.
1076 </summary>
1077 <value></value>
1078 <returns>
1079 The hash code for the name of the member.
1080 </returns>
1081 </member>
1082 <member name="T:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor">
1083 <summary>
1084 Represents a view of a <see cref="T:Newtonsoft.Json.Linq.JObject"/>.
1085 </summary>
1086 </member>
1087 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.#ctor(Newtonsoft.Json.Linq.JObject)">
1088 <summary>
1089 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor"/> class.
1090 </summary>
1091 <param name="value">The value.</param>
1092 </member>
1093 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetProperties">
1094 <summary>
1095 Returns the properties for this instance of a component.
1096 </summary>
1097 <returns>
1098 A <see cref="T:System.ComponentModel.PropertyDescriptorCollection"/> that represents the properties for this component instance.
1099 </returns>
1100 </member>
1101 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetProperties(System.Attribute[])">
1102 <summary>
1103 Returns the properties for this instance of a component using the attribute array as a filter.
1104 </summary>
1105 <param name="attributes">An array of type <see cref="T:System.Attribute"/> that is used as a filter.</param>
1106 <returns>
1107 A <see cref="T:System.ComponentModel.PropertyDescriptorCollection"/> that represents the filtered properties for this component instance.
1108 </returns>
1109 </member>
1110 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetAttributes">
1111 <summary>
1112 Returns a collection of custom attributes for this instance of a component.
1113 </summary>
1114 <returns>
1115 An <see cref="T:System.ComponentModel.AttributeCollection"/> containing the attributes for this object.
1116 </returns>
1117 </member>
1118 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetClassName">
1119 <summary>
1120 Returns the class name of this instance of a component.
1121 </summary>
1122 <returns>
1123 The class name of the object, or null if the class does not have a name.
1124 </returns>
1125 </member>
1126 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetComponentName">
1127 <summary>
1128 Returns the name of this instance of a component.
1129 </summary>
1130 <returns>
1131 The name of the object, or null if the object does not have a name.
1132 </returns>
1133 </member>
1134 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetConverter">
1135 <summary>
1136 Returns a type converter for this instance of a component.
1137 </summary>
1138 <returns>
1139 A <see cref="T:System.ComponentModel.TypeConverter"/> that is the converter for this object, or null if there is no <see cref="T:System.ComponentModel.TypeConverter"/> for this object.
1140 </returns>
1141 </member>
1142 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetDefaultEvent">
1143 <summary>
1144 Returns the default event for this instance of a component.
1145 </summary>
1146 <returns>
1147 An <see cref="T:System.ComponentModel.EventDescriptor"/> that represents the default event for this object, or null if this object does not have events.
1148 </returns>
1149 </member>
1150 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetDefaultProperty">
1151 <summary>
1152 Returns the default property for this instance of a component.
1153 </summary>
1154 <returns>
1155 A <see cref="T:System.ComponentModel.PropertyDescriptor"/> that represents the default property for this object, or null if this object does not have properties.
1156 </returns>
1157 </member>
1158 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetEditor(System.Type)">
1159 <summary>
1160 Returns an editor of the specified type for this instance of a component.
1161 </summary>
1162 <param name="editorBaseType">A <see cref="T:System.Type"/> that represents the editor for this object.</param>
1163 <returns>
1164 An <see cref="T:System.Object"/> of the specified type that is the editor for this object, or null if the editor cannot be found.
1165 </returns>
1166 </member>
1167 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetEvents(System.Attribute[])">
1168 <summary>
1169 Returns the events for this instance of a component using the specified attribute array as a filter.
1170 </summary>
1171 <param name="attributes">An array of type <see cref="T:System.Attribute"/> that is used as a filter.</param>
1172 <returns>
1173 An <see cref="T:System.ComponentModel.EventDescriptorCollection"/> that represents the filtered events for this component instance.
1174 </returns>
1175 </member>
1176 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetEvents">
1177 <summary>
1178 Returns the events for this instance of a component.
1179 </summary>
1180 <returns>
1181 An <see cref="T:System.ComponentModel.EventDescriptorCollection"/> that represents the events for this component instance.
1182 </returns>
1183 </member>
1184 <member name="M:Newtonsoft.Json.Linq.ComponentModel.JTypeDescriptor.GetPropertyOwner(System.ComponentModel.PropertyDescriptor)">
1185 <summary>
1186 Returns an object that contains the property described by the specified property descriptor.
1187 </summary>
1188 <param name="pd">A <see cref="T:System.ComponentModel.PropertyDescriptor"/> that represents the property whose owner is to be found.</param>
1189 <returns>
1190 An <see cref="T:System.Object"/> that represents the owner of the specified property.
1191 </returns>
1192 </member>
1193 <member name="T:Newtonsoft.Json.Linq.JRaw">
1194 <summary>
1195 Represents a raw JSON string.
1196 </summary>
1197 </member>
1198 <member name="T:Newtonsoft.Json.Linq.JValue">
1199 <summary>
1200 Represents a value in JSON (string, integer, date, etc).
1201 </summary>
1202 </member>
1203 <member name="T:Newtonsoft.Json.Linq.JToken">
1204 <summary>
1205 Represents an abstract JSON token.
1206 </summary>
1207 </member>
1208 <member name="T:Newtonsoft.Json.Linq.IJEnumerable`1">
1209 <summary>
1210 Represents a collection of <see cref="T:Newtonsoft.Json.Linq.JToken"/> objects.
1211 </summary>
1212 <typeparam name="T">The type of token</typeparam>
1213 </member>
1214 <member name="P:Newtonsoft.Json.Linq.IJEnumerable`1.Item(System.Object)">
1215 <summary>
1216 Gets the <see cref="T:Newtonsoft.Json.Linq.IJEnumerable`1"/> with the specified key.
1217 </summary>
1218 <value></value>
1219 </member>
1220 <member name="T:Newtonsoft.Json.IJsonLineInfo">
1221 <summary>
1222 Provides an interface to enable a class to return line and position information.
1223 </summary>
1224 </member>
1225 <member name="M:Newtonsoft.Json.IJsonLineInfo.HasLineInfo">
1226 <summary>
1227 Gets a value indicating whether the class can return line information.
1228 </summary>
1229 <returns>
1230 <c>true</c> if LineNumber and LinePosition can be provided; otherwise, <c>false</c>.
1231 </returns>
1232 </member>
1233 <member name="P:Newtonsoft.Json.IJsonLineInfo.LineNumber">
1234 <summary>
1235 Gets the current line number.
1236 </summary>
1237 <value>The current line number or 0 if no line information is available (for example, HasLineInfo returns false).</value>
1238 </member>
1239 <member name="P:Newtonsoft.Json.IJsonLineInfo.LinePosition">
1240 <summary>
1241 Gets the current line position.
1242 </summary>
1243 <value>The current line position or 0 if no line information is available (for example, HasLineInfo returns false).</value>
1244 </member>
1245 <member name="M:Newtonsoft.Json.Linq.JToken.DeepEquals(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Linq.JToken)">
1246 <summary>
1247 Compares the values of two tokens, including the values of all descendant tokens.
1248 </summary>
1249 <param name="t1">The first <see cref="T:Newtonsoft.Json.Linq.JToken"/> to compare.</param>
1250 <param name="t2">The second <see cref="T:Newtonsoft.Json.Linq.JToken"/> to compare.</param>
1251 <returns>true if the tokens are equal; otherwise false.</returns>
1252 </member>
1253 <member name="M:Newtonsoft.Json.Linq.JToken.AddAfterSelf(System.Object)">
1254 <summary>
1255 Adds the specified content immediately after this token.
1256 </summary>
1257 <param name="content">A content object that contains simple content or a collection of content objects to be added after this token.</param>
1258 </member>
1259 <member name="M:Newtonsoft.Json.Linq.JToken.AddBeforeSelf(System.Object)">
1260 <summary>
1261 Adds the specified content immediately before this token.
1262 </summary>
1263 <param name="content">A content object that contains simple content or a collection of content objects to be added before this token.</param>
1264 </member>
1265 <member name="M:Newtonsoft.Json.Linq.JToken.Ancestors">
1266 <summary>
1267 Returns a collection of the ancestor tokens of this token.
1268 </summary>
1269 <returns>A collection of the ancestor tokens of this token.</returns>
1270 </member>
1271 <member name="M:Newtonsoft.Json.Linq.JToken.AfterSelf">
1272 <summary>
1273 Returns a collection of the sibling tokens after this token, in document order.
1274 </summary>
1275 <returns>A collection of the sibling tokens after this tokens, in document order.</returns>
1276 </member>
1277 <member name="M:Newtonsoft.Json.Linq.JToken.BeforeSelf">
1278 <summary>
1279 Returns a collection of the sibling tokens before this token, in document order.
1280 </summary>
1281 <returns>A collection of the sibling tokens before this token, in document order.</returns>
1282 </member>
1283 <member name="M:Newtonsoft.Json.Linq.JToken.Value``1(System.Object)">
1284 <summary>
1285 Gets the <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified key converted to the specified type.
1286 </summary>
1287 <typeparam name="T">The type to convert the token to.</typeparam>
1288 <param name="key">The token key.</param>
1289 <returns>The converted token value.</returns>
1290 </member>
1291 <member name="M:Newtonsoft.Json.Linq.JToken.Children">
1292 <summary>
1293 Returns a collection of the child tokens of this token, in document order.
1294 </summary>
1295 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> containing the child tokens of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>, in document order.</returns>
1296 </member>
1297 <member name="M:Newtonsoft.Json.Linq.JToken.Children``1">
1298 <summary>
1299 Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
1300 </summary>
1301 <typeparam name="T">The type to filter the child tokens on.</typeparam>
1302 <returns>A <see cref="T:Newtonsoft.Json.Linq.JEnumerable`1"/> containing the child tokens of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>, in document order.</returns>
1303 </member>
1304 <member name="M:Newtonsoft.Json.Linq.JToken.Values``1">
1305 <summary>
1306 Returns a collection of the child values of this token, in document order.
1307 </summary>
1308 <typeparam name="T">The type to convert the values to.</typeparam>
1309 <returns>A <see cref="T:System.Collections.Generic.IEnumerable`1"/> containing the child values of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>, in document order.</returns>
1310 </member>
1311 <member name="M:Newtonsoft.Json.Linq.JToken.Remove">
1312 <summary>
1313 Removes this token from its parent.
1314 </summary>
1315 </member>
1316 <member name="M:Newtonsoft.Json.Linq.JToken.Replace(Newtonsoft.Json.Linq.JToken)">
1317 <summary>
1318 Replaces this token with the specified token.
1319 </summary>
1320 <param name="value">The value.</param>
1321 </member>
1322 <member name="M:Newtonsoft.Json.Linq.JToken.WriteTo(Newtonsoft.Json.JsonWriter,Newtonsoft.Json.JsonConverter[])">
1323 <summary>
1324 Writes this token to a <see cref="T:Newtonsoft.Json.JsonWriter"/>.
1325 </summary>
1326 <param name="writer">A <see cref="T:Newtonsoft.Json.JsonWriter"/> into which this method will write.</param>
1327 <param name="converters">A collection of <see cref="T:Newtonsoft.Json.JsonConverter"/> which will be used when writing the token.</param>
1328 </member>
1329 <member name="M:Newtonsoft.Json.Linq.JToken.ToString">
1330 <summary>
1331 Returns the indented JSON for this token.
1332 </summary>
1333 <returns>
1334 The indented JSON for this token.
1335 </returns>
1336 </member>
1337 <member name="M:Newtonsoft.Json.Linq.JToken.ToString(Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[])">
1338 <summary>
1339 Returns the JSON for this token using the given formatting and converters.
1340 </summary>
1341 <param name="formatting">Indicates how the output is formatted.</param>
1342 <param name="converters">A collection of <see cref="T:Newtonsoft.Json.JsonConverter"/> which will be used when writing the token.</param>
1343 <returns>The JSON for this token using the given formatting and converters.</returns>
1344 </member>
1345 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Boolean">
1346 <summary>
1347 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Boolean"/>.
1348 </summary>
1349 <param name="value">The value.</param>
1350 <returns>The result of the conversion.</returns>
1351 </member>
1352 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Nullable{System.Boolean}">
1353 <summary>
1354 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Nullable`1"/>.
1355 </summary>
1356 <param name="value">The value.</param>
1357 <returns>The result of the conversion.</returns>
1358 </member>
1359 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Int64">
1360 <summary>
1361 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Int64"/>.
1362 </summary>
1363 <param name="value">The value.</param>
1364 <returns>The result of the conversion.</returns>
1365 </member>
1366 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Nullable{System.DateTime}">
1367 <summary>
1368 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Nullable`1"/>.
1369 </summary>
1370 <param name="value">The value.</param>
1371 <returns>The result of the conversion.</returns>
1372 </member>
1373 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Nullable{System.Decimal}">
1374 <summary>
1375 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Nullable`1"/>.
1376 </summary>
1377 <param name="value">The value.</param>
1378 <returns>The result of the conversion.</returns>
1379 </member>
1380 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Nullable{System.Double}">
1381 <summary>
1382 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Nullable`1"/>.
1383 </summary>
1384 <param name="value">The value.</param>
1385 <returns>The result of the conversion.</returns>
1386 </member>
1387 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Int32">
1388 <summary>
1389 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Int32"/>.
1390 </summary>
1391 <param name="value">The value.</param>
1392 <returns>The result of the conversion.</returns>
1393 </member>
1394 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Nullable{System.Int32}">
1395 <summary>
1396 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Nullable`1"/>.
1397 </summary>
1398 <param name="value">The value.</param>
1399 <returns>The result of the conversion.</returns>
1400 </member>
1401 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.DateTime">
1402 <summary>
1403 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.DateTime"/>.
1404 </summary>
1405 <param name="value">The value.</param>
1406 <returns>The result of the conversion.</returns>
1407 </member>
1408 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Nullable{System.Int64}">
1409 <summary>
1410 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Nullable`1"/>.
1411 </summary>
1412 <param name="value">The value.</param>
1413 <returns>The result of the conversion.</returns>
1414 </member>
1415 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Nullable{System.Single}">
1416 <summary>
1417 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Nullable`1"/>.
1418 </summary>
1419 <param name="value">The value.</param>
1420 <returns>The result of the conversion.</returns>
1421 </member>
1422 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Decimal">
1423 <summary>
1424 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Decimal"/>.
1425 </summary>
1426 <param name="value">The value.</param>
1427 <returns>The result of the conversion.</returns>
1428 </member>
1429 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Nullable{System.UInt32}">
1430 <summary>
1431 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Nullable`1"/>.
1432 </summary>
1433 <param name="value">The value.</param>
1434 <returns>The result of the conversion.</returns>
1435 </member>
1436 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Nullable{System.UInt64}">
1437 <summary>
1438 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Nullable`1"/>.
1439 </summary>
1440 <param name="value">The value.</param>
1441 <returns>The result of the conversion.</returns>
1442 </member>
1443 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Double">
1444 <summary>
1445 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Double"/>.
1446 </summary>
1447 <param name="value">The value.</param>
1448 <returns>The result of the conversion.</returns>
1449 </member>
1450 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Single">
1451 <summary>
1452 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Single"/>.
1453 </summary>
1454 <param name="value">The value.</param>
1455 <returns>The result of the conversion.</returns>
1456 </member>
1457 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.String">
1458 <summary>
1459 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.String"/>.
1460 </summary>
1461 <param name="value">The value.</param>
1462 <returns>The result of the conversion.</returns>
1463 </member>
1464 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.UInt32">
1465 <summary>
1466 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.UInt32"/>.
1467 </summary>
1468 <param name="value">The value.</param>
1469 <returns>The result of the conversion.</returns>
1470 </member>
1471 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.UInt64">
1472 <summary>
1473 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.UInt64"/>.
1474 </summary>
1475 <param name="value">The value.</param>
1476 <returns>The result of the conversion.</returns>
1477 </member>
1478 <member name="M:Newtonsoft.Json.Linq.JToken.op_Explicit(Newtonsoft.Json.Linq.JToken)~System.Byte[]">
1479 <summary>
1480 Performs an explicit conversion from <see cref="T:Newtonsoft.Json.Linq.JToken"/> to <see cref="T:System.Byte[]"/>.
1481 </summary>
1482 <param name="value">The value.</param>
1483 <returns>The result of the conversion.</returns>
1484 </member>
1485 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Boolean)~Newtonsoft.Json.Linq.JToken">
1486 <summary>
1487 Performs an implicit conversion from <see cref="T:System.Boolean"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1488 </summary>
1489 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1490 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1491 </member>
1492 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.Boolean})~Newtonsoft.Json.Linq.JToken">
1493 <summary>
1494 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1495 </summary>
1496 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1497 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1498 </member>
1499 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Int64)~Newtonsoft.Json.Linq.JToken">
1500 <summary>
1501 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1502 </summary>
1503 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1504 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1505 </member>
1506 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.DateTime})~Newtonsoft.Json.Linq.JToken">
1507 <summary>
1508 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1509 </summary>
1510 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1511 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1512 </member>
1513 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.Decimal})~Newtonsoft.Json.Linq.JToken">
1514 <summary>
1515 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1516 </summary>
1517 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1518 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1519 </member>
1520 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.Double})~Newtonsoft.Json.Linq.JToken">
1521 <summary>
1522 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1523 </summary>
1524 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1525 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1526 </member>
1527 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.UInt16)~Newtonsoft.Json.Linq.JToken">
1528 <summary>
1529 Performs an implicit conversion from <see cref="T:System.UInt16"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1530 </summary>
1531 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1532 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1533 </member>
1534 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Int32)~Newtonsoft.Json.Linq.JToken">
1535 <summary>
1536 Performs an implicit conversion from <see cref="T:System.Int32"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1537 </summary>
1538 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1539 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1540 </member>
1541 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.Int32})~Newtonsoft.Json.Linq.JToken">
1542 <summary>
1543 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1544 </summary>
1545 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1546 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1547 </member>
1548 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.DateTime)~Newtonsoft.Json.Linq.JToken">
1549 <summary>
1550 Performs an implicit conversion from <see cref="T:System.DateTime"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1551 </summary>
1552 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1553 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1554 </member>
1555 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.Int64})~Newtonsoft.Json.Linq.JToken">
1556 <summary>
1557 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1558 </summary>
1559 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1560 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1561 </member>
1562 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.Single})~Newtonsoft.Json.Linq.JToken">
1563 <summary>
1564 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1565 </summary>
1566 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1567 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1568 </member>
1569 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Decimal)~Newtonsoft.Json.Linq.JToken">
1570 <summary>
1571 Performs an implicit conversion from <see cref="T:System.Decimal"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1572 </summary>
1573 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1574 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1575 </member>
1576 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.UInt16})~Newtonsoft.Json.Linq.JToken">
1577 <summary>
1578 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1579 </summary>
1580 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1581 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1582 </member>
1583 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.UInt32})~Newtonsoft.Json.Linq.JToken">
1584 <summary>
1585 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1586 </summary>
1587 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1588 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1589 </member>
1590 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Nullable{System.UInt64})~Newtonsoft.Json.Linq.JToken">
1591 <summary>
1592 Performs an implicit conversion from <see cref="T:System.Nullable`1"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1593 </summary>
1594 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1595 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1596 </member>
1597 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Double)~Newtonsoft.Json.Linq.JToken">
1598 <summary>
1599 Performs an implicit conversion from <see cref="T:System.Double"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1600 </summary>
1601 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1602 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1603 </member>
1604 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Single)~Newtonsoft.Json.Linq.JToken">
1605 <summary>
1606 Performs an implicit conversion from <see cref="T:System.Single"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1607 </summary>
1608 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1609 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1610 </member>
1611 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.String)~Newtonsoft.Json.Linq.JToken">
1612 <summary>
1613 Performs an implicit conversion from <see cref="T:System.String"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1614 </summary>
1615 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1616 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1617 </member>
1618 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.UInt32)~Newtonsoft.Json.Linq.JToken">
1619 <summary>
1620 Performs an implicit conversion from <see cref="T:System.UInt32"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1621 </summary>
1622 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1623 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1624 </member>
1625 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.UInt64)~Newtonsoft.Json.Linq.JToken">
1626 <summary>
1627 Performs an implicit conversion from <see cref="T:System.UInt64"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1628 </summary>
1629 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1630 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1631 </member>
1632 <member name="M:Newtonsoft.Json.Linq.JToken.op_Implicit(System.Byte[])~Newtonsoft.Json.Linq.JToken">
1633 <summary>
1634 Performs an implicit conversion from <see cref="T:System.Byte[]"/> to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1635 </summary>
1636 <param name="value">The value to create a <see cref="T:Newtonsoft.Json.Linq.JValue"/> from.</param>
1637 <returns>The <see cref="T:Newtonsoft.Json.Linq.JValue"/> initialized with the specified value.</returns>
1638 </member>
1639 <member name="M:Newtonsoft.Json.Linq.JToken.CreateReader">
1640 <summary>
1641 Creates an <see cref="T:Newtonsoft.Json.JsonReader"/> for this token.
1642 </summary>
1643 <returns>An <see cref="T:Newtonsoft.Json.JsonReader"/> that can be used to read this token and its descendants.</returns>
1644 </member>
1645 <member name="M:Newtonsoft.Json.Linq.JToken.FromObject(System.Object)">
1646 <summary>
1647 Creates a <see cref="T:Newtonsoft.Json.Linq.JToken"/> from an object.
1648 </summary>
1649 <param name="o">The object that will be used to create <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</param>
1650 <returns>A <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the value of the specified object</returns>
1651 </member>
1652 <member name="M:Newtonsoft.Json.Linq.JToken.FromObject(System.Object,Newtonsoft.Json.JsonSerializer)">
1653 <summary>
1654 Creates a <see cref="T:Newtonsoft.Json.Linq.JToken"/> from an object using the specified <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
1655 </summary>
1656 <param name="o">The object that will be used to create <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</param>
1657 <param name="jsonSerializer">The <see cref="T:Newtonsoft.Json.JsonSerializer"/> that will be used when reading the object.</param>
1658 <returns>A <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the value of the specified object</returns>
1659 </member>
1660 <member name="M:Newtonsoft.Json.Linq.JToken.ReadFrom(Newtonsoft.Json.JsonReader)">
1661 <summary>
1662 Creates a <see cref="T:Newtonsoft.Json.Linq.JToken"/> from a <see cref="T:Newtonsoft.Json.JsonReader"/>.
1663 </summary>
1664 <param name="reader">An <see cref="T:Newtonsoft.Json.JsonReader"/> positioned at the token to read into this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</param>
1665 <returns>
1666 An <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the token and its descendant tokens
1667 that were read from the reader. The runtime type of the token is determined
1668 by the token type of the first token encountered in the reader.
1669 </returns>
1670 </member>
1671 <member name="M:Newtonsoft.Json.Linq.JToken.SelectToken(System.String)">
1672 <summary>
1673 Selects the token that matches the object path.
1674 </summary>
1675 <param name="path">
1676 The object path from the current <see cref="T:Newtonsoft.Json.Linq.JToken"/> to the <see cref="T:Newtonsoft.Json.Linq.JToken"/>
1677 to be returned. This must be a string of property names or array indexes separated
1678 by periods, such as <code>Tables[0].DefaultView[0].Price</code> in C# or
1679 <code>Tables(0).DefaultView(0).Price</code> in Visual Basic.
1680 </param>
1681 <returns>The <see cref="T:Newtonsoft.Json.Linq.JToken"/> that matches the object path or a null reference if no matching token is found.</returns>
1682 </member>
1683 <member name="M:Newtonsoft.Json.Linq.JToken.SelectToken(System.String,System.Boolean)">
1684 <summary>
1685 Selects the token that matches the object path.
1686 </summary>
1687 <param name="path">
1688 The object path from the current <see cref="T:Newtonsoft.Json.Linq.JToken"/> to the <see cref="T:Newtonsoft.Json.Linq.JToken"/>
1689 to be returned. This must be a string of property names or array indexes separated
1690 by periods, such as <code>Tables[0].DefaultView[0].Price</code> in C# or
1691 <code>Tables(0).DefaultView(0).Price</code> in Visual Basic.
1692 </param>
1693 <param name="errorWhenNoMatch">A flag to indicate whether an error should be thrown if no token is found.</param>
1694 <returns>The <see cref="T:Newtonsoft.Json.Linq.JToken"/> that matches the object path.</returns>
1695 </member>
1696 <member name="P:Newtonsoft.Json.Linq.JToken.EqualityComparer">
1697 <summary>
1698 Gets a comparer that can compare two tokens for value equality.
1699 </summary>
1700 <value>A <see cref="T:Newtonsoft.Json.Linq.JTokenEqualityComparer"/> that can compare two nodes for value equality.</value>
1701 </member>
1702 <member name="P:Newtonsoft.Json.Linq.JToken.Parent">
1703 <summary>
1704 Gets or sets the parent.
1705 </summary>
1706 <value>The parent.</value>
1707 </member>
1708 <member name="P:Newtonsoft.Json.Linq.JToken.Root">
1709 <summary>
1710 Gets the root <see cref="T:Newtonsoft.Json.Linq.JToken"/> of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1711 </summary>
1712 <value>The root <see cref="T:Newtonsoft.Json.Linq.JToken"/> of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</value>
1713 </member>
1714 <member name="P:Newtonsoft.Json.Linq.JToken.Type">
1715 <summary>
1716 Gets the node type for this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1717 </summary>
1718 <value>The type.</value>
1719 </member>
1720 <member name="P:Newtonsoft.Json.Linq.JToken.HasValues">
1721 <summary>
1722 Gets a value indicating whether this token has childen tokens.
1723 </summary>
1724 <value>
1725 <c>true</c> if this token has child values; otherwise, <c>false</c>.
1726 </value>
1727 </member>
1728 <member name="P:Newtonsoft.Json.Linq.JToken.Next">
1729 <summary>
1730 Gets the next sibling token of this node.
1731 </summary>
1732 <value>The <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the next sibling token.</value>
1733 </member>
1734 <member name="P:Newtonsoft.Json.Linq.JToken.Previous">
1735 <summary>
1736 Gets the previous sibling token of this node.
1737 </summary>
1738 <value>The <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the previous sibling token.</value>
1739 </member>
1740 <member name="P:Newtonsoft.Json.Linq.JToken.Item(System.Object)">
1741 <summary>
1742 Gets the <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified key.
1743 </summary>
1744 <value>The <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified key.</value>
1745 </member>
1746 <member name="P:Newtonsoft.Json.Linq.JToken.First">
1747 <summary>
1748 Get the first child token of this token.
1749 </summary>
1750 <value>A <see cref="T:Newtonsoft.Json.Linq.JToken"/> containing the first child token of the <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</value>
1751 </member>
1752 <member name="P:Newtonsoft.Json.Linq.JToken.Last">
1753 <summary>
1754 Get the last child token of this token.
1755 </summary>
1756 <value>A <see cref="T:Newtonsoft.Json.Linq.JToken"/> containing the last child token of the <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</value>
1757 </member>
1758 <member name="M:Newtonsoft.Json.Linq.JValue.#ctor(Newtonsoft.Json.Linq.JValue)">
1759 <summary>
1760 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JValue"/> class from another <see cref="T:Newtonsoft.Json.Linq.JValue"/> object.
1761 </summary>
1762 <param name="other">A <see cref="T:Newtonsoft.Json.Linq.JValue"/> object to copy from.</param>
1763 </member>
1764 <member name="M:Newtonsoft.Json.Linq.JValue.#ctor(System.Int64)">
1765 <summary>
1766 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JValue"/> class with the given value.
1767 </summary>
1768 <param name="value">The value.</param>
1769 </member>
1770 <member name="M:Newtonsoft.Json.Linq.JValue.#ctor(System.UInt64)">
1771 <summary>
1772 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JValue"/> class with the given value.
1773 </summary>
1774 <param name="value">The value.</param>
1775 </member>
1776 <member name="M:Newtonsoft.Json.Linq.JValue.#ctor(System.Double)">
1777 <summary>
1778 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JValue"/> class with the given value.
1779 </summary>
1780 <param name="value">The value.</param>
1781 </member>
1782 <member name="M:Newtonsoft.Json.Linq.JValue.#ctor(System.DateTime)">
1783 <summary>
1784 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JValue"/> class with the given value.
1785 </summary>
1786 <param name="value">The value.</param>
1787 </member>
1788 <member name="M:Newtonsoft.Json.Linq.JValue.#ctor(System.Boolean)">
1789 <summary>
1790 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JValue"/> class with the given value.
1791 </summary>
1792 <param name="value">The value.</param>
1793 </member>
1794 <member name="M:Newtonsoft.Json.Linq.JValue.#ctor(System.String)">
1795 <summary>
1796 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JValue"/> class with the given value.
1797 </summary>
1798 <param name="value">The value.</param>
1799 </member>
1800 <member name="M:Newtonsoft.Json.Linq.JValue.#ctor(System.Object)">
1801 <summary>
1802 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JValue"/> class with the given value.
1803 </summary>
1804 <param name="value">The value.</param>
1805 </member>
1806 <member name="M:Newtonsoft.Json.Linq.JValue.CreateComment(System.String)">
1807 <summary>
1808 Creates a <see cref="T:Newtonsoft.Json.Linq.JValue"/> comment with the given value.
1809 </summary>
1810 <param name="value">The value.</param>
1811 <returns>A <see cref="T:Newtonsoft.Json.Linq.JValue"/> comment with the given value.</returns>
1812 </member>
1813 <member name="M:Newtonsoft.Json.Linq.JValue.CreateString(System.String)">
1814 <summary>
1815 Creates a <see cref="T:Newtonsoft.Json.Linq.JValue"/> string with the given value.
1816 </summary>
1817 <param name="value">The value.</param>
1818 <returns>A <see cref="T:Newtonsoft.Json.Linq.JValue"/> string with the given value.</returns>
1819 </member>
1820 <member name="M:Newtonsoft.Json.Linq.JValue.WriteTo(Newtonsoft.Json.JsonWriter,Newtonsoft.Json.JsonConverter[])">
1821 <summary>
1822 Writes this token to a <see cref="T:Newtonsoft.Json.JsonWriter"/>.
1823 </summary>
1824 <param name="writer">A <see cref="T:Newtonsoft.Json.JsonWriter"/> into which this method will write.</param>
1825 <param name="converters">A collection of <see cref="T:Newtonsoft.Json.JsonConverter"/> which will be used when writing the token.</param>
1826 </member>
1827 <member name="M:Newtonsoft.Json.Linq.JValue.Equals(Newtonsoft.Json.Linq.JValue)">
1828 <summary>
1829 Indicates whether the current object is equal to another object of the same type.
1830 </summary>
1831 <returns>
1832 true if the current object is equal to the <paramref name="other"/> parameter; otherwise, false.
1833 </returns>
1834 <param name="other">An object to compare with this object.</param>
1835 </member>
1836 <member name="M:Newtonsoft.Json.Linq.JValue.Equals(System.Object)">
1837 <summary>
1838 Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
1839 </summary>
1840 <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:System.Object"/>.</param>
1841 <returns>
1842 true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>; otherwise, false.
1843 </returns>
1844 <exception cref="T:System.NullReferenceException">
1845 The <paramref name="obj"/> parameter is null.
1846 </exception>
1847 </member>
1848 <member name="M:Newtonsoft.Json.Linq.JValue.GetHashCode">
1849 <summary>
1850 Serves as a hash function for a particular type.
1851 </summary>
1852 <returns>
1853 A hash code for the current <see cref="T:System.Object"/>.
1854 </returns>
1855 </member>
1856 <member name="P:Newtonsoft.Json.Linq.JValue.HasValues">
1857 <summary>
1858 Gets a value indicating whether this token has childen tokens.
1859 </summary>
1860 <value>
1861 <c>true</c> if this token has child values; otherwise, <c>false</c>.
1862 </value>
1863 </member>
1864 <member name="P:Newtonsoft.Json.Linq.JValue.Type">
1865 <summary>
1866 Gets the node type for this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
1867 </summary>
1868 <value>The type.</value>
1869 </member>
1870 <member name="P:Newtonsoft.Json.Linq.JValue.Value">
1871 <summary>
1872 Gets or sets the underlying token value.
1873 </summary>
1874 <value>The underlying token value.</value>
1875 </member>
1876 <member name="M:Newtonsoft.Json.Linq.JRaw.#ctor(Newtonsoft.Json.Linq.JRaw)">
1877 <summary>
1878 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JRaw"/> class from another <see cref="T:Newtonsoft.Json.Linq.JRaw"/> object.
1879 </summary>
1880 <param name="other">A <see cref="T:Newtonsoft.Json.Linq.JRaw"/> object to copy from.</param>
1881 </member>
1882 <member name="M:Newtonsoft.Json.Linq.JRaw.#ctor(System.String)">
1883 <summary>
1884 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JRaw"/> class.
1885 </summary>
1886 <param name="rawJson">The raw json.</param>
1887 </member>
1888 <member name="M:Newtonsoft.Json.Linq.JRaw.Create(Newtonsoft.Json.JsonReader)">
1889 <summary>
1890 Creates an instance of <see cref="T:Newtonsoft.Json.Linq.JRaw"/> with the content of the reader's current token.
1891 </summary>
1892 <param name="reader">The reader.</param>
1893 <returns>An instance of <see cref="T:Newtonsoft.Json.Linq.JRaw"/> with the content of the reader's current token.</returns>
1894 </member>
1895 <member name="T:Newtonsoft.Json.Required">
1896 <summary>
1897 Indicating whether a property is required.
1898 </summary>
1899 </member>
1900 <member name="F:Newtonsoft.Json.Required.Default">
1901 <summary>
1902 The property is not required. The default state.
1903 </summary>
1904 </member>
1905 <member name="F:Newtonsoft.Json.Required.AllowNull">
1906 <summary>
1907 The property must be defined in JSON but can be a null value.
1908 </summary>
1909 </member>
1910 <member name="F:Newtonsoft.Json.Required.Always">
1911 <summary>
1912 The property must be defined in JSON and cannot be a null value.
1913 </summary>
1914 </member>
1915 <member name="T:Newtonsoft.Json.Serialization.IReferenceResolver">
1916 <summary>
1917 Used to resolve references when serializing and deserializing JSON by the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
1918 </summary>
1919 </member>
1920 <member name="M:Newtonsoft.Json.Serialization.IReferenceResolver.ResolveReference(System.String)">
1921 <summary>
1922 Resolves a reference to its object.
1923 </summary>
1924 <param name="reference">The reference to resolve.</param>
1925 <returns>The object that</returns>
1926 </member>
1927 <member name="M:Newtonsoft.Json.Serialization.IReferenceResolver.GetReference(System.Object)">
1928 <summary>
1929 Gets the reference for the sepecified object.
1930 </summary>
1931 <param name="value">The object to get a reference for.</param>
1932 <returns>The reference to the object.</returns>
1933 </member>
1934 <member name="M:Newtonsoft.Json.Serialization.IReferenceResolver.IsReferenced(System.Object)">
1935 <summary>
1936 Determines whether the specified object is referenced.
1937 </summary>
1938 <param name="value">The object to test for a reference.</param>
1939 <returns>
1940 <c>true</c> if the specified object is referenced; otherwise, <c>false</c>.
1941 </returns>
1942 </member>
1943 <member name="M:Newtonsoft.Json.Serialization.IReferenceResolver.AddReference(System.String,System.Object)">
1944 <summary>
1945 Adds a reference to the specified object.
1946 </summary>
1947 <param name="reference">The reference.</param>
1948 <param name="value">The object to reference.</param>
1949 </member>
1950 <member name="T:Newtonsoft.Json.PreserveReferencesHandling">
1951 <summary>
1952 Specifies reference handling options for the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
1953 </summary>
1954 </member>
1955 <member name="F:Newtonsoft.Json.PreserveReferencesHandling.None">
1956 <summary>
1957 Do not preserve references when serializing types.
1958 </summary>
1959 </member>
1960 <member name="F:Newtonsoft.Json.PreserveReferencesHandling.Objects">
1961 <summary>
1962 Preserve references when serializing into a JSON object structure.
1963 </summary>
1964 </member>
1965 <member name="F:Newtonsoft.Json.PreserveReferencesHandling.Arrays">
1966 <summary>
1967 Preserve references when serializing into a JSON array structure.
1968 </summary>
1969 </member>
1970 <member name="F:Newtonsoft.Json.PreserveReferencesHandling.All">
1971 <summary>
1972 Preserve references when serializing.
1973 </summary>
1974 </member>
1975 <member name="T:Newtonsoft.Json.JsonArrayAttribute">
1976 <summary>
1977 Instructs the <see cref="T:Newtonsoft.Json.JsonSerializer"/> how to serialize the collection.
1978 </summary>
1979 </member>
1980 <member name="T:Newtonsoft.Json.JsonContainerAttribute">
1981 <summary>
1982 Instructs the <see cref="T:Newtonsoft.Json.JsonSerializer"/> how to serialize the object.
1983 </summary>
1984 </member>
1985 <member name="M:Newtonsoft.Json.JsonContainerAttribute.#ctor">
1986 <summary>
1987 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonContainerAttribute"/> class.
1988 </summary>
1989 </member>
1990 <member name="M:Newtonsoft.Json.JsonContainerAttribute.#ctor(System.String)">
1991 <summary>
1992 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonContainerAttribute"/> class with the specified container Id.
1993 </summary>
1994 <param name="id">The container Id.</param>
1995 </member>
1996 <member name="P:Newtonsoft.Json.JsonContainerAttribute.Id">
1997 <summary>
1998 Gets or sets the id.
1999 </summary>
2000 <value>The id.</value>
2001 </member>
2002 <member name="P:Newtonsoft.Json.JsonContainerAttribute.Title">
2003 <summary>
2004 Gets or sets the title.
2005 </summary>
2006 <value>The title.</value>
2007 </member>
2008 <member name="P:Newtonsoft.Json.JsonContainerAttribute.Description">
2009 <summary>
2010 Gets or sets the description.
2011 </summary>
2012 <value>The description.</value>
2013 </member>
2014 <member name="P:Newtonsoft.Json.JsonContainerAttribute.IsReference">
2015 <summary>
2016 Gets or sets a value that indicates whether to preserve object reference data.
2017 </summary>
2018 <value>
2019 <c>true</c> to keep object reference; otherwise, <c>false</c>. The default is <c>false</c>.
2020 </value>
2021 </member>
2022 <member name="M:Newtonsoft.Json.JsonArrayAttribute.#ctor">
2023 <summary>
2024 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonArrayAttribute"/> class.
2025 </summary>
2026 </member>
2027 <member name="M:Newtonsoft.Json.JsonArrayAttribute.#ctor(System.Boolean)">
2028 <summary>
2029 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonObjectAttribute"/> class with a flag indicating whether the array can contain null items
2030 </summary>
2031 <param name="allowNullItems">A flag indicating whether the array can contain null items.</param>
2032 </member>
2033 <member name="M:Newtonsoft.Json.JsonArrayAttribute.#ctor(System.String)">
2034 <summary>
2035 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonArrayAttribute"/> class with the specified container Id.
2036 </summary>
2037 <param name="id">The container Id.</param>
2038 </member>
2039 <member name="P:Newtonsoft.Json.JsonArrayAttribute.AllowNullItems">
2040 <summary>
2041 Gets or sets a value indicating whether null items are allowed in the collection.
2042 </summary>
2043 <value><c>true</c> if null items are allowed in the collection; otherwise, <c>false</c>.</value>
2044 </member>
2045 <member name="T:Newtonsoft.Json.DefaultValueHandling">
2046 <summary>
2047 Specifies default value handling options for the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
2048 </summary>
2049 </member>
2050 <member name="F:Newtonsoft.Json.DefaultValueHandling.Include">
2051 <summary>
2052 Include null values when serializing and deserializing objects.
2053 </summary>
2054 </member>
2055 <member name="F:Newtonsoft.Json.DefaultValueHandling.Ignore">
2056 <summary>
2057 Ignore null values when serializing and deserializing objects.
2058 </summary>
2059 </member>
2060 <member name="T:Newtonsoft.Json.JsonConverterAttribute">
2061 <summary>
2062 Instructs the <see cref="T:Newtonsoft.Json.JsonSerializer"/> to use the specified <see cref="T:Newtonsoft.Json.JsonConverter"/> when serializing the member or class.
2063 </summary>
2064 </member>
2065 <member name="M:Newtonsoft.Json.JsonConverterAttribute.#ctor(System.Type)">
2066 <summary>
2067 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonConverterAttribute"/> class.
2068 </summary>
2069 <param name="converterType">Type of the converter.</param>
2070 </member>
2071 <member name="P:Newtonsoft.Json.JsonConverterAttribute.ConverterType">
2072 <summary>
2073 Gets the type of the converter.
2074 </summary>
2075 <value>The type of the converter.</value>
2076 </member>
2077 <member name="T:Newtonsoft.Json.JsonObjectAttribute">
2078 <summary>
2079 Instructs the <see cref="T:Newtonsoft.Json.JsonSerializer"/> how to serialize the object.
2080 </summary>
2081 </member>
2082 <member name="M:Newtonsoft.Json.JsonObjectAttribute.#ctor">
2083 <summary>
2084 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonObjectAttribute"/> class.
2085 </summary>
2086 </member>
2087 <member name="M:Newtonsoft.Json.JsonObjectAttribute.#ctor(Newtonsoft.Json.MemberSerialization)">
2088 <summary>
2089 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonObjectAttribute"/> class with the specified member serialization.
2090 </summary>
2091 <param name="memberSerialization">The member serialization.</param>
2092 </member>
2093 <member name="M:Newtonsoft.Json.JsonObjectAttribute.#ctor(System.String)">
2094 <summary>
2095 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonObjectAttribute"/> class with the specified container Id.
2096 </summary>
2097 <param name="id">The container Id.</param>
2098 </member>
2099 <member name="P:Newtonsoft.Json.JsonObjectAttribute.MemberSerialization">
2100 <summary>
2101 Gets or sets the member serialization.
2102 </summary>
2103 <value>The member serialization.</value>
2104 </member>
2105 <member name="T:Newtonsoft.Json.JsonSerializerSettings">
2106 <summary>
2107 Specifies the settings on a <see cref="T:Newtonsoft.Json.JsonSerializer"/> object.
2108 </summary>
2109 </member>
2110 <member name="M:Newtonsoft.Json.JsonSerializerSettings.#ctor">
2111 <summary>
2112 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/> class.
2113 </summary>
2114 </member>
2115 <member name="P:Newtonsoft.Json.JsonSerializerSettings.ReferenceLoopHandling">
2116 <summary>
2117 Gets or sets how reference loops (e.g. a class referencing itself) is handled.
2118 </summary>
2119 <value>Reference loop handling.</value>
2120 </member>
2121 <member name="P:Newtonsoft.Json.JsonSerializerSettings.MissingMemberHandling">
2122 <summary>
2123 Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
2124 </summary>
2125 <value>Missing member handling.</value>
2126 </member>
2127 <member name="P:Newtonsoft.Json.JsonSerializerSettings.ObjectCreationHandling">
2128 <summary>
2129 Gets or sets how objects are created during deserialization.
2130 </summary>
2131 <value>The object creation handling.</value>
2132 </member>
2133 <member name="P:Newtonsoft.Json.JsonSerializerSettings.NullValueHandling">
2134 <summary>
2135 Gets or sets how null values are handled during serialization and deserialization.
2136 </summary>
2137 <value>Null value handling.</value>
2138 </member>
2139 <member name="P:Newtonsoft.Json.JsonSerializerSettings.DefaultValueHandling">
2140 <summary>
2141 Gets or sets how null default are handled during serialization and deserialization.
2142 </summary>
2143 <value>The default value handling.</value>
2144 </member>
2145 <member name="P:Newtonsoft.Json.JsonSerializerSettings.Converters">
2146 <summary>
2147 Gets or sets a collection <see cref="T:Newtonsoft.Json.JsonConverter"/> that will be used during serialization.
2148 </summary>
2149 <value>The converters.</value>
2150 </member>
2151 <member name="P:Newtonsoft.Json.JsonSerializerSettings.PreserveReferencesHandling">
2152 <summary>
2153 Gets or sets how object references are preserved by the serializer.
2154 </summary>
2155 <value>The preserve references handling.</value>
2156 </member>
2157 <member name="P:Newtonsoft.Json.JsonSerializerSettings.TypeNameHandling">
2158 <summary>
2159 Gets or sets how type name writing and reading is handled by the serializer.
2160 </summary>
2161 <value>The type name handling.</value>
2162 </member>
2163 <member name="P:Newtonsoft.Json.JsonSerializerSettings.ConstructorHandling">
2164 <summary>
2165 Gets or sets how constructors are used during deserialization.
2166 </summary>
2167 <value>The constructor handling.</value>
2168 </member>
2169 <member name="P:Newtonsoft.Json.JsonSerializerSettings.ContractResolver">
2170 <summary>
2171 Gets or sets the contract resolver used by the serializer when
2172 serializing .NET objects to JSON and vice versa.
2173 </summary>
2174 <value>The contract resolver.</value>
2175 </member>
2176 <member name="P:Newtonsoft.Json.JsonSerializerSettings.ReferenceResolver">
2177 <summary>
2178 Gets or sets the <see cref="T:Newtonsoft.Json.Serialization.IReferenceResolver"/> used by the serializer when resolving references.
2179 </summary>
2180 <value>The reference resolver.</value>
2181 </member>
2182 <member name="P:Newtonsoft.Json.JsonSerializerSettings.Binder">
2183 <summary>
2184 Gets or sets the <see cref="T:System.Runtime.Serialization.SerializationBinder"/> used by the serializer when resolving type names.
2185 </summary>
2186 <value>The binder.</value>
2187 </member>
2188 <member name="P:Newtonsoft.Json.JsonSerializerSettings.Error">
2189 <summary>
2190 Gets or sets the error handler called during serialization and deserialization.
2191 </summary>
2192 <value>The error handler called during serialization and deserialization.</value>
2193 </member>
2194 <member name="P:Newtonsoft.Json.JsonSerializerSettings.Context">
2195 <summary>
2196 Gets or sets the <see cref="T:System.Runtime.Serialization.StreamingContext"/> used by the serializer when invoking serialization callback methods.
2197 </summary>
2198 <value>The context.</value>
2199 </member>
2200 <member name="T:Newtonsoft.Json.JsonValidatingReader">
2201 <summary>
2202 Represents a reader that provides <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> validation.
2203 </summary>
2204 </member>
2205 <member name="M:Newtonsoft.Json.JsonValidatingReader.#ctor(Newtonsoft.Json.JsonReader)">
2206 <summary>
2207 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonValidatingReader"/> class that
2208 validates the content returned from the given <see cref="T:Newtonsoft.Json.JsonReader"/>.
2209 </summary>
2210 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from while validating.</param>
2211 </member>
2212 <member name="M:Newtonsoft.Json.JsonValidatingReader.ReadAsBytes">
2213 <summary>
2214 Reads the next JSON token from the stream as a <see cref="T:Byte[]"/>.
2215 </summary>
2216 <returns>
2217 A <see cref="T:Byte[]"/> or a null reference if the next JSON token is null.
2218 </returns>
2219 </member>
2220 <member name="M:Newtonsoft.Json.JsonValidatingReader.Read">
2221 <summary>
2222 Reads the next JSON token from the stream.
2223 </summary>
2224 <returns>
2225 true if the next token was read successfully; false if there are no more tokens to read.
2226 </returns>
2227 </member>
2228 <member name="E:Newtonsoft.Json.JsonValidatingReader.ValidationEventHandler">
2229 <summary>
2230 Sets an event handler for receiving schema validation errors.
2231 </summary>
2232 </member>
2233 <member name="P:Newtonsoft.Json.JsonValidatingReader.Value">
2234 <summary>
2235 Gets the text value of the current Json token.
2236 </summary>
2237 <value></value>
2238 </member>
2239 <member name="P:Newtonsoft.Json.JsonValidatingReader.Depth">
2240 <summary>
2241 Gets the depth of the current token in the JSON document.
2242 </summary>
2243 <value>The depth of the current token in the JSON document.</value>
2244 </member>
2245 <member name="P:Newtonsoft.Json.JsonValidatingReader.QuoteChar">
2246 <summary>
2247 Gets the quotation mark character used to enclose the value of a string.
2248 </summary>
2249 <value></value>
2250 </member>
2251 <member name="P:Newtonsoft.Json.JsonValidatingReader.TokenType">
2252 <summary>
2253 Gets the type of the current Json token.
2254 </summary>
2255 <value></value>
2256 </member>
2257 <member name="P:Newtonsoft.Json.JsonValidatingReader.ValueType">
2258 <summary>
2259 Gets The Common Language Runtime (CLR) type for the current Json token.
2260 </summary>
2261 <value></value>
2262 </member>
2263 <member name="P:Newtonsoft.Json.JsonValidatingReader.Schema">
2264 <summary>
2265 Gets or sets the schema.
2266 </summary>
2267 <value>The schema.</value>
2268 </member>
2269 <member name="P:Newtonsoft.Json.JsonValidatingReader.Reader">
2270 <summary>
2271 Gets the <see cref="T:Newtonsoft.Json.JsonReader"/> used to construct this <see cref="T:Newtonsoft.Json.JsonValidatingReader"/>.
2272 </summary>
2273 <value>The <see cref="T:Newtonsoft.Json.JsonReader"/> specified in the constructor.</value>
2274 </member>
2275 <member name="T:Newtonsoft.Json.Linq.JTokenEqualityComparer">
2276 <summary>
2277 Compares tokens to determine whether they are equal.
2278 </summary>
2279 </member>
2280 <member name="M:Newtonsoft.Json.Linq.JTokenEqualityComparer.Equals(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Linq.JToken)">
2281 <summary>
2282 Determines whether the specified objects are equal.
2283 </summary>
2284 <param name="x">The first object of type <paramref name="T"/> to compare.</param>
2285 <param name="y">The second object of type <paramref name="T"/> to compare.</param>
2286 <returns>
2287 true if the specified objects are equal; otherwise, false.
2288 </returns>
2289 </member>
2290 <member name="M:Newtonsoft.Json.Linq.JTokenEqualityComparer.GetHashCode(Newtonsoft.Json.Linq.JToken)">
2291 <summary>
2292 Returns a hash code for the specified object.
2293 </summary>
2294 <param name="obj">The <see cref="T:System.Object"/> for which a hash code is to be returned.</param>
2295 <returns>A hash code for the specified object.</returns>
2296 <exception cref="T:System.ArgumentNullException">The type of <paramref name="obj"/> is a reference type and <paramref name="obj"/> is null.</exception>
2297 </member>
2298 <member name="T:Newtonsoft.Json.MemberSerialization">
2299 <summary>
2300 Specifies the member serialization options for the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
2301 </summary>
2302 </member>
2303 <member name="F:Newtonsoft.Json.MemberSerialization.OptOut">
2304 <summary>
2305 All members are serialized by default. Members can be excluded using the <see cref="T:Newtonsoft.Json.JsonIgnoreAttribute"/>.
2306 </summary>
2307 </member>
2308 <member name="F:Newtonsoft.Json.MemberSerialization.OptIn">
2309 <summary>
2310 Only members must be marked with the <see cref="T:Newtonsoft.Json.JsonPropertyAttribute"/> are serialized.
2311 </summary>
2312 </member>
2313 <member name="T:Newtonsoft.Json.ObjectCreationHandling">
2314 <summary>
2315 Specifies how object creation is handled by the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
2316 </summary>
2317 </member>
2318 <member name="F:Newtonsoft.Json.ObjectCreationHandling.Auto">
2319 <summary>
2320 Reuse existing objects, create new objects when needed.
2321 </summary>
2322 </member>
2323 <member name="F:Newtonsoft.Json.ObjectCreationHandling.Reuse">
2324 <summary>
2325 Only reuse existing objects.
2326 </summary>
2327 </member>
2328 <member name="F:Newtonsoft.Json.ObjectCreationHandling.Replace">
2329 <summary>
2330 Always create new objects.
2331 </summary>
2332 </member>
2333 <member name="T:Newtonsoft.Json.Converters.IsoDateTimeConverter">
2334 <summary>
2335 Converts a <see cref="T:System.DateTime"/> to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z).
2336 </summary>
2337 </member>
2338 <member name="M:Newtonsoft.Json.Converters.IsoDateTimeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
2339 <summary>
2340 Writes the JSON representation of the object.
2341 </summary>
2342 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
2343 <param name="value">The value.</param>
2344 <param name="serializer">The calling serializer.</param>
2345 </member>
2346 <member name="M:Newtonsoft.Json.Converters.IsoDateTimeConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
2347 <summary>
2348 Reads the JSON representation of the object.
2349 </summary>
2350 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
2351 <param name="objectType">Type of the object.</param>
2352 <param name="serializer">The calling serializer.</param>
2353 <returns>The object value.</returns>
2354 </member>
2355 <member name="P:Newtonsoft.Json.Converters.IsoDateTimeConverter.DateTimeStyles">
2356 <summary>
2357 Gets or sets the date time styles used when converting a date to and from JSON.
2358 </summary>
2359 <value>The date time styles used when converting a date to and from JSON.</value>
2360 </member>
2361 <member name="P:Newtonsoft.Json.Converters.IsoDateTimeConverter.DateTimeFormat">
2362 <summary>
2363 Gets or sets the date time format used when converting a date to and from JSON.
2364 </summary>
2365 <value>The date time format used when converting a date to and from JSON.</value>
2366 </member>
2367 <member name="P:Newtonsoft.Json.Converters.IsoDateTimeConverter.Culture">
2368 <summary>
2369 Gets or sets the culture used when converting a date to and from JSON.
2370 </summary>
2371 <value>The culture used when converting a date to and from JSON.</value>
2372 </member>
2373 <member name="T:Newtonsoft.Json.Converters.JavaScriptDateTimeConverter">
2374 <summary>
2375 Converts a <see cref="T:System.DateTime"/> to and from a JavaScript date constructor (e.g. new Date(52231943)).
2376 </summary>
2377 </member>
2378 <member name="M:Newtonsoft.Json.Converters.JavaScriptDateTimeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
2379 <summary>
2380 Writes the JSON representation of the object.
2381 </summary>
2382 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
2383 <param name="value">The value.</param>
2384 <param name="serializer">The calling serializer.</param>
2385 </member>
2386 <member name="M:Newtonsoft.Json.Converters.JavaScriptDateTimeConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
2387 <summary>
2388 Reads the JSON representation of the object.
2389 </summary>
2390 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
2391 <param name="objectType">Type of the object.</param>
2392 <param name="serializer">The calling serializer.</param>
2393 <returns>The object value.</returns>
2394 </member>
2395 <member name="T:Newtonsoft.Json.Converters.JsonDateTimeSerializationMode">
2396 <summary>
2397 Specifies whether a DateTime object represents a local time, a Coordinated Universal Time (UTC), or is not specified as either local time or UTC.
2398 </summary>
2399 </member>
2400 <member name="F:Newtonsoft.Json.Converters.JsonDateTimeSerializationMode.Local">
2401 <summary>
2402 The time represented is local time.
2403 </summary>
2404 </member>
2405 <member name="F:Newtonsoft.Json.Converters.JsonDateTimeSerializationMode.Utc">
2406 <summary>
2407 The time represented is UTC.
2408 </summary>
2409 </member>
2410 <member name="F:Newtonsoft.Json.Converters.JsonDateTimeSerializationMode.Unspecified">
2411 <summary>
2412 The time represented is not specified as either local time or Coordinated Universal Time (UTC).
2413 </summary>
2414 </member>
2415 <member name="F:Newtonsoft.Json.Converters.JsonDateTimeSerializationMode.RoundtripKind">
2416 <summary>
2417 Preserves the DateTimeKind field of a date when a DateTime object is converted to a string and the string is then converted back to a DateTime object.
2418 </summary>
2419 </member>
2420 <member name="T:Newtonsoft.Json.Converters.XmlNodeConverter">
2421 <summary>
2422 Converts an <see cref="T:System.Xml.XmlNode"/> to and from JSON.
2423 </summary>
2424 </member>
2425 <member name="M:Newtonsoft.Json.Converters.XmlNodeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
2426 <summary>
2427 Writes the JSON representation of the object.
2428 </summary>
2429 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
2430 <param name="serializer">The calling serializer.</param>
2431 <param name="value">The value.</param>
2432 </member>
2433 <member name="M:Newtonsoft.Json.Converters.XmlNodeConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
2434 <summary>
2435 Reads the JSON representation of the object.
2436 </summary>
2437 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
2438 <param name="objectType">Type of the object.</param>
2439 <param name="serializer">The calling serializer.</param>
2440 <returns>The object value.</returns>
2441 </member>
2442 <member name="M:Newtonsoft.Json.Converters.XmlNodeConverter.IsNamespaceAttribute(System.String,System.String@)">
2443 <summary>
2444 Checks if the attributeName is a namespace attribute.
2445 </summary>
2446 <param name="attributeName">Attribute name to test.</param>
2447 <param name="prefix">The attribute name prefix if it has one, otherwise an empty string.</param>
2448 <returns>True if attribute name is for a namespace attribute, otherwise false.</returns>
2449 </member>
2450 <member name="M:Newtonsoft.Json.Converters.XmlNodeConverter.CanConvert(System.Type)">
2451 <summary>
2452 Determines whether this instance can convert the specified value type.
2453 </summary>
2454 <param name="valueType">Type of the value.</param>
2455 <returns>
2456 <c>true</c> if this instance can convert the specified value type; otherwise, <c>false</c>.
2457 </returns>
2458 </member>
2459 <member name="P:Newtonsoft.Json.Converters.XmlNodeConverter.DeserializeRootElementName">
2460 <summary>
2461 Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements.
2462 </summary>
2463 <value>The name of the deserialize root element.</value>
2464 </member>
2465 <member name="T:Newtonsoft.Json.Converters.HtmlColorConverter">
2466 <summary>
2467 Converts a <see cref="T:System.Drawing.Color"/> object to and from JSON.
2468 </summary>
2469 </member>
2470 <member name="M:Newtonsoft.Json.Converters.HtmlColorConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
2471 <summary>
2472 Writes the JSON representation of the object.
2473 </summary>
2474 <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param>
2475 <param name="serializer">The calling serializer.</param>
2476 <param name="value">The value.</param>
2477 </member>
2478 <member name="M:Newtonsoft.Json.Converters.HtmlColorConverter.CanConvert(System.Type)">
2479 <summary>
2480 Determines whether this instance can convert the specified value type.
2481 </summary>
2482 <param name="valueType">Type of the value.</param>
2483 <returns>
2484 <c>true</c> if this instance can convert the specified value type; otherwise, <c>false</c>.
2485 </returns>
2486 </member>
2487 <member name="M:Newtonsoft.Json.Converters.HtmlColorConverter.ReadJson(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.JsonSerializer)">
2488 <summary>
2489 Reads the JSON representation of the object.
2490 </summary>
2491 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> to read from.</param>
2492 <param name="objectType">Type of the object.</param>
2493 <param name="serializer">The calling serializer.</param>
2494 <returns>The object value.</returns>
2495 </member>
2496 <member name="T:Newtonsoft.Json.JsonTextReader">
2497 <summary>
2498 Represents a reader that provides fast, non-cached, forward-only access to serialized Json data.
2499 </summary>
2500 </member>
2501 <member name="M:Newtonsoft.Json.JsonTextReader.#ctor(System.IO.TextReader)">
2502 <summary>
2503 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonReader"/> class with the specified <see cref="T:System.IO.TextReader"/>.
2504 </summary>
2505 <param name="reader">The <c>TextReader</c> containing the XML data to read.</param>
2506 </member>
2507 <member name="M:Newtonsoft.Json.JsonTextReader.Read">
2508 <summary>
2509 Reads the next JSON token from the stream.
2510 </summary>
2511 <returns>
2512 true if the next token was read successfully; false if there are no more tokens to read.
2513 </returns>
2514 </member>
2515 <member name="M:Newtonsoft.Json.JsonTextReader.ReadAsBytes">
2516 <summary>
2517 Reads the next JSON token from the stream as a <see cref="T:Byte[]"/>.
2518 </summary>
2519 <returns>
2520 A <see cref="T:Byte[]"/> or a null reference if the next JSON token is null.
2521 </returns>
2522 </member>
2523 <member name="M:Newtonsoft.Json.JsonTextReader.Close">
2524 <summary>
2525 Changes the state to closed.
2526 </summary>
2527 </member>
2528 <member name="M:Newtonsoft.Json.JsonTextReader.HasLineInfo">
2529 <summary>
2530 Gets a value indicating whether the class can return line information.
2531 </summary>
2532 <returns>
2533 <c>true</c> if LineNumber and LinePosition can be provided; otherwise, <c>false</c>.
2534 </returns>
2535 </member>
2536 <member name="P:Newtonsoft.Json.JsonTextReader.LineNumber">
2537 <summary>
2538 Gets the current line number.
2539 </summary>
2540 <value>
2541 The current line number or 0 if no line information is available (for example, HasLineInfo returns false).
2542 </value>
2543 </member>
2544 <member name="P:Newtonsoft.Json.JsonTextReader.LinePosition">
2545 <summary>
2546 Gets the current line position.
2547 </summary>
2548 <value>
2549 The current line position or 0 if no line information is available (for example, HasLineInfo returns false).
2550 </value>
2551 </member>
2552 <member name="T:Newtonsoft.Json.JsonPropertyAttribute">
2553 <summary>
2554 Instructs the <see cref="T:Newtonsoft.Json.JsonSerializer"/> to always serialize the member with the specified name.
2555 </summary>
2556 </member>
2557 <member name="M:Newtonsoft.Json.JsonPropertyAttribute.#ctor">
2558 <summary>
2559 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonPropertyAttribute"/> class.
2560 </summary>
2561 </member>
2562 <member name="M:Newtonsoft.Json.JsonPropertyAttribute.#ctor(System.String)">
2563 <summary>
2564 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonPropertyAttribute"/> class with the specified name.
2565 </summary>
2566 <param name="propertyName">Name of the property.</param>
2567 </member>
2568 <member name="P:Newtonsoft.Json.JsonPropertyAttribute.NullValueHandling">
2569 <summary>
2570 Gets or sets the null value handling used when serializing this property.
2571 </summary>
2572 <value>The null value handling.</value>
2573 </member>
2574 <member name="P:Newtonsoft.Json.JsonPropertyAttribute.DefaultValueHandling">
2575 <summary>
2576 Gets or sets the default value handling used when serializing this property.
2577 </summary>
2578 <value>The default value handling.</value>
2579 </member>
2580 <member name="P:Newtonsoft.Json.JsonPropertyAttribute.ReferenceLoopHandling">
2581 <summary>
2582 Gets or sets the reference loop handling used when serializing this property.
2583 </summary>
2584 <value>The reference loop handling.</value>
2585 </member>
2586 <member name="P:Newtonsoft.Json.JsonPropertyAttribute.ObjectCreationHandling">
2587 <summary>
2588 Gets or sets the object creation handling used when deserializing this property.
2589 </summary>
2590 <value>The object creation handling.</value>
2591 </member>
2592 <member name="P:Newtonsoft.Json.JsonPropertyAttribute.IsReference">
2593 <summary>
2594 Gets or sets whether this property's value is serialized as a reference.
2595 </summary>
2596 <value>Whether this property's value is serialized as a reference.</value>
2597 </member>
2598 <member name="P:Newtonsoft.Json.JsonPropertyAttribute.PropertyName">
2599 <summary>
2600 Gets or sets the name of the property.
2601 </summary>
2602 <value>The name of the property.</value>
2603 </member>
2604 <member name="P:Newtonsoft.Json.JsonPropertyAttribute.Required">
2605 <summary>
2606 Gets or sets a value indicating whether this property is required.
2607 </summary>
2608 <value>
2609 A value indicating whether this property is required.
2610 </value>
2611 </member>
2612 <member name="T:Newtonsoft.Json.JsonIgnoreAttribute">
2613 <summary>
2614 Instructs the <see cref="T:Newtonsoft.Json.JsonSerializer"/> not to serialize the public field or public read/write property value.
2615 </summary>
2616 </member>
2617 <member name="T:Newtonsoft.Json.JsonTextWriter">
2618 <summary>
2619 Represents a writer that provides a fast, non-cached, forward-only way of generating Json data.
2620 </summary>
2621 </member>
2622 <member name="M:Newtonsoft.Json.JsonTextWriter.#ctor(System.IO.TextWriter)">
2623 <summary>
2624 Creates an instance of the <c>JsonWriter</c> class using the specified <see cref="T:System.IO.TextWriter"/>.
2625 </summary>
2626 <param name="textWriter">The <c>TextWriter</c> to write to.</param>
2627 </member>
2628 <member name="M:Newtonsoft.Json.JsonTextWriter.Flush">
2629 <summary>
2630 Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
2631 </summary>
2632 </member>
2633 <member name="M:Newtonsoft.Json.JsonTextWriter.Close">
2634 <summary>
2635 Closes this stream and the underlying stream.
2636 </summary>
2637 </member>
2638 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteStartObject">
2639 <summary>
2640 Writes the beginning of a Json object.
2641 </summary>
2642 </member>
2643 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteStartArray">
2644 <summary>
2645 Writes the beginning of a Json array.
2646 </summary>
2647 </member>
2648 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteStartConstructor(System.String)">
2649 <summary>
2650 Writes the start of a constructor with the given name.
2651 </summary>
2652 <param name="name">The name of the constructor.</param>
2653 </member>
2654 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteEnd(Newtonsoft.Json.JsonToken)">
2655 <summary>
2656 Writes the specified end token.
2657 </summary>
2658 <param name="token">The end token to write.</param>
2659 </member>
2660 <member name="M:Newtonsoft.Json.JsonTextWriter.WritePropertyName(System.String)">
2661 <summary>
2662 Writes the property name of a name/value pair on a Json object.
2663 </summary>
2664 <param name="name">The name of the property.</param>
2665 </member>
2666 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteIndent">
2667 <summary>
2668 Writes indent characters.
2669 </summary>
2670 </member>
2671 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValueDelimiter">
2672 <summary>
2673 Writes the JSON value delimiter.
2674 </summary>
2675 </member>
2676 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteIndentSpace">
2677 <summary>
2678 Writes an indent space.
2679 </summary>
2680 </member>
2681 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteNull">
2682 <summary>
2683 Writes a null value.
2684 </summary>
2685 </member>
2686 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteUndefined">
2687 <summary>
2688 Writes an undefined value.
2689 </summary>
2690 </member>
2691 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteRaw(System.String)">
2692 <summary>
2693 Writes raw JSON.
2694 </summary>
2695 <param name="json">The raw JSON to write.</param>
2696 </member>
2697 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.String)">
2698 <summary>
2699 Writes a <see cref="T:System.String"/> value.
2700 </summary>
2701 <param name="value">The <see cref="T:System.String"/> value to write.</param>
2702 </member>
2703 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Int32)">
2704 <summary>
2705 Writes a <see cref="T:System.Int32"/> value.
2706 </summary>
2707 <param name="value">The <see cref="T:System.Int32"/> value to write.</param>
2708 </member>
2709 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.UInt32)">
2710 <summary>
2711 Writes a <see cref="T:System.UInt32"/> value.
2712 </summary>
2713 <param name="value">The <see cref="T:System.UInt32"/> value to write.</param>
2714 </member>
2715 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Int64)">
2716 <summary>
2717 Writes a <see cref="T:System.Int64"/> value.
2718 </summary>
2719 <param name="value">The <see cref="T:System.Int64"/> value to write.</param>
2720 </member>
2721 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.UInt64)">
2722 <summary>
2723 Writes a <see cref="T:System.UInt64"/> value.
2724 </summary>
2725 <param name="value">The <see cref="T:System.UInt64"/> value to write.</param>
2726 </member>
2727 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Single)">
2728 <summary>
2729 Writes a <see cref="T:System.Single"/> value.
2730 </summary>
2731 <param name="value">The <see cref="T:System.Single"/> value to write.</param>
2732 </member>
2733 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Double)">
2734 <summary>
2735 Writes a <see cref="T:System.Double"/> value.
2736 </summary>
2737 <param name="value">The <see cref="T:System.Double"/> value to write.</param>
2738 </member>
2739 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Boolean)">
2740 <summary>
2741 Writes a <see cref="T:System.Boolean"/> value.
2742 </summary>
2743 <param name="value">The <see cref="T:System.Boolean"/> value to write.</param>
2744 </member>
2745 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Int16)">
2746 <summary>
2747 Writes a <see cref="T:System.Int16"/> value.
2748 </summary>
2749 <param name="value">The <see cref="T:System.Int16"/> value to write.</param>
2750 </member>
2751 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.UInt16)">
2752 <summary>
2753 Writes a <see cref="T:System.UInt16"/> value.
2754 </summary>
2755 <param name="value">The <see cref="T:System.UInt16"/> value to write.</param>
2756 </member>
2757 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Char)">
2758 <summary>
2759 Writes a <see cref="T:System.Char"/> value.
2760 </summary>
2761 <param name="value">The <see cref="T:System.Char"/> value to write.</param>
2762 </member>
2763 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Byte)">
2764 <summary>
2765 Writes a <see cref="T:System.Byte"/> value.
2766 </summary>
2767 <param name="value">The <see cref="T:System.Byte"/> value to write.</param>
2768 </member>
2769 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.SByte)">
2770 <summary>
2771 Writes a <see cref="T:System.SByte"/> value.
2772 </summary>
2773 <param name="value">The <see cref="T:System.SByte"/> value to write.</param>
2774 </member>
2775 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Decimal)">
2776 <summary>
2777 Writes a <see cref="T:System.Decimal"/> value.
2778 </summary>
2779 <param name="value">The <see cref="T:System.Decimal"/> value to write.</param>
2780 </member>
2781 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.DateTime)">
2782 <summary>
2783 Writes a <see cref="T:System.DateTime"/> value.
2784 </summary>
2785 <param name="value">The <see cref="T:System.DateTime"/> value to write.</param>
2786 </member>
2787 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteValue(System.Byte[])">
2788 <summary>
2789 Writes a <see cref="T:Byte[]"/> value.
2790 </summary>
2791 <param name="value">The <see cref="T:Byte[]"/> value to write.</param>
2792 </member>
2793 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteComment(System.String)">
2794 <summary>
2795 Writes out a comment <code>/*...*/</code> containing the specified text.
2796 </summary>
2797 <param name="text">Text to place inside the comment.</param>
2798 </member>
2799 <member name="M:Newtonsoft.Json.JsonTextWriter.WriteWhitespace(System.String)">
2800 <summary>
2801 Writes out the given white space.
2802 </summary>
2803 <param name="ws">The string of white space characters.</param>
2804 </member>
2805 <member name="P:Newtonsoft.Json.JsonTextWriter.Indentation">
2806 <summary>
2807 Gets or sets how many IndentChars to write for each level in the hierarchy when <paramref name="Formatting"/> is set to <c>Formatting.Indented</c>.
2808 </summary>
2809 </member>
2810 <member name="P:Newtonsoft.Json.JsonTextWriter.QuoteChar">
2811 <summary>
2812 Gets or sets which character to use to quote attribute values.
2813 </summary>
2814 </member>
2815 <member name="P:Newtonsoft.Json.JsonTextWriter.IndentChar">
2816 <summary>
2817 Gets or sets which character to use for indenting when <paramref name="Formatting"/> is set to <c>Formatting.Indented</c>.
2818 </summary>
2819 </member>
2820 <member name="P:Newtonsoft.Json.JsonTextWriter.QuoteName">
2821 <summary>
2822 Gets or sets a value indicating whether object names will be surrounded with quotes.
2823 </summary>
2824 </member>
2825 <member name="T:Newtonsoft.Json.JsonWriterException">
2826 <summary>
2827 The exception thrown when an error occurs while reading Json text.
2828 </summary>
2829 </member>
2830 <member name="M:Newtonsoft.Json.JsonWriterException.#ctor">
2831 <summary>
2832 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonWriterException"/> class.
2833 </summary>
2834 </member>
2835 <member name="M:Newtonsoft.Json.JsonWriterException.#ctor(System.String)">
2836 <summary>
2837 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonWriterException"/> class
2838 with a specified error message.
2839 </summary>
2840 <param name="message">The error message that explains the reason for the exception.</param>
2841 </member>
2842 <member name="M:Newtonsoft.Json.JsonWriterException.#ctor(System.String,System.Exception)">
2843 <summary>
2844 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonWriterException"/> class
2845 with a specified error message and a reference to the inner exception that is the cause of this exception.
2846 </summary>
2847 <param name="message">The error message that explains the reason for the exception.</param>
2848 <param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
2849 </member>
2850 <member name="T:Newtonsoft.Json.JsonReaderException">
2851 <summary>
2852 The exception thrown when an error occurs while reading Json text.
2853 </summary>
2854 </member>
2855 <member name="M:Newtonsoft.Json.JsonReaderException.#ctor">
2856 <summary>
2857 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonReaderException"/> class.
2858 </summary>
2859 </member>
2860 <member name="M:Newtonsoft.Json.JsonReaderException.#ctor(System.String)">
2861 <summary>
2862 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonReaderException"/> class
2863 with a specified error message.
2864 </summary>
2865 <param name="message">The error message that explains the reason for the exception.</param>
2866 </member>
2867 <member name="M:Newtonsoft.Json.JsonReaderException.#ctor(System.String,System.Exception)">
2868 <summary>
2869 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonReaderException"/> class
2870 with a specified error message and a reference to the inner exception that is the cause of this exception.
2871 </summary>
2872 <param name="message">The error message that explains the reason for the exception.</param>
2873 <param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
2874 </member>
2875 <member name="P:Newtonsoft.Json.JsonReaderException.LineNumber">
2876 <summary>
2877 Gets the line number indicating where the error occurred.
2878 </summary>
2879 <value>The line number indicating where the error occurred.</value>
2880 </member>
2881 <member name="P:Newtonsoft.Json.JsonReaderException.LinePosition">
2882 <summary>
2883 Gets the line position indicating where the error occurred.
2884 </summary>
2885 <value>The line position indicating where the error occurred.</value>
2886 </member>
2887 <member name="T:Newtonsoft.Json.JsonConverterCollection">
2888 <summary>
2889 Represents a collection of <see cref="T:Newtonsoft.Json.JsonConverter"/>.
2890 </summary>
2891 </member>
2892 <member name="T:Newtonsoft.Json.JsonConvert">
2893 <summary>
2894 Provides methods for converting between common language runtime types and JSON types.
2895 </summary>
2896 </member>
2897 <member name="F:Newtonsoft.Json.JsonConvert.True">
2898 <summary>
2899 Represents JavaScript's boolean value true as a string. This field is read-only.
2900 </summary>
2901 </member>
2902 <member name="F:Newtonsoft.Json.JsonConvert.False">
2903 <summary>
2904 Represents JavaScript's boolean value false as a string. This field is read-only.
2905 </summary>
2906 </member>
2907 <member name="F:Newtonsoft.Json.JsonConvert.Null">
2908 <summary>
2909 Represents JavaScript's null as a string. This field is read-only.
2910 </summary>
2911 </member>
2912 <member name="F:Newtonsoft.Json.JsonConvert.Undefined">
2913 <summary>
2914 Represents JavaScript's undefined as a string. This field is read-only.
2915 </summary>
2916 </member>
2917 <member name="F:Newtonsoft.Json.JsonConvert.PositiveInfinity">
2918 <summary>
2919 Represents JavaScript's positive infinity as a string. This field is read-only.
2920 </summary>
2921 </member>
2922 <member name="F:Newtonsoft.Json.JsonConvert.NegativeInfinity">
2923 <summary>
2924 Represents JavaScript's negative infinity as a string. This field is read-only.
2925 </summary>
2926 </member>
2927 <member name="F:Newtonsoft.Json.JsonConvert.NaN">
2928 <summary>
2929 Represents JavaScript's NaN as a string. This field is read-only.
2930 </summary>
2931 </member>
2932 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.DateTime)">
2933 <summary>
2934 Converts the <see cref="T:System.DateTime"/> to its JSON string representation.
2935 </summary>
2936 <param name="value">The value to convert.</param>
2937 <returns>A JSON string representation of the <see cref="T:System.DateTime"/>.</returns>
2938 </member>
2939 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Boolean)">
2940 <summary>
2941 Converts the <see cref="T:System.Boolean"/> to its JSON string representation.
2942 </summary>
2943 <param name="value">The value to convert.</param>
2944 <returns>A JSON string representation of the <see cref="T:System.Boolean"/>.</returns>
2945 </member>
2946 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Char)">
2947 <summary>
2948 Converts the <see cref="T:System.Char"/> to its JSON string representation.
2949 </summary>
2950 <param name="value">The value to convert.</param>
2951 <returns>A JSON string representation of the <see cref="T:System.Char"/>.</returns>
2952 </member>
2953 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Enum)">
2954 <summary>
2955 Converts the <see cref="T:System.Enum"/> to its JSON string representation.
2956 </summary>
2957 <param name="value">The value to convert.</param>
2958 <returns>A JSON string representation of the <see cref="T:System.Enum"/>.</returns>
2959 </member>
2960 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Int32)">
2961 <summary>
2962 Converts the <see cref="T:System.Int32"/> to its JSON string representation.
2963 </summary>
2964 <param name="value">The value to convert.</param>
2965 <returns>A JSON string representation of the <see cref="T:System.Int32"/>.</returns>
2966 </member>
2967 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Int16)">
2968 <summary>
2969 Converts the <see cref="T:System.Int16"/> to its JSON string representation.
2970 </summary>
2971 <param name="value">The value to convert.</param>
2972 <returns>A JSON string representation of the <see cref="T:System.Int16"/>.</returns>
2973 </member>
2974 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.UInt16)">
2975 <summary>
2976 Converts the <see cref="T:System.UInt16"/> to its JSON string representation.
2977 </summary>
2978 <param name="value">The value to convert.</param>
2979 <returns>A JSON string representation of the <see cref="T:System.UInt16"/>.</returns>
2980 </member>
2981 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.UInt32)">
2982 <summary>
2983 Converts the <see cref="T:System.UInt32"/> to its JSON string representation.
2984 </summary>
2985 <param name="value">The value to convert.</param>
2986 <returns>A JSON string representation of the <see cref="T:System.UInt32"/>.</returns>
2987 </member>
2988 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Int64)">
2989 <summary>
2990 Converts the <see cref="T:System.Int64"/> to its JSON string representation.
2991 </summary>
2992 <param name="value">The value to convert.</param>
2993 <returns>A JSON string representation of the <see cref="T:System.Int64"/>.</returns>
2994 </member>
2995 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.UInt64)">
2996 <summary>
2997 Converts the <see cref="T:System.UInt64"/> to its JSON string representation.
2998 </summary>
2999 <param name="value">The value to convert.</param>
3000 <returns>A JSON string representation of the <see cref="T:System.UInt64"/>.</returns>
3001 </member>
3002 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Single)">
3003 <summary>
3004 Converts the <see cref="T:System.Single"/> to its JSON string representation.
3005 </summary>
3006 <param name="value">The value to convert.</param>
3007 <returns>A JSON string representation of the <see cref="T:System.Single"/>.</returns>
3008 </member>
3009 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Double)">
3010 <summary>
3011 Converts the <see cref="T:System.Double"/> to its JSON string representation.
3012 </summary>
3013 <param name="value">The value to convert.</param>
3014 <returns>A JSON string representation of the <see cref="T:System.Double"/>.</returns>
3015 </member>
3016 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Byte)">
3017 <summary>
3018 Converts the <see cref="T:System.Byte"/> to its JSON string representation.
3019 </summary>
3020 <param name="value">The value to convert.</param>
3021 <returns>A JSON string representation of the <see cref="T:System.Byte"/>.</returns>
3022 </member>
3023 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.SByte)">
3024 <summary>
3025 Converts the <see cref="T:System.SByte"/> to its JSON string representation.
3026 </summary>
3027 <param name="value">The value to convert.</param>
3028 <returns>A JSON string representation of the <see cref="T:System.SByte"/>.</returns>
3029 </member>
3030 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Decimal)">
3031 <summary>
3032 Converts the <see cref="T:System.Decimal"/> to its JSON string representation.
3033 </summary>
3034 <param name="value">The value to convert.</param>
3035 <returns>A JSON string representation of the <see cref="T:System.SByte"/>.</returns>
3036 </member>
3037 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Guid)">
3038 <summary>
3039 Converts the <see cref="T:System.Guid"/> to its JSON string representation.
3040 </summary>
3041 <param name="value">The value to convert.</param>
3042 <returns>A JSON string representation of the <see cref="T:System.Guid"/>.</returns>
3043 </member>
3044 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.String)">
3045 <summary>
3046 Converts the <see cref="T:System.String"/> to its JSON string representation.
3047 </summary>
3048 <param name="value">The value to convert.</param>
3049 <returns>A JSON string representation of the <see cref="T:System.String"/>.</returns>
3050 </member>
3051 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.String,System.Char)">
3052 <summary>
3053 Converts the <see cref="T:System.String"/> to its JSON string representation.
3054 </summary>
3055 <param name="value">The value to convert.</param>
3056 <param name="delimter">The string delimiter character.</param>
3057 <returns>A JSON string representation of the <see cref="T:System.String"/>.</returns>
3058 </member>
3059 <member name="M:Newtonsoft.Json.JsonConvert.ToString(System.Object)">
3060 <summary>
3061 Converts the <see cref="T:System.Object"/> to its JSON string representation.
3062 </summary>
3063 <param name="value">The value to convert.</param>
3064 <returns>A JSON string representation of the <see cref="T:System.Object"/>.</returns>
3065 </member>
3066 <member name="M:Newtonsoft.Json.JsonConvert.SerializeObject(System.Object)">
3067 <summary>
3068 Serializes the specified object to a JSON string.
3069 </summary>
3070 <param name="value">The object to serialize.</param>
3071 <returns>A JSON string representation of the object.</returns>
3072 </member>
3073 <member name="M:Newtonsoft.Json.JsonConvert.SerializeObject(System.Object,Newtonsoft.Json.Formatting)">
3074 <summary>
3075 Serializes the specified object to a JSON string.
3076 </summary>
3077 <param name="value">The object to serialize.</param>
3078 <param name="formatting">Indicates how the output is formatted.</param>
3079 <returns>
3080 A JSON string representation of the object.
3081 </returns>
3082 </member>
3083 <member name="M:Newtonsoft.Json.JsonConvert.SerializeObject(System.Object,Newtonsoft.Json.JsonConverter[])">
3084 <summary>
3085 Serializes the specified object to a JSON string using a collection of <see cref="T:Newtonsoft.Json.JsonConverter"/>.
3086 </summary>
3087 <param name="value">The object to serialize.</param>
3088 <param name="converters">A collection converters used while serializing.</param>
3089 <returns>A JSON string representation of the object.</returns>
3090 </member>
3091 <member name="M:Newtonsoft.Json.JsonConvert.SerializeObject(System.Object,Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonConverter[])">
3092 <summary>
3093 Serializes the specified object to a JSON string using a collection of <see cref="T:Newtonsoft.Json.JsonConverter"/>.
3094 </summary>
3095 <param name="value">The object to serialize.</param>
3096 <param name="formatting">Indicates how the output is formatted.</param>
3097 <param name="converters">A collection converters used while serializing.</param>
3098 <returns>A JSON string representation of the object.</returns>
3099 </member>
3100 <member name="M:Newtonsoft.Json.JsonConvert.SerializeObject(System.Object,Newtonsoft.Json.Formatting,Newtonsoft.Json.JsonSerializerSettings)">
3101 <summary>
3102 Serializes the specified object to a JSON string using a collection of <see cref="T:Newtonsoft.Json.JsonConverter"/>.
3103 </summary>
3104 <param name="value">The object to serialize.</param>
3105 <param name="formatting">Indicates how the output is formatted.</param>
3106 <param name="settings">The <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/> used to serialize the object.
3107 If this is null, default serialization settings will be is used.</param>
3108 <returns>
3109 A JSON string representation of the object.
3110 </returns>
3111 </member>
3112 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeObject(System.String)">
3113 <summary>
3114 Deserializes the specified object to a Json object.
3115 </summary>
3116 <param name="value">The object to deserialize.</param>
3117 <returns>The deserialized object from the Json string.</returns>
3118 </member>
3119 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeObject(System.String,System.Type)">
3120 <summary>
3121 Deserializes the specified object to a Json object.
3122 </summary>
3123 <param name="value">The object to deserialize.</param>
3124 <param name="type">The <see cref="T:System.Type"/> of object being deserialized.</param>
3125 <returns>The deserialized object from the Json string.</returns>
3126 </member>
3127 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeObject``1(System.String)">
3128 <summary>
3129 Deserializes the specified object to a Json object.
3130 </summary>
3131 <typeparam name="T">The type of the object to deserialize.</typeparam>
3132 <param name="value">The object to deserialize.</param>
3133 <returns>The deserialized object from the Json string.</returns>
3134 </member>
3135 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeAnonymousType``1(System.String,``0)">
3136 <summary>
3137 Deserializes the specified JSON to the given anonymous type.
3138 </summary>
3139 <typeparam name="T">
3140 The anonymous type to deserialize to. This can't be specified
3141 traditionally and must be infered from the anonymous type passed
3142 as a parameter.
3143 </typeparam>
3144 <param name="value">The object to deserialize.</param>
3145 <param name="anonymousTypeObject">The anonymous type object.</param>
3146 <returns>The deserialized anonymous type from the JSON string.</returns>
3147 </member>
3148 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeObject``1(System.String,Newtonsoft.Json.JsonConverter[])">
3149 <summary>
3150 Deserializes the JSON string to the specified type.
3151 </summary>
3152 <typeparam name="T">The type of the object to deserialize.</typeparam>
3153 <param name="value">The object to deserialize.</param>
3154 <param name="converters">Converters to use while deserializing.</param>
3155 <returns>The deserialized object from the JSON string.</returns>
3156 </member>
3157 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeObject``1(System.String,Newtonsoft.Json.JsonSerializerSettings)">
3158 <summary>
3159 Deserializes the JSON string to the specified type.
3160 </summary>
3161 <typeparam name="T">The type of the object to deserialize.</typeparam>
3162 <param name="value">The object to deserialize.</param>
3163 <param name="settings">
3164 The <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/> used to deserialize the object.
3165 If this is null, default serialization settings will be is used.
3166 </param>
3167 <returns>The deserialized object from the JSON string.</returns>
3168 </member>
3169 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeObject(System.String,System.Type,Newtonsoft.Json.JsonConverter[])">
3170 <summary>
3171 Deserializes the JSON string to the specified type.
3172 </summary>
3173 <param name="value">The object to deserialize.</param>
3174 <param name="type">The type of the object to deserialize.</param>
3175 <param name="converters">Converters to use while deserializing.</param>
3176 <returns>The deserialized object from the JSON string.</returns>
3177 </member>
3178 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeObject(System.String,System.Type,Newtonsoft.Json.JsonSerializerSettings)">
3179 <summary>
3180 Deserializes the JSON string to the specified type.
3181 </summary>
3182 <param name="value">The JSON to deserialize.</param>
3183 <param name="type">The type of the object to deserialize.</param>
3184 <param name="settings">
3185 The <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/> used to deserialize the object.
3186 If this is null, default serialization settings will be is used.
3187 </param>
3188 <returns>The deserialized object from the JSON string.</returns>
3189 </member>
3190 <member name="M:Newtonsoft.Json.JsonConvert.PopulateObject(System.String,System.Object)">
3191 <summary>
3192 Populates the object with values from the JSON string.
3193 </summary>
3194 <param name="value">The JSON to populate values from.</param>
3195 <param name="target">The target object to populate values onto.</param>
3196 </member>
3197 <member name="M:Newtonsoft.Json.JsonConvert.PopulateObject(System.String,System.Object,Newtonsoft.Json.JsonSerializerSettings)">
3198 <summary>
3199 Populates the object with values from the JSON string.
3200 </summary>
3201 <param name="value">The JSON to populate values from.</param>
3202 <param name="target">The target object to populate values onto.</param>
3203 <param name="settings">
3204 The <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/> used to deserialize the object.
3205 If this is null, default serialization settings will be is used.
3206 </param>
3207 </member>
3208 <member name="M:Newtonsoft.Json.JsonConvert.SerializeXmlNode(System.Xml.XmlNode)">
3209 <summary>
3210 Serializes the XML node to a JSON string.
3211 </summary>
3212 <param name="node">The node to serialize.</param>
3213 <returns>A JSON string of the XmlNode.</returns>
3214 </member>
3215 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeXmlNode(System.String)">
3216 <summary>
3217 Deserializes the XmlNode from a JSON string.
3218 </summary>
3219 <param name="value">The JSON string.</param>
3220 <returns>The deserialized XmlNode</returns>
3221 </member>
3222 <member name="M:Newtonsoft.Json.JsonConvert.DeserializeXmlNode(System.String,System.String)">
3223 <summary>
3224 Deserializes the XmlNode from a JSON string nested in a root elment.
3225 </summary>
3226 <param name="value">The JSON string.</param>
3227 <param name="deserializeRootElementName">The name of the root element to append when deserializing.</param>
3228 <returns>The deserialized XmlNode</returns>
3229 </member>
3230 <member name="T:Newtonsoft.Json.JsonSerializationException">
3231 <summary>
3232 The exception thrown when an error occurs during Json serialization or deserialization.
3233 </summary>
3234 </member>
3235 <member name="M:Newtonsoft.Json.JsonSerializationException.#ctor">
3236 <summary>
3237 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonSerializationException"/> class.
3238 </summary>
3239 </member>
3240 <member name="M:Newtonsoft.Json.JsonSerializationException.#ctor(System.String)">
3241 <summary>
3242 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonSerializationException"/> class
3243 with a specified error message.
3244 </summary>
3245 <param name="message">The error message that explains the reason for the exception.</param>
3246 </member>
3247 <member name="M:Newtonsoft.Json.JsonSerializationException.#ctor(System.String,System.Exception)">
3248 <summary>
3249 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonSerializationException"/> class
3250 with a specified error message and a reference to the inner exception that is the cause of this exception.
3251 </summary>
3252 <param name="message">The error message that explains the reason for the exception.</param>
3253 <param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
3254 </member>
3255 <member name="T:Newtonsoft.Json.JsonSerializer">
3256 <summary>
3257 Serializes and deserializes objects into and from the JSON format.
3258 The <see cref="T:Newtonsoft.Json.JsonSerializer"/> enables you to control how objects are encoded into JSON.
3259 </summary>
3260 </member>
3261 <member name="M:Newtonsoft.Json.JsonSerializer.#ctor">
3262 <summary>
3263 Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonSerializer"/> class.
3264 </summary>
3265 </member>
3266 <member name="M:Newtonsoft.Json.JsonSerializer.Create(Newtonsoft.Json.JsonSerializerSettings)">
3267 <summary>
3268 Creates a new <see cref="T:Newtonsoft.Json.JsonSerializer"/> instance using the specified <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/>.
3269 </summary>
3270 <param name="settings">The settings to be applied to the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.</param>
3271 <returns>A new <see cref="T:Newtonsoft.Json.JsonSerializer"/> instance using the specified <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/>.</returns>
3272 </member>
3273 <member name="M:Newtonsoft.Json.JsonSerializer.Populate(System.IO.TextReader,System.Object)">
3274 <summary>
3275 Populates the JSON values onto the target object.
3276 </summary>
3277 <param name="reader">The <see cref="T:System.IO.TextReader"/> that contains the JSON structure to reader values from.</param>
3278 <param name="target">The target object to populate values onto.</param>
3279 </member>
3280 <member name="M:Newtonsoft.Json.JsonSerializer.Populate(Newtonsoft.Json.JsonReader,System.Object)">
3281 <summary>
3282 Populates the JSON values onto the target object.
3283 </summary>
3284 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> that contains the JSON structure to reader values from.</param>
3285 <param name="target">The target object to populate values onto.</param>
3286 </member>
3287 <member name="M:Newtonsoft.Json.JsonSerializer.Deserialize(Newtonsoft.Json.JsonReader)">
3288 <summary>
3289 Deserializes the Json structure contained by the specified <see cref="T:Newtonsoft.Json.JsonReader"/>.
3290 </summary>
3291 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> that contains the JSON structure to deserialize.</param>
3292 <returns>The <see cref="T:System.Object"/> being deserialized.</returns>
3293 </member>
3294 <member name="M:Newtonsoft.Json.JsonSerializer.Deserialize(System.IO.TextReader,System.Type)">
3295 <summary>
3296 Deserializes the Json structure contained by the specified <see cref="T:System.IO.StringReader"/>
3297 into an instance of the specified type.
3298 </summary>
3299 <param name="reader">The <see cref="T:System.IO.TextReader"/> containing the object.</param>
3300 <param name="objectType">The <see cref="T:System.Type"/> of object being deserialized.</param>
3301 <returns>The instance of <paramref name="objectType"/> being deserialized.</returns>
3302 </member>
3303 <member name="M:Newtonsoft.Json.JsonSerializer.Deserialize``1(Newtonsoft.Json.JsonReader)">
3304 <summary>
3305 Deserializes the Json structure contained by the specified <see cref="T:Newtonsoft.Json.JsonReader"/>
3306 into an instance of the specified type.
3307 </summary>
3308 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> containing the object.</param>
3309 <typeparam name="T">The type of the object to deserialize.</typeparam>
3310 <returns>The instance of <typeparamref name="T"/> being deserialized.</returns>
3311 </member>
3312 <member name="M:Newtonsoft.Json.JsonSerializer.Deserialize(Newtonsoft.Json.JsonReader,System.Type)">
3313 <summary>
3314 Deserializes the Json structure contained by the specified <see cref="T:Newtonsoft.Json.JsonReader"/>
3315 into an instance of the specified type.
3316 </summary>
3317 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> containing the object.</param>
3318 <param name="objectType">The <see cref="T:System.Type"/> of object being deserialized.</param>
3319 <returns>The instance of <paramref name="objectType"/> being deserialized.</returns>
3320 </member>
3321 <member name="M:Newtonsoft.Json.JsonSerializer.Serialize(System.IO.TextWriter,System.Object)">
3322 <summary>
3323 Serializes the specified <see cref="T:System.Object"/> and writes the Json structure
3324 to a <c>Stream</c> using the specified <see cref="T:System.IO.TextWriter"/>.
3325 </summary>
3326 <param name="textWriter">The <see cref="T:System.IO.TextWriter"/> used to write the Json structure.</param>
3327 <param name="value">The <see cref="T:System.Object"/> to serialize.</param>
3328 </member>
3329 <member name="M:Newtonsoft.Json.JsonSerializer.Serialize(Newtonsoft.Json.JsonWriter,System.Object)">
3330 <summary>
3331 Serializes the specified <see cref="T:System.Object"/> and writes the Json structure
3332 to a <c>Stream</c> using the specified <see cref="T:Newtonsoft.Json.JsonWriter"/>.
3333 </summary>
3334 <param name="jsonWriter">The <see cref="T:Newtonsoft.Json.JsonWriter"/> used to write the Json structure.</param>
3335 <param name="value">The <see cref="T:System.Object"/> to serialize.</param>
3336 </member>
3337 <member name="E:Newtonsoft.Json.JsonSerializer.Error">
3338 <summary>
3339 Occurs when the <see cref="T:Newtonsoft.Json.JsonSerializer"/> errors during serialization and deserialization.
3340 </summary>
3341 </member>
3342 <member name="P:Newtonsoft.Json.JsonSerializer.ReferenceResolver">
3343 <summary>
3344 Gets or sets the <see cref="T:Newtonsoft.Json.Serialization.IReferenceResolver"/> used by the serializer when resolving references.
3345 </summary>
3346 </member>
3347 <member name="P:Newtonsoft.Json.JsonSerializer.Binder">
3348 <summary>
3349 Gets or sets the <see cref="T:System.Runtime.Serialization.SerializationBinder"/> used by the serializer when resolving type names.
3350 </summary>
3351 </member>
3352 <member name="P:Newtonsoft.Json.JsonSerializer.TypeNameHandling">
3353 <summary>
3354 Gets or sets how type name writing and reading is handled by the serializer.
3355 </summary>
3356 </member>
3357 <member name="P:Newtonsoft.Json.JsonSerializer.PreserveReferencesHandling">
3358 <summary>
3359 Gets or sets how object references are preserved by the serializer.
3360 </summary>
3361 </member>
3362 <member name="P:Newtonsoft.Json.JsonSerializer.ReferenceLoopHandling">
3363 <summary>
3364 Get or set how reference loops (e.g. a class referencing itself) is handled.
3365 </summary>
3366 </member>
3367 <member name="P:Newtonsoft.Json.JsonSerializer.MissingMemberHandling">
3368 <summary>
3369 Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
3370 </summary>
3371 </member>
3372 <member name="P:Newtonsoft.Json.JsonSerializer.NullValueHandling">
3373 <summary>
3374 Get or set how null values are handled during serialization and deserialization.
3375 </summary>
3376 </member>
3377 <member name="P:Newtonsoft.Json.JsonSerializer.DefaultValueHandling">
3378 <summary>
3379 Get or set how null default are handled during serialization and deserialization.
3380 </summary>
3381 </member>
3382 <member name="P:Newtonsoft.Json.JsonSerializer.ObjectCreationHandling">
3383 <summary>
3384 Gets or sets how objects are created during deserialization.
3385 </summary>
3386 <value>The object creation handling.</value>
3387 </member>
3388 <member name="P:Newtonsoft.Json.JsonSerializer.ConstructorHandling">
3389 <summary>
3390 Gets or sets how constructors are used during deserialization.
3391 </summary>
3392 <value>The constructor handling.</value>
3393 </member>
3394 <member name="P:Newtonsoft.Json.JsonSerializer.Converters">
3395 <summary>
3396 Gets a collection <see cref="T:Newtonsoft.Json.JsonConverter"/> that will be used during serialization.
3397 </summary>
3398 <value>Collection <see cref="T:Newtonsoft.Json.JsonConverter"/> that will be used during serialization.</value>
3399 </member>
3400 <member name="P:Newtonsoft.Json.JsonSerializer.ContractResolver">
3401 <summary>
3402 Gets or sets the contract resolver used by the serializer when
3403 serializing .NET objects to JSON and vice versa.
3404 </summary>
3405 </member>
3406 <member name="P:Newtonsoft.Json.JsonSerializer.Context">
3407 <summary>
3408 Gets or sets the <see cref="T:System.Runtime.Serialization.StreamingContext"/> used by the serializer when invoking serialization callback methods.
3409 </summary>
3410 <value>The context.</value>
3411 </member>
3412 <member name="T:Newtonsoft.Json.Linq.Extensions">
3413 <summary>
3414 Contains the LINQ to JSON extension methods.
3415 </summary>
3416 </member>
3417 <member name="M:Newtonsoft.Json.Linq.Extensions.Ancestors``1(System.Collections.Generic.IEnumerable{``0})">
3418 <summary>
3419 Returns a collection of tokens that contains the ancestors of every token in the source collection.
3420 </summary>
3421 <typeparam name="T">The type of the objects in source, constrained to <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</typeparam>
3422 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3423 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the ancestors of every node in the source collection.</returns>
3424 </member>
3425 <member name="M:Newtonsoft.Json.Linq.Extensions.Descendants``1(System.Collections.Generic.IEnumerable{``0})">
3426 <summary>
3427 Returns a collection of tokens that contains the descendants of every token in the source collection.
3428 </summary>
3429 <typeparam name="T">The type of the objects in source, constrained to <see cref="T:Newtonsoft.Json.Linq.JContainer"/>.</typeparam>
3430 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3431 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the descendants of every node in the source collection.</returns>
3432 </member>
3433 <member name="M:Newtonsoft.Json.Linq.Extensions.Properties(System.Collections.Generic.IEnumerable{Newtonsoft.Json.Linq.JObject})">
3434 <summary>
3435 Returns a collection of child properties of every object in the source collection.
3436 </summary>
3437 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JObject"/> that contains the source collection.</param>
3438 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JProperty"/> that contains the properties of every object in the source collection.</returns>
3439 </member>
3440 <member name="M:Newtonsoft.Json.Linq.Extensions.Values(System.Collections.Generic.IEnumerable{Newtonsoft.Json.Linq.JToken},System.Object)">
3441 <summary>
3442 Returns a collection of child values of every object in the source collection with the given key.
3443 </summary>
3444 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3445 <param name="key">The token key.</param>
3446 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the values of every node in the source collection with the given key.</returns>
3447 </member>
3448 <member name="M:Newtonsoft.Json.Linq.Extensions.Values(System.Collections.Generic.IEnumerable{Newtonsoft.Json.Linq.JToken})">
3449 <summary>
3450 Returns a collection of child values of every object in the source collection.
3451 </summary>
3452 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3453 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the values of every node in the source collection.</returns>
3454 </member>
3455 <member name="M:Newtonsoft.Json.Linq.Extensions.Values``1(System.Collections.Generic.IEnumerable{Newtonsoft.Json.Linq.JToken},System.Object)">
3456 <summary>
3457 Returns a collection of converted child values of every object in the source collection with the given key.
3458 </summary>
3459 <typeparam name="U">The type to convert the values to.</typeparam>
3460 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3461 <param name="key">The token key.</param>
3462 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains the converted values of every node in the source collection with the given key.</returns>
3463 </member>
3464 <member name="M:Newtonsoft.Json.Linq.Extensions.Values``1(System.Collections.Generic.IEnumerable{Newtonsoft.Json.Linq.JToken})">
3465 <summary>
3466 Returns a collection of converted child values of every object in the source collection.
3467 </summary>
3468 <typeparam name="U">The type to convert the values to.</typeparam>
3469 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3470 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains the converted values of every node in the source collection.</returns>
3471 </member>
3472 <member name="M:Newtonsoft.Json.Linq.Extensions.Value``1(System.Collections.Generic.IEnumerable{Newtonsoft.Json.Linq.JToken})">
3473 <summary>
3474 Converts the value.
3475 </summary>
3476 <typeparam name="U">The type to convert the value to.</typeparam>
3477 <param name="value">A <see cref="T:Newtonsoft.Json.Linq.JToken"/> cast as a <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</param>
3478 <returns>A converted value.</returns>
3479 </member>
3480 <member name="M:Newtonsoft.Json.Linq.Extensions.Value``2(System.Collections.Generic.IEnumerable{``0})">
3481 <summary>
3482 Converts the value.
3483 </summary>
3484 <typeparam name="T">The source collection type.</typeparam>
3485 <typeparam name="U">The type to convert the value to.</typeparam>
3486 <param name="value">A <see cref="T:Newtonsoft.Json.Linq.JToken"/> cast as a <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</param>
3487 <returns>A converted value.</returns>
3488 </member>
3489 <member name="M:Newtonsoft.Json.Linq.Extensions.Children``1(System.Collections.Generic.IEnumerable{``0})">
3490 <summary>
3491 Returns a collection of child tokens of every array in the source collection.
3492 </summary>
3493 <typeparam name="T">The source collection type.</typeparam>
3494 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3495 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the values of every node in the source collection.</returns>
3496 </member>
3497 <member name="M:Newtonsoft.Json.Linq.Extensions.Children``2(System.Collections.Generic.IEnumerable{``0})">
3498 <summary>
3499 Returns a collection of converted child tokens of every array in the source collection.
3500 </summary>
3501 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3502 <typeparam name="U">The type to convert the values to.</typeparam>
3503 <typeparam name="T">The source collection type.</typeparam>
3504 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> that contains the converted values of every node in the source collection.</returns>
3505 </member>
3506 <member name="M:Newtonsoft.Json.Linq.Extensions.AsJEnumerable(System.Collections.Generic.IEnumerable{Newtonsoft.Json.Linq.JToken})">
3507 <summary>
3508 Returns the input typed as <see cref="T:Newtonsoft.Json.Linq.IJEnumerable`1"/>.
3509 </summary>
3510 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3511 <returns>The input typed as <see cref="T:Newtonsoft.Json.Linq.IJEnumerable`1"/>.</returns>
3512 </member>
3513 <member name="M:Newtonsoft.Json.Linq.Extensions.AsJEnumerable``1(System.Collections.Generic.IEnumerable{``0})">
3514 <summary>
3515 Returns the input typed as <see cref="T:Newtonsoft.Json.Linq.IJEnumerable`1"/>.
3516 </summary>
3517 <typeparam name="T">The source collection type.</typeparam>
3518 <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> that contains the source collection.</param>
3519 <returns>The input typed as <see cref="T:Newtonsoft.Json.Linq.IJEnumerable`1"/>.</returns>
3520 </member>
3521 <member name="T:Newtonsoft.Json.Linq.JConstructor">
3522 <summary>
3523 Represents a JSON constructor.
3524 </summary>
3525 </member>
3526 <member name="T:Newtonsoft.Json.Linq.JContainer">
3527 <summary>
3528 Represents a token that can contain other tokens.
3529 </summary>
3530 </member>
3531 <member name="M:Newtonsoft.Json.Linq.JContainer.OnAddingNew(System.ComponentModel.AddingNewEventArgs)">
3532 <summary>
3533 Raises the <see cref="E:Newtonsoft.Json.Linq.JContainer.AddingNew"/> event.
3534 </summary>
3535 <param name="e">The <see cref="T:System.ComponentModel.AddingNewEventArgs"/> instance containing the event data.</param>
3536 </member>
3537 <member name="M:Newtonsoft.Json.Linq.JContainer.OnListChanged(System.ComponentModel.ListChangedEventArgs)">
3538 <summary>
3539 Raises the <see cref="E:Newtonsoft.Json.Linq.JContainer.ListChanged"/> event.
3540 </summary>
3541 <param name="e">The <see cref="T:System.ComponentModel.ListChangedEventArgs"/> instance containing the event data.</param>
3542 </member>
3543 <member name="M:Newtonsoft.Json.Linq.JContainer.Children">
3544 <summary>
3545 Returns a collection of the child tokens of this token, in document order.
3546 </summary>
3547 <returns>
3548 An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> containing the child tokens of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>, in document order.
3549 </returns>
3550 </member>
3551 <member name="M:Newtonsoft.Json.Linq.JContainer.Values``1">
3552 <summary>
3553 Returns a collection of the child values of this token, in document order.
3554 </summary>
3555 <typeparam name="T">The type to convert the values to.</typeparam>
3556 <returns>
3557 A <see cref="T:System.Collections.Generic.IEnumerable`1"/> containing the child values of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>, in document order.
3558 </returns>
3559 </member>
3560 <member name="M:Newtonsoft.Json.Linq.JContainer.Descendants">
3561 <summary>
3562 Returns a collection of the descendant tokens for this token in document order.
3563 </summary>
3564 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> containing the descendant tokens of the <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</returns>
3565 </member>
3566 <member name="M:Newtonsoft.Json.Linq.JContainer.Add(System.Object)">
3567 <summary>
3568 Adds the specified content as children of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
3569 </summary>
3570 <param name="content">The content to be added.</param>
3571 </member>
3572 <member name="M:Newtonsoft.Json.Linq.JContainer.AddFirst(System.Object)">
3573 <summary>
3574 Adds the specified content as the first children of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
3575 </summary>
3576 <param name="content">The content to be added.</param>
3577 </member>
3578 <member name="M:Newtonsoft.Json.Linq.JContainer.CreateWriter">
3579 <summary>
3580 Creates an <see cref="T:Newtonsoft.Json.JsonWriter"/> that can be used to add tokens to the <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
3581 </summary>
3582 <returns>An <see cref="T:Newtonsoft.Json.JsonWriter"/> that is ready to have content written to it.</returns>
3583 </member>
3584 <member name="M:Newtonsoft.Json.Linq.JContainer.ReplaceAll(System.Object)">
3585 <summary>
3586 Replaces the children nodes of this token with the specified content.
3587 </summary>
3588 <param name="content">The content.</param>
3589 </member>
3590 <member name="M:Newtonsoft.Json.Linq.JContainer.RemoveAll">
3591 <summary>
3592 Removes the child nodes from this token.
3593 </summary>
3594 </member>
3595 <member name="E:Newtonsoft.Json.Linq.JContainer.ListChanged">
3596 <summary>
3597 Occurs when the list changes or an item in the list changes.
3598 </summary>
3599 </member>
3600 <member name="E:Newtonsoft.Json.Linq.JContainer.AddingNew">
3601 <summary>
3602 Occurs before an item is added to the collection.
3603 </summary>
3604 </member>
3605 <member name="P:Newtonsoft.Json.Linq.JContainer.HasValues">
3606 <summary>
3607 Gets a value indicating whether this token has childen tokens.
3608 </summary>
3609 <value>
3610 <c>true</c> if this token has child values; otherwise, <c>false</c>.
3611 </value>
3612 </member>
3613 <member name="P:Newtonsoft.Json.Linq.JContainer.First">
3614 <summary>
3615 Get the first child token of this token.
3616 </summary>
3617 <value>
3618 A <see cref="T:Newtonsoft.Json.Linq.JToken"/> containing the first child token of the <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
3619 </value>
3620 </member>
3621 <member name="P:Newtonsoft.Json.Linq.JContainer.Last">
3622 <summary>
3623 Get the last child token of this token.
3624 </summary>
3625 <value>
3626 A <see cref="T:Newtonsoft.Json.Linq.JToken"/> containing the last child token of the <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
3627 </value>
3628 </member>
3629 <member name="M:Newtonsoft.Json.Linq.JConstructor.#ctor">
3630 <summary>
3631 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JConstructor"/> class.
3632 </summary>
3633 </member>
3634 <member name="M:Newtonsoft.Json.Linq.JConstructor.#ctor(Newtonsoft.Json.Linq.JConstructor)">
3635 <summary>
3636 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JConstructor"/> class from another <see cref="T:Newtonsoft.Json.Linq.JConstructor"/> object.
3637 </summary>
3638 <param name="other">A <see cref="T:Newtonsoft.Json.Linq.JConstructor"/> object to copy from.</param>
3639 </member>
3640 <member name="M:Newtonsoft.Json.Linq.JConstructor.#ctor(System.String,System.Object[])">
3641 <summary>
3642 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JConstructor"/> class with the specified name and content.
3643 </summary>
3644 <param name="name">The constructor name.</param>
3645 <param name="content">The contents of the constructor.</param>
3646 </member>
3647 <member name="M:Newtonsoft.Json.Linq.JConstructor.#ctor(System.String,System.Object)">
3648 <summary>
3649 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JConstructor"/> class with the specified name and content.
3650 </summary>
3651 <param name="name">The constructor name.</param>
3652 <param name="content">The contents of the constructor.</param>
3653 </member>
3654 <member name="M:Newtonsoft.Json.Linq.JConstructor.#ctor(System.String)">
3655 <summary>
3656 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JConstructor"/> class with the specified name.
3657 </summary>
3658 <param name="name">The constructor name.</param>
3659 </member>
3660 <member name="M:Newtonsoft.Json.Linq.JConstructor.WriteTo(Newtonsoft.Json.JsonWriter,Newtonsoft.Json.JsonConverter[])">
3661 <summary>
3662 Writes this token to a <see cref="T:Newtonsoft.Json.JsonWriter"/>.
3663 </summary>
3664 <param name="writer">A <see cref="T:Newtonsoft.Json.JsonWriter"/> into which this method will write.</param>
3665 <param name="converters">A collection of <see cref="T:Newtonsoft.Json.JsonConverter"/> which will be used when writing the token.</param>
3666 </member>
3667 <member name="M:Newtonsoft.Json.Linq.JConstructor.Load(Newtonsoft.Json.JsonReader)">
3668 <summary>
3669 Loads an <see cref="T:Newtonsoft.Json.Linq.JConstructor"/> from a <see cref="T:Newtonsoft.Json.JsonReader"/>.
3670 </summary>
3671 <param name="reader">A <see cref="T:Newtonsoft.Json.JsonReader"/> that will be read for the content of the <see cref="T:Newtonsoft.Json.Linq.JConstructor"/>.</param>
3672 <returns>A <see cref="T:Newtonsoft.Json.Linq.JConstructor"/> that contains the JSON that was read from the specified <see cref="T:Newtonsoft.Json.JsonReader"/>.</returns>
3673 </member>
3674 <member name="P:Newtonsoft.Json.Linq.JConstructor.Name">
3675 <summary>
3676 Gets or sets the name of this constructor.
3677 </summary>
3678 <value>The constructor name.</value>
3679 </member>
3680 <member name="P:Newtonsoft.Json.Linq.JConstructor.Type">
3681 <summary>
3682 Gets the node type for this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
3683 </summary>
3684 <value>The type.</value>
3685 </member>
3686 <member name="P:Newtonsoft.Json.Linq.JConstructor.Item(System.Object)">
3687 <summary>
3688 Gets the <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified key.
3689 </summary>
3690 <value>The <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified key.</value>
3691 </member>
3692 <member name="T:Newtonsoft.Json.Linq.JEnumerable`1">
3693 <summary>
3694 Represents a collection of <see cref="T:Newtonsoft.Json.Linq.JToken"/> objects.
3695 </summary>
3696 <typeparam name="T">The type of token</typeparam>
3697 </member>
3698 <member name="F:Newtonsoft.Json.Linq.JEnumerable`1.Empty">
3699 <summary>
3700 An empty collection of <see cref="T:Newtonsoft.Json.Linq.JToken"/> objects.
3701 </summary>
3702 </member>
3703 <member name="M:Newtonsoft.Json.Linq.JEnumerable`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
3704 <summary>
3705 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JEnumerable`1"/> struct.
3706 </summary>
3707 <param name="enumerable">The enumerable.</param>
3708 </member>
3709 <member name="M:Newtonsoft.Json.Linq.JEnumerable`1.GetEnumerator">
3710 <summary>
3711 Returns an enumerator that iterates through the collection.
3712 </summary>
3713 <returns>
3714 A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
3715 </returns>
3716 </member>
3717 <member name="M:Newtonsoft.Json.Linq.JEnumerable`1.System#Collections#IEnumerable#GetEnumerator">
3718 <summary>
3719 Returns an enumerator that iterates through a collection.
3720 </summary>
3721 <returns>
3722 An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection.
3723 </returns>
3724 </member>
3725 <member name="M:Newtonsoft.Json.Linq.JEnumerable`1.Equals(System.Object)">
3726 <summary>
3727 Determines whether the specified <see cref="T:System.Object"/> is equal to this instance.
3728 </summary>
3729 <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
3730 <returns>
3731 <c>true</c> if the specified <see cref="T:System.Object"/> is equal to this instance; otherwise, <c>false</c>.
3732 </returns>
3733 </member>
3734 <member name="M:Newtonsoft.Json.Linq.JEnumerable`1.GetHashCode">
3735 <summary>
3736 Returns a hash code for this instance.
3737 </summary>
3738 <returns>
3739 A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
3740 </returns>
3741 </member>
3742 <member name="P:Newtonsoft.Json.Linq.JEnumerable`1.Item(System.Object)">
3743 <summary>
3744 Gets the <see cref="T:Newtonsoft.Json.Linq.IJEnumerable`1"/> with the specified key.
3745 </summary>
3746 <value></value>
3747 </member>
3748 <member name="T:Newtonsoft.Json.Linq.JObject">
3749 <summary>
3750 Represents a JSON object.
3751 </summary>
3752 </member>
3753 <member name="M:Newtonsoft.Json.Linq.JObject.#ctor">
3754 <summary>
3755 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JObject"/> class.
3756 </summary>
3757 </member>
3758 <member name="M:Newtonsoft.Json.Linq.JObject.#ctor(Newtonsoft.Json.Linq.JObject)">
3759 <summary>
3760 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JObject"/> class from another <see cref="T:Newtonsoft.Json.Linq.JObject"/> object.
3761 </summary>
3762 <param name="other">A <see cref="T:Newtonsoft.Json.Linq.JObject"/> object to copy from.</param>
3763 </member>
3764 <member name="M:Newtonsoft.Json.Linq.JObject.#ctor(System.Object[])">
3765 <summary>
3766 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JObject"/> class with the specified content.
3767 </summary>
3768 <param name="content">The contents of the object.</param>
3769 </member>
3770 <member name="M:Newtonsoft.Json.Linq.JObject.#ctor(System.Object)">
3771 <summary>
3772 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JObject"/> class with the specified content.
3773 </summary>
3774 <param name="content">The contents of the object.</param>
3775 </member>
3776 <member name="M:Newtonsoft.Json.Linq.JObject.Properties">
3777 <summary>
3778 Gets an <see cref="T:System.Collections.Generic.IEnumerable`1"/> of this object's properties.
3779 </summary>
3780 <returns>An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of this object's properties.</returns>
3781 </member>
3782 <member name="M:Newtonsoft.Json.Linq.JObject.Property(System.String)">
3783 <summary>
3784 Gets a <see cref="T:Newtonsoft.Json.Linq.JProperty"/> the specified name.
3785 </summary>
3786 <param name="name">The property name.</param>
3787 <returns>A <see cref="T:Newtonsoft.Json.Linq.JProperty"/> with the specified name or null.</returns>
3788 </member>
3789 <member name="M:Newtonsoft.Json.Linq.JObject.PropertyValues">
3790 <summary>
3791 Gets an <see cref="T:Newtonsoft.Json.Linq.JEnumerable`1"/> of this object's property values.
3792 </summary>
3793 <returns>An <see cref="T:Newtonsoft.Json.Linq.JEnumerable`1"/> of this object's property values.</returns>
3794 </member>
3795 <member name="M:Newtonsoft.Json.Linq.JObject.Load(Newtonsoft.Json.JsonReader)">
3796 <summary>
3797 Loads an <see cref="T:Newtonsoft.Json.Linq.JObject"/> from a <see cref="T:Newtonsoft.Json.JsonReader"/>.
3798 </summary>
3799 <param name="reader">A <see cref="T:Newtonsoft.Json.JsonReader"/> that will be read for the content of the <see cref="T:Newtonsoft.Json.Linq.JObject"/>.</param>
3800 <returns>A <see cref="T:Newtonsoft.Json.Linq.JObject"/> that contains the JSON that was read from the specified <see cref="T:Newtonsoft.Json.JsonReader"/>.</returns>
3801 </member>
3802 <member name="M:Newtonsoft.Json.Linq.JObject.Parse(System.String)">
3803 <summary>
3804 Load a <see cref="T:Newtonsoft.Json.Linq.JObject"/> from a string that contains JSON.
3805 </summary>
3806 <param name="json">A <see cref="T:System.String"/> that contains JSON.</param>
3807 <returns>A <see cref="T:Newtonsoft.Json.Linq.JObject"/> populated from the string that contains JSON.</returns>
3808 </member>
3809 <member name="M:Newtonsoft.Json.Linq.JObject.FromObject(System.Object)">
3810 <summary>
3811 Creates a <see cref="T:Newtonsoft.Json.Linq.JObject"/> from an object.
3812 </summary>
3813 <param name="o">The object that will be used to create <see cref="T:Newtonsoft.Json.Linq.JObject"/>.</param>
3814 <returns>A <see cref="T:Newtonsoft.Json.Linq.JObject"/> with the values of the specified object</returns>
3815 </member>
3816 <member name="M:Newtonsoft.Json.Linq.JObject.FromObject(System.Object,Newtonsoft.Json.JsonSerializer)">
3817 <summary>
3818 Creates a <see cref="T:Newtonsoft.Json.Linq.JArray"/> from an object.
3819 </summary>
3820 <param name="o">The object that will be used to create <see cref="T:Newtonsoft.Json.Linq.JArray"/>.</param>
3821 <param name="jsonSerializer">The <see cref="T:Newtonsoft.Json.JsonSerializer"/> that will be used to read the object.</param>
3822 <returns>A <see cref="T:Newtonsoft.Json.Linq.JArray"/> with the values of the specified object</returns>
3823 </member>
3824 <member name="M:Newtonsoft.Json.Linq.JObject.WriteTo(Newtonsoft.Json.JsonWriter,Newtonsoft.Json.JsonConverter[])">
3825 <summary>
3826 Writes this token to a <see cref="T:Newtonsoft.Json.JsonWriter"/>.
3827 </summary>
3828 <param name="writer">A <see cref="T:Newtonsoft.Json.JsonWriter"/> into which this method will write.</param>
3829 <param name="converters">A collection of <see cref="T:Newtonsoft.Json.JsonConverter"/> which will be used when writing the token.</param>
3830 </member>
3831 <member name="M:Newtonsoft.Json.Linq.JObject.Add(System.String,Newtonsoft.Json.Linq.JToken)">
3832 <summary>
3833 Adds the specified property name.
3834 </summary>
3835 <param name="propertyName">Name of the property.</param>
3836 <param name="value">The value.</param>
3837 </member>
3838 <member name="M:Newtonsoft.Json.Linq.JObject.Remove(System.String)">
3839 <summary>
3840 Removes the property with the specified name.
3841 </summary>
3842 <param name="propertyName">Name of the property.</param>
3843 <returns>true if item was successfully removed; otherwise, false.</returns>
3844 </member>
3845 <member name="M:Newtonsoft.Json.Linq.JObject.TryGetValue(System.String,Newtonsoft.Json.Linq.JToken@)">
3846 <summary>
3847 Tries the get value.
3848 </summary>
3849 <param name="propertyName">Name of the property.</param>
3850 <param name="value">The value.</param>
3851 <returns>true if a value was successfully retrieved; otherwise, false.</returns>
3852 </member>
3853 <member name="M:Newtonsoft.Json.Linq.JObject.GetEnumerator">
3854 <summary>
3855 Returns an enumerator that iterates through the collection.
3856 </summary>
3857 <returns>
3858 A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
3859 </returns>
3860 </member>
3861 <member name="M:Newtonsoft.Json.Linq.JObject.OnPropertyChanged(System.String)">
3862 <summary>
3863 Raises the <see cref="E:Newtonsoft.Json.Linq.JObject.PropertyChanged"/> event with the provided arguments.
3864 </summary>
3865 <param name="propertyName">Name of the property.</param>
3866 </member>
3867 <member name="E:Newtonsoft.Json.Linq.JObject.PropertyChanged">
3868 <summary>
3869 Occurs when a property value changes.
3870 </summary>
3871 </member>
3872 <member name="P:Newtonsoft.Json.Linq.JObject.Type">
3873 <summary>
3874 Gets the node type for this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
3875 </summary>
3876 <value>The type.</value>
3877 </member>
3878 <member name="P:Newtonsoft.Json.Linq.JObject.Item(System.Object)">
3879 <summary>
3880 Gets the <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified key.
3881 </summary>
3882 <value>The <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified key.</value>
3883 </member>
3884 <member name="P:Newtonsoft.Json.Linq.JObject.Item(System.String)">
3885 <summary>
3886 Gets or sets the <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified property name.
3887 </summary>
3888 <value></value>
3889 </member>
3890 <member name="P:Newtonsoft.Json.Linq.JObject.Count">
3891 <summary>
3892 Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
3893 </summary>
3894 <value></value>
3895 <returns>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</returns>
3896 </member>
3897 <member name="T:Newtonsoft.Json.Linq.JArray">
3898 <summary>
3899 Represents a JSON array.
3900 </summary>
3901 </member>
3902 <member name="M:Newtonsoft.Json.Linq.JArray.#ctor">
3903 <summary>
3904 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JArray"/> class.
3905 </summary>
3906 </member>
3907 <member name="M:Newtonsoft.Json.Linq.JArray.#ctor(Newtonsoft.Json.Linq.JArray)">
3908 <summary>
3909 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JArray"/> class from another <see cref="T:Newtonsoft.Json.Linq.JArray"/> object.
3910 </summary>
3911 <param name="other">A <see cref="T:Newtonsoft.Json.Linq.JArray"/> object to copy from.</param>
3912 </member>
3913 <member name="M:Newtonsoft.Json.Linq.JArray.#ctor(System.Object[])">
3914 <summary>
3915 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JArray"/> class with the specified content.
3916 </summary>
3917 <param name="content">The contents of the array.</param>
3918 </member>
3919 <member name="M:Newtonsoft.Json.Linq.JArray.#ctor(System.Object)">
3920 <summary>
3921 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JArray"/> class with the specified content.
3922 </summary>
3923 <param name="content">The contents of the array.</param>
3924 </member>
3925 <member name="M:Newtonsoft.Json.Linq.JArray.Load(Newtonsoft.Json.JsonReader)">
3926 <summary>
3927 Loads an <see cref="T:Newtonsoft.Json.Linq.JArray"/> from a <see cref="T:Newtonsoft.Json.JsonReader"/>.
3928 </summary>
3929 <param name="reader">A <see cref="T:Newtonsoft.Json.JsonReader"/> that will be read for the content of the <see cref="T:Newtonsoft.Json.Linq.JArray"/>.</param>
3930 <returns>A <see cref="T:Newtonsoft.Json.Linq.JArray"/> that contains the JSON that was read from the specified <see cref="T:Newtonsoft.Json.JsonReader"/>.</returns>
3931 </member>
3932 <member name="M:Newtonsoft.Json.Linq.JArray.Parse(System.String)">
3933 <summary>
3934 Load a <see cref="T:Newtonsoft.Json.Linq.JArray"/> from a string that contains JSON.
3935 </summary>
3936 <param name="json">A <see cref="T:System.String"/> that contains JSON.</param>
3937 <returns>A <see cref="T:Newtonsoft.Json.Linq.JArray"/> populated from the string that contains JSON.</returns>
3938 </member>
3939 <member name="M:Newtonsoft.Json.Linq.JArray.FromObject(System.Object)">
3940 <summary>
3941 Creates a <see cref="T:Newtonsoft.Json.Linq.JArray"/> from an object.
3942 </summary>
3943 <param name="o">The object that will be used to create <see cref="T:Newtonsoft.Json.Linq.JArray"/>.</param>
3944 <returns>A <see cref="T:Newtonsoft.Json.Linq.JArray"/> with the values of the specified object</returns>
3945 </member>
3946 <member name="M:Newtonsoft.Json.Linq.JArray.FromObject(System.Object,Newtonsoft.Json.JsonSerializer)">
3947 <summary>
3948 Creates a <see cref="T:Newtonsoft.Json.Linq.JArray"/> from an object.
3949 </summary>
3950 <param name="o">The object that will be used to create <see cref="T:Newtonsoft.Json.Linq.JArray"/>.</param>
3951 <param name="jsonSerializer">The <see cref="T:Newtonsoft.Json.JsonSerializer"/> that will be used to read the object.</param>
3952 <returns>A <see cref="T:Newtonsoft.Json.Linq.JArray"/> with the values of the specified object</returns>
3953 </member>
3954 <member name="M:Newtonsoft.Json.Linq.JArray.WriteTo(Newtonsoft.Json.JsonWriter,Newtonsoft.Json.JsonConverter[])">
3955 <summary>
3956 Writes this token to a <see cref="T:Newtonsoft.Json.JsonWriter"/>.
3957 </summary>
3958 <param name="writer">A <see cref="T:Newtonsoft.Json.JsonWriter"/> into which this method will write.</param>
3959 <param name="converters">A collection of <see cref="T:Newtonsoft.Json.JsonConverter"/> which will be used when writing the token.</param>
3960 </member>
3961 <member name="M:Newtonsoft.Json.Linq.JArray.IndexOf(Newtonsoft.Json.Linq.JToken)">
3962 <summary>
3963 Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1"/>.
3964 </summary>
3965 <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1"/>.</param>
3966 <returns>
3967 The index of <paramref name="item"/> if found in the list; otherwise, -1.
3968 </returns>
3969 </member>
3970 <member name="M:Newtonsoft.Json.Linq.JArray.Insert(System.Int32,Newtonsoft.Json.Linq.JToken)">
3971 <summary>
3972 Inserts an item to the <see cref="T:System.Collections.Generic.IList`1"/> at the specified index.
3973 </summary>
3974 <param name="index">The zero-based index at which <paramref name="item"/> should be inserted.</param>
3975 <param name="item">The object to insert into the <see cref="T:System.Collections.Generic.IList`1"/>.</param>
3976 <exception cref="T:System.ArgumentOutOfRangeException">
3977 <paramref name="index"/> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1"/>.</exception>
3978 <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.IList`1"/> is read-only.</exception>
3979 </member>
3980 <member name="M:Newtonsoft.Json.Linq.JArray.RemoveAt(System.Int32)">
3981 <summary>
3982 Removes the <see cref="T:System.Collections.Generic.IList`1"/> item at the specified index.
3983 </summary>
3984 <param name="index">The zero-based index of the item to remove.</param>
3985 <exception cref="T:System.ArgumentOutOfRangeException">
3986 <paramref name="index"/> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1"/>.</exception>
3987 <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.IList`1"/> is read-only.</exception>
3988 </member>
3989 <member name="M:Newtonsoft.Json.Linq.JArray.Add(Newtonsoft.Json.Linq.JToken)">
3990 <summary>
3991 Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"/>.
3992 </summary>
3993 <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
3994 <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
3995 </member>
3996 <member name="M:Newtonsoft.Json.Linq.JArray.Clear">
3997 <summary>
3998 Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
3999 </summary>
4000 <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only. </exception>
4001 </member>
4002 <member name="M:Newtonsoft.Json.Linq.JArray.Contains(Newtonsoft.Json.Linq.JToken)">
4003 <summary>
4004 Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
4005 </summary>
4006 <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
4007 <returns>
4008 true if <paramref name="item"/> is found in the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false.
4009 </returns>
4010 </member>
4011 <member name="M:Newtonsoft.Json.Linq.JArray.Remove(Newtonsoft.Json.Linq.JToken)">
4012 <summary>
4013 Removes the first occurrence of a specific object from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
4014 </summary>
4015 <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"/>.</param>
4016 <returns>
4017 true if <paramref name="item"/> was successfully removed from the <see cref="T:System.Collections.Generic.ICollection`1"/>; otherwise, false. This method also returns false if <paramref name="item"/> is not found in the original <see cref="T:System.Collections.Generic.ICollection`1"/>.
4018 </returns>
4019 <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"/> is read-only.</exception>
4020 </member>
4021 <member name="P:Newtonsoft.Json.Linq.JArray.Type">
4022 <summary>
4023 Gets the node type for this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
4024 </summary>
4025 <value>The type.</value>
4026 </member>
4027 <member name="P:Newtonsoft.Json.Linq.JArray.Item(System.Object)">
4028 <summary>
4029 Gets the <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified key.
4030 </summary>
4031 <value>The <see cref="T:Newtonsoft.Json.Linq.JToken"/> with the specified key.</value>
4032 </member>
4033 <member name="P:Newtonsoft.Json.Linq.JArray.Item(System.Int32)">
4034 <summary>
4035 Gets or sets the <see cref="T:Newtonsoft.Json.Linq.JToken"/> at the specified index.
4036 </summary>
4037 <value></value>
4038 </member>
4039 <member name="P:Newtonsoft.Json.Linq.JArray.Count">
4040 <summary>
4041 Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
4042 </summary>
4043 <value></value>
4044 <returns>The number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.</returns>
4045 </member>
4046 <member name="T:Newtonsoft.Json.Linq.JTokenReader">
4047 <summary>
4048 Represents a reader that provides fast, non-cached, forward-only access to serialized Json data.
4049 </summary>
4050 </member>
4051 <member name="M:Newtonsoft.Json.Linq.JTokenReader.#ctor(Newtonsoft.Json.Linq.JToken)">
4052 <summary>
4053 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JTokenReader"/> class.
4054 </summary>
4055 <param name="token">The token to read from.</param>
4056 </member>
4057 <member name="M:Newtonsoft.Json.Linq.JTokenReader.ReadAsBytes">
4058 <summary>
4059 Reads the next JSON token from the stream as a <see cref="T:Byte[]"/>.
4060 </summary>
4061 <returns>
4062 A <see cref="T:Byte[]"/> or a null reference if the next JSON token is null.
4063 </returns>
4064 </member>
4065 <member name="M:Newtonsoft.Json.Linq.JTokenReader.Read">
4066 <summary>
4067 Reads the next JSON token from the stream.
4068 </summary>
4069 <returns>
4070 true if the next token was read successfully; false if there are no more tokens to read.
4071 </returns>
4072 </member>
4073 <member name="T:Newtonsoft.Json.Linq.JProperty">
4074 <summary>
4075 Represents a JSON property.
4076 </summary>
4077 </member>
4078 <member name="M:Newtonsoft.Json.Linq.JProperty.#ctor(Newtonsoft.Json.Linq.JProperty)">
4079 <summary>
4080 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JProperty"/> class from another <see cref="T:Newtonsoft.Json.Linq.JProperty"/> object.
4081 </summary>
4082 <param name="other">A <see cref="T:Newtonsoft.Json.Linq.JProperty"/> object to copy from.</param>
4083 </member>
4084 <member name="M:Newtonsoft.Json.Linq.JProperty.Children">
4085 <summary>
4086 Returns a collection of the child tokens of this token, in document order.
4087 </summary>
4088 <returns>
4089 An <see cref="T:System.Collections.Generic.IEnumerable`1"/> of <see cref="T:Newtonsoft.Json.Linq.JToken"/> containing the child tokens of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>, in document order.
4090 </returns>
4091 </member>
4092 <member name="M:Newtonsoft.Json.Linq.JProperty.#ctor(System.String,System.Object[])">
4093 <summary>
4094 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JProperty"/> class.
4095 </summary>
4096 <param name="name">The property name.</param>
4097 <param name="content">The property content.</param>
4098 </member>
4099 <member name="M:Newtonsoft.Json.Linq.JProperty.#ctor(System.String,System.Object)">
4100 <summary>
4101 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JProperty"/> class.
4102 </summary>
4103 <param name="name">The property name.</param>
4104 <param name="content">The property content.</param>
4105 </member>
4106 <member name="M:Newtonsoft.Json.Linq.JProperty.WriteTo(Newtonsoft.Json.JsonWriter,Newtonsoft.Json.JsonConverter[])">
4107 <summary>
4108 Writes this token to a <see cref="T:Newtonsoft.Json.JsonWriter"/>.
4109 </summary>
4110 <param name="writer">A <see cref="T:Newtonsoft.Json.JsonWriter"/> into which this method will write.</param>
4111 <param name="converters">A collection of <see cref="T:Newtonsoft.Json.JsonConverter"/> which will be used when writing the token.</param>
4112 </member>
4113 <member name="M:Newtonsoft.Json.Linq.JProperty.Load(Newtonsoft.Json.JsonReader)">
4114 <summary>
4115 Loads an <see cref="T:Newtonsoft.Json.Linq.JProperty"/> from a <see cref="T:Newtonsoft.Json.JsonReader"/>.
4116 </summary>
4117 <param name="reader">A <see cref="T:Newtonsoft.Json.JsonReader"/> that will be read for the content of the <see cref="T:Newtonsoft.Json.Linq.JProperty"/>.</param>
4118 <returns>A <see cref="T:Newtonsoft.Json.Linq.JProperty"/> that contains the JSON that was read from the specified <see cref="T:Newtonsoft.Json.JsonReader"/>.</returns>
4119 </member>
4120 <member name="P:Newtonsoft.Json.Linq.JProperty.Name">
4121 <summary>
4122 Gets the property name.
4123 </summary>
4124 <value>The property name.</value>
4125 </member>
4126 <member name="P:Newtonsoft.Json.Linq.JProperty.Value">
4127 <summary>
4128 Gets or sets the property value.
4129 </summary>
4130 <value>The property value.</value>
4131 </member>
4132 <member name="P:Newtonsoft.Json.Linq.JProperty.Type">
4133 <summary>
4134 Gets the node type for this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
4135 </summary>
4136 <value>The type.</value>
4137 </member>
4138 <member name="T:Newtonsoft.Json.Linq.JTokenType">
4139 <summary>
4140 Specifies the type of token.
4141 </summary>
4142 </member>
4143 <member name="F:Newtonsoft.Json.Linq.JTokenType.None">
4144 <summary>
4145 No token type has been set.
4146 </summary>
4147 </member>
4148 <member name="F:Newtonsoft.Json.Linq.JTokenType.Object">
4149 <summary>
4150 A JSON object.
4151 </summary>
4152 </member>
4153 <member name="F:Newtonsoft.Json.Linq.JTokenType.Array">
4154 <summary>
4155 A JSON array.
4156 </summary>
4157 </member>
4158 <member name="F:Newtonsoft.Json.Linq.JTokenType.Constructor">
4159 <summary>
4160 A JSON constructor.
4161 </summary>
4162 </member>
4163 <member name="F:Newtonsoft.Json.Linq.JTokenType.Property">
4164 <summary>
4165 A JSON object property.
4166 </summary>
4167 </member>
4168 <member name="F:Newtonsoft.Json.Linq.JTokenType.Comment">
4169 <summary>
4170 A comment.
4171 </summary>
4172 </member>
4173 <member name="F:Newtonsoft.Json.Linq.JTokenType.Integer">
4174 <summary>
4175 An integer value.
4176 </summary>
4177 </member>
4178 <member name="F:Newtonsoft.Json.Linq.JTokenType.Float">
4179 <summary>
4180 A float value.
4181 </summary>
4182 </member>
4183 <member name="F:Newtonsoft.Json.Linq.JTokenType.String">
4184 <summary>
4185 A string value.
4186 </summary>
4187 </member>
4188 <member name="F:Newtonsoft.Json.Linq.JTokenType.Boolean">
4189 <summary>
4190 A boolean value.
4191 </summary>
4192 </member>
4193 <member name="F:Newtonsoft.Json.Linq.JTokenType.Null">
4194 <summary>
4195 A null value.
4196 </summary>
4197 </member>
4198 <member name="F:Newtonsoft.Json.Linq.JTokenType.Undefined">
4199 <summary>
4200 An undefined value.
4201 </summary>
4202 </member>
4203 <member name="F:Newtonsoft.Json.Linq.JTokenType.Date">
4204 <summary>
4205 A date value.
4206 </summary>
4207 </member>
4208 <member name="F:Newtonsoft.Json.Linq.JTokenType.Raw">
4209 <summary>
4210 A raw JSON value.
4211 </summary>
4212 </member>
4213 <member name="F:Newtonsoft.Json.Linq.JTokenType.Bytes">
4214 <summary>
4215 A collection of bytes value.
4216 </summary>
4217 </member>
4218 <member name="T:Newtonsoft.Json.Schema.Extensions">
4219 <summary>
4220 Contains the JSON schema extension methods.
4221 </summary>
4222 </member>
4223 <member name="M:Newtonsoft.Json.Schema.Extensions.IsValid(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Schema.JsonSchema)">
4224 <summary>
4225 Determines whether the <see cref="T:Newtonsoft.Json.Linq.JToken"/> is valid.
4226 </summary>
4227 <param name="source">The source <see cref="T:Newtonsoft.Json.Linq.JToken"/> to test.</param>
4228 <param name="schema">The schema to test with.</param>
4229 <returns>
4230 <c>true</c> if the specified <see cref="T:Newtonsoft.Json.Linq.JToken"/> is valid; otherwise, <c>false</c>.
4231 </returns>
4232 </member>
4233 <member name="M:Newtonsoft.Json.Schema.Extensions.Validate(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Schema.JsonSchema)">
4234 <summary>
4235 Validates the specified <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
4236 </summary>
4237 <param name="source">The source <see cref="T:Newtonsoft.Json.Linq.JToken"/> to test.</param>
4238 <param name="schema">The schema to test with.</param>
4239 </member>
4240 <member name="M:Newtonsoft.Json.Schema.Extensions.Validate(Newtonsoft.Json.Linq.JToken,Newtonsoft.Json.Schema.JsonSchema,Newtonsoft.Json.Schema.ValidationEventHandler)">
4241 <summary>
4242 Validates the specified <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
4243 </summary>
4244 <param name="source">The source <see cref="T:Newtonsoft.Json.Linq.JToken"/> to test.</param>
4245 <param name="schema">The schema to test with.</param>
4246 <param name="validationEventHandler">The validation event handler.</param>
4247 </member>
4248 <member name="T:Newtonsoft.Json.Schema.JsonSchemaException">
4249 <summary>
4250 Returns detailed information about the schema exception.
4251 </summary>
4252 </member>
4253 <member name="M:Newtonsoft.Json.Schema.JsonSchemaException.#ctor">
4254 <summary>
4255 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Schema.JsonSchemaException"/> class.
4256 </summary>
4257 </member>
4258 <member name="M:Newtonsoft.Json.Schema.JsonSchemaException.#ctor(System.String)">
4259 <summary>
4260 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Schema.JsonSchemaException"/> class
4261 with a specified error message.
4262 </summary>
4263 <param name="message">The error message that explains the reason for the exception.</param>
4264 </member>
4265 <member name="M:Newtonsoft.Json.Schema.JsonSchemaException.#ctor(System.String,System.Exception)">
4266 <summary>
4267 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Schema.JsonSchemaException"/> class
4268 with a specified error message and a reference to the inner exception that is the cause of this exception.
4269 </summary>
4270 <param name="message">The error message that explains the reason for the exception.</param>
4271 <param name="innerException">The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.</param>
4272 </member>
4273 <member name="P:Newtonsoft.Json.Schema.JsonSchemaException.LineNumber">
4274 <summary>
4275 Gets the line number indicating where the error occurred.
4276 </summary>
4277 <value>The line number indicating where the error occurred.</value>
4278 </member>
4279 <member name="P:Newtonsoft.Json.Schema.JsonSchemaException.LinePosition">
4280 <summary>
4281 Gets the line position indicating where the error occurred.
4282 </summary>
4283 <value>The line position indicating where the error occurred.</value>
4284 </member>
4285 <member name="T:Newtonsoft.Json.Schema.JsonSchemaResolver">
4286 <summary>
4287 Resolves <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from an id.
4288 </summary>
4289 </member>
4290 <member name="M:Newtonsoft.Json.Schema.JsonSchemaResolver.#ctor">
4291 <summary>
4292 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Schema.JsonSchemaResolver"/> class.
4293 </summary>
4294 </member>
4295 <member name="M:Newtonsoft.Json.Schema.JsonSchemaResolver.GetSchema(System.String)">
4296 <summary>
4297 Gets a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> for the specified id.
4298 </summary>
4299 <param name="id">The id.</param>
4300 <returns>A <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> for the specified id.</returns>
4301 </member>
4302 <member name="P:Newtonsoft.Json.Schema.JsonSchemaResolver.LoadedSchemas">
4303 <summary>
4304 Gets or sets the loaded schemas.
4305 </summary>
4306 <value>The loaded schemas.</value>
4307 </member>
4308 <member name="T:Newtonsoft.Json.Schema.UndefinedSchemaIdHandling">
4309 <summary>
4310 Specifies undefined schema Id handling options for the <see cref="T:Newtonsoft.Json.Schema.JsonSchemaGenerator"/>.
4311 </summary>
4312 </member>
4313 <member name="F:Newtonsoft.Json.Schema.UndefinedSchemaIdHandling.None">
4314 <summary>
4315 Do not infer a schema Id.
4316 </summary>
4317 </member>
4318 <member name="F:Newtonsoft.Json.Schema.UndefinedSchemaIdHandling.UseTypeName">
4319 <summary>
4320 Use the .NET type name as the schema Id.
4321 </summary>
4322 </member>
4323 <member name="F:Newtonsoft.Json.Schema.UndefinedSchemaIdHandling.UseAssemblyQualifiedName">
4324 <summary>
4325 Use the assembly qualified .NET type name as the schema Id.
4326 </summary>
4327 </member>
4328 <member name="T:Newtonsoft.Json.Schema.ValidationEventArgs">
4329 <summary>
4330 Returns detailed information related to the <see cref="T:Newtonsoft.Json.Schema.ValidationEventHandler"/>.
4331 </summary>
4332 </member>
4333 <member name="P:Newtonsoft.Json.Schema.ValidationEventArgs.Exception">
4334 <summary>
4335 Gets the <see cref="T:Newtonsoft.Json.Schema.JsonSchemaException"/> associated with the validation event.
4336 </summary>
4337 <value>The JsonSchemaException associated with the validation event.</value>
4338 </member>
4339 <member name="P:Newtonsoft.Json.Schema.ValidationEventArgs.Message">
4340 <summary>
4341 Gets the text description corresponding to the validation event.
4342 </summary>
4343 <value>The text description.</value>
4344 </member>
4345 <member name="T:Newtonsoft.Json.Schema.ValidationEventHandler">
4346 <summary>
4347 Represents the callback method that will handle JSON schema validation events and the <see cref="T:Newtonsoft.Json.Schema.ValidationEventArgs"/>.
4348 </summary>
4349 </member>
4350 <member name="T:Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver">
4351 <summary>
4352 Resolves member mappings for a type, camel casing property names.
4353 </summary>
4354 </member>
4355 <member name="T:Newtonsoft.Json.Serialization.DefaultContractResolver">
4356 <summary>
4357 Used by <see cref="T:Newtonsoft.Json.JsonSerializer"/> to resolves a <see cref="T:Newtonsoft.Json.Serialization.JsonContract"/> for a given <see cref="T:System.Type"/>.
4358 </summary>
4359 </member>
4360 <member name="T:Newtonsoft.Json.Serialization.IContractResolver">
4361 <summary>
4362 Used by <see cref="T:Newtonsoft.Json.JsonSerializer"/> to resolves a <see cref="T:Newtonsoft.Json.Serialization.JsonContract"/> for a given <see cref="T:System.Type"/>.
4363 </summary>
4364 </member>
4365 <member name="M:Newtonsoft.Json.Serialization.IContractResolver.ResolveContract(System.Type)">
4366 <summary>
4367 Resolves the contract for a given type.
4368 </summary>
4369 <param name="type">The type to resolve a contract for.</param>
4370 <returns>The contract for a given type.</returns>
4371 </member>
4372 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.#ctor">
4373 <summary>
4374 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.DefaultContractResolver"/> class.
4375 </summary>
4376 </member>
4377 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(System.Type)">
4378 <summary>
4379 Resolves the contract for a given type.
4380 </summary>
4381 <param name="type">The type to resolve a contract for.</param>
4382 <returns>The contract for a given type.</returns>
4383 </member>
4384 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.GetSerializableMembers(System.Type)">
4385 <summary>
4386 Gets the serializable members for the type.
4387 </summary>
4388 <param name="objectType">The type to get serializable members for.</param>
4389 <returns>The serializable members for the type.</returns>
4390 </member>
4391 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(System.Type)">
4392 <summary>
4393 Creates a <see cref="T:Newtonsoft.Json.Serialization.JsonObjectContract"/> for the given type.
4394 </summary>
4395 <param name="objectType">Type of the object.</param>
4396 <returns>A <see cref="T:Newtonsoft.Json.Serialization.JsonObjectContract"/> for the given type.</returns>
4397 </member>
4398 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContractConverter(System.Type)">
4399 <summary>
4400 Resolves the default <see cref="T:Newtonsoft.Json.JsonConverter"/> for the contract.
4401 </summary>
4402 <param name="objectType">Type of the object.</param>
4403 <returns></returns>
4404 </member>
4405 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.CreateDictionaryContract(System.Type)">
4406 <summary>
4407 Creates a <see cref="T:Newtonsoft.Json.Serialization.JsonDictionaryContract"/> for the given type.
4408 </summary>
4409 <param name="objectType">Type of the object.</param>
4410 <returns>A <see cref="T:Newtonsoft.Json.Serialization.JsonDictionaryContract"/> for the given type.</returns>
4411 </member>
4412 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.CreateArrayContract(System.Type)">
4413 <summary>
4414 Creates a <see cref="T:Newtonsoft.Json.Serialization.JsonArrayContract"/> for the given type.
4415 </summary>
4416 <param name="objectType">Type of the object.</param>
4417 <returns>A <see cref="T:Newtonsoft.Json.Serialization.JsonArrayContract"/> for the given type.</returns>
4418 </member>
4419 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.CreatePrimitiveContract(System.Type)">
4420 <summary>
4421 Creates a <see cref="T:Newtonsoft.Json.Serialization.JsonPrimitiveContract"/> for the given type.
4422 </summary>
4423 <param name="objectType">Type of the object.</param>
4424 <returns>A <see cref="T:Newtonsoft.Json.Serialization.JsonPrimitiveContract"/> for the given type.</returns>
4425 </member>
4426 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.CreateLinqContract(System.Type)">
4427 <summary>
4428 Creates a <see cref="T:Newtonsoft.Json.Serialization.JsonLinqContract"/> for the given type.
4429 </summary>
4430 <param name="objectType">Type of the object.</param>
4431 <returns>A <see cref="T:Newtonsoft.Json.Serialization.JsonLinqContract"/> for the given type.</returns>
4432 </member>
4433 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.CreateProperties(Newtonsoft.Json.Serialization.JsonObjectContract)">
4434 <summary>
4435 Creates properties for the given <see cref="T:Newtonsoft.Json.Serialization.JsonObjectContract"/>.
4436 </summary>
4437 <param name="contract">The contract to create properties for.</param>
4438 <returns>Properties for the given <see cref="T:Newtonsoft.Json.Serialization.JsonObjectContract"/>.</returns>
4439 </member>
4440 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.CreateMemberValueProvider(System.Reflection.MemberInfo)">
4441 <summary>
4442 Creates the <see cref="T:Newtonsoft.Json.Serialization.IValueProvider"/> used by the serializer to get and set values from a member.
4443 </summary>
4444 <param name="member">The member.</param>
4445 <returns>The <see cref="T:Newtonsoft.Json.Serialization.IValueProvider"/> used by the serializer to get and set values from a member.</returns>
4446 </member>
4447 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.CreateProperty(Newtonsoft.Json.Serialization.JsonObjectContract,System.Reflection.MemberInfo)">
4448 <summary>
4449 Creates a <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> for the given <see cref="T:System.Reflection.MemberInfo"/>.
4450 </summary>
4451 <param name="contract">The member's declaring types <see cref="T:Newtonsoft.Json.Serialization.JsonObjectContract"/>.</param>
4452 <param name="member">The member to create a <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> for.</param>
4453 <returns>A created <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> for the given <see cref="T:System.Reflection.MemberInfo"/>.</returns>
4454 </member>
4455 <member name="M:Newtonsoft.Json.Serialization.DefaultContractResolver.ResolvePropertyName(System.String)">
4456 <summary>
4457 Resolves the name of the property.
4458 </summary>
4459 <param name="propertyName">Name of the property.</param>
4460 <returns>Name of the property.</returns>
4461 </member>
4462 <member name="P:Newtonsoft.Json.Serialization.DefaultContractResolver.DefaultMembersSearchFlags">
4463 <summary>
4464 Gets or sets the default members search flags.
4465 </summary>
4466 <value>The default members search flags.</value>
4467 </member>
4468 <member name="M:Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver.ResolvePropertyName(System.String)">
4469 <summary>
4470 Resolves the name of the property.
4471 </summary>
4472 <param name="propertyName">Name of the property.</param>
4473 <returns>The property name camel cased.</returns>
4474 </member>
4475 <member name="T:Newtonsoft.Json.Serialization.DefaultSerializationBinder">
4476 <summary>
4477 The default serialization binder used when resolving and loading classes from type names.
4478 </summary>
4479 </member>
4480 <member name="M:Newtonsoft.Json.Serialization.DefaultSerializationBinder.BindToType(System.String,System.String)">
4481 <summary>
4482 When overridden in a derived class, controls the binding of a serialized object to a type.
4483 </summary>
4484 <param name="assemblyName">Specifies the <see cref="T:System.Reflection.Assembly"/> name of the serialized object.</param>
4485 <param name="typeName">Specifies the <see cref="T:System.Type"/> name of the serialized object.</param>
4486 <returns>
4487 The type of the object the formatter creates a new instance of.
4488 </returns>
4489 </member>
4490 <member name="T:Newtonsoft.Json.Serialization.DynamicValueProvider">
4491 <summary>
4492 Get and set values for a <see cref="T:System.Reflection.MemberInfo"/> using dynamic methods.
4493 </summary>
4494 </member>
4495 <member name="T:Newtonsoft.Json.Serialization.IValueProvider">
4496 <summary>
4497 Provides methods to get and set values.
4498 </summary>
4499 </member>
4500 <member name="M:Newtonsoft.Json.Serialization.IValueProvider.SetValue(System.Object,System.Object)">
4501 <summary>
4502 Sets the value.
4503 </summary>
4504 <param name="target">The target to set the value on.</param>
4505 <param name="value">The value to set on the target.</param>
4506 </member>
4507 <member name="M:Newtonsoft.Json.Serialization.IValueProvider.GetValue(System.Object)">
4508 <summary>
4509 Gets the value.
4510 </summary>
4511 <param name="target">The target to get the value from.</param>
4512 <returns>The value.</returns>
4513 </member>
4514 <member name="M:Newtonsoft.Json.Serialization.DynamicValueProvider.#ctor(System.Reflection.MemberInfo)">
4515 <summary>
4516 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.DynamicValueProvider"/> class.
4517 </summary>
4518 <param name="memberInfo">The member info.</param>
4519 </member>
4520 <member name="M:Newtonsoft.Json.Serialization.DynamicValueProvider.SetValue(System.Object,System.Object)">
4521 <summary>
4522 Sets the value.
4523 </summary>
4524 <param name="target">The target to set the value on.</param>
4525 <param name="value">The value to set on the target.</param>
4526 </member>
4527 <member name="M:Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(System.Object)">
4528 <summary>
4529 Gets the value.
4530 </summary>
4531 <param name="target">The target to get the value from.</param>
4532 <returns>The value.</returns>
4533 </member>
4534 <member name="T:Newtonsoft.Json.Serialization.ErrorContext">
4535 <summary>
4536 Provides information surrounding an error.
4537 </summary>
4538 </member>
4539 <member name="P:Newtonsoft.Json.Serialization.ErrorContext.Error">
4540 <summary>
4541 Gets or sets the error.
4542 </summary>
4543 <value>The error.</value>
4544 </member>
4545 <member name="P:Newtonsoft.Json.Serialization.ErrorContext.OriginalObject">
4546 <summary>
4547 Gets the original object that caused the error.
4548 </summary>
4549 <value>The original object that caused the error.</value>
4550 </member>
4551 <member name="P:Newtonsoft.Json.Serialization.ErrorContext.Member">
4552 <summary>
4553 Gets the member that caused the error.
4554 </summary>
4555 <value>The member that caused the error.</value>
4556 </member>
4557 <member name="P:Newtonsoft.Json.Serialization.ErrorContext.Handled">
4558 <summary>
4559 Gets or sets a value indicating whether this <see cref="T:Newtonsoft.Json.Serialization.ErrorContext"/> is handled.
4560 </summary>
4561 <value><c>true</c> if handled; otherwise, <c>false</c>.</value>
4562 </member>
4563 <member name="T:Newtonsoft.Json.Serialization.ErrorEventArgs">
4564 <summary>
4565 Provides data for the Error event.
4566 </summary>
4567 </member>
4568 <member name="M:Newtonsoft.Json.Serialization.ErrorEventArgs.#ctor(System.Object,Newtonsoft.Json.Serialization.ErrorContext)">
4569 <summary>
4570 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.ErrorEventArgs"/> class.
4571 </summary>
4572 <param name="currentObject">The current object.</param>
4573 <param name="errorContext">The error context.</param>
4574 </member>
4575 <member name="P:Newtonsoft.Json.Serialization.ErrorEventArgs.CurrentObject">
4576 <summary>
4577 Gets the current object the error event is being raised against.
4578 </summary>
4579 <value>The current object the error event is being raised against.</value>
4580 </member>
4581 <member name="P:Newtonsoft.Json.Serialization.ErrorEventArgs.ErrorContext">
4582 <summary>
4583 Gets the error context.
4584 </summary>
4585 <value>The error context.</value>
4586 </member>
4587 <member name="T:Newtonsoft.Json.Serialization.JsonArrayContract">
4588 <summary>
4589 Contract details for a <see cref="T:System.Type"/> used by the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
4590 </summary>
4591 </member>
4592 <member name="T:Newtonsoft.Json.Serialization.JsonContract">
4593 <summary>
4594 Contract details for a <see cref="T:System.Type"/> used by the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
4595 </summary>
4596 </member>
4597 <member name="P:Newtonsoft.Json.Serialization.JsonContract.UnderlyingType">
4598 <summary>
4599 Gets the underlying type for the contract.
4600 </summary>
4601 <value>The underlying type for the contract.</value>
4602 </member>
4603 <member name="P:Newtonsoft.Json.Serialization.JsonContract.CreatedType">
4604 <summary>
4605 Gets or sets the type created during deserialization.
4606 </summary>
4607 <value>The type created during deserialization.</value>
4608 </member>
4609 <member name="P:Newtonsoft.Json.Serialization.JsonContract.IsReference">
4610 <summary>
4611 Gets or sets whether this type contract is serialized as a reference.
4612 </summary>
4613 <value>Whether this type contract is serialized as a reference.</value>
4614 </member>
4615 <member name="P:Newtonsoft.Json.Serialization.JsonContract.Converter">
4616 <summary>
4617 Gets or sets the default <see cref="T:Newtonsoft.Json.JsonConverter"/> for this contract.
4618 </summary>
4619 <value>The converter.</value>
4620 </member>
4621 <member name="P:Newtonsoft.Json.Serialization.JsonContract.OnDeserialized">
4622 <summary>
4623 Gets or sets the method called immediately after deserialization of the object.
4624 </summary>
4625 <value>The method called immediately after deserialization of the object.</value>
4626 </member>
4627 <member name="P:Newtonsoft.Json.Serialization.JsonContract.OnDeserializing">
4628 <summary>
4629 Gets or sets the method called during deserialization of the object.
4630 </summary>
4631 <value>The method called during deserialization of the object.</value>
4632 </member>
4633 <member name="P:Newtonsoft.Json.Serialization.JsonContract.OnSerialized">
4634 <summary>
4635 Gets or sets the method called after serialization of the object graph.
4636 </summary>
4637 <value>The method called after serialization of the object graph.</value>
4638 </member>
4639 <member name="P:Newtonsoft.Json.Serialization.JsonContract.OnSerializing">
4640 <summary>
4641 Gets or sets the method called before serialization of the object.
4642 </summary>
4643 <value>The method called before serialization of the object.</value>
4644 </member>
4645 <member name="P:Newtonsoft.Json.Serialization.JsonContract.DefaultCreator">
4646 <summary>
4647 Gets or sets the default creator.
4648 </summary>
4649 <value>The default creator.</value>
4650 </member>
4651 <member name="P:Newtonsoft.Json.Serialization.JsonContract.DefaultCreatorNonPublic">
4652 <summary>
4653 Gets or sets a value indicating whether [default creator non public].
4654 </summary>
4655 <value><c>true</c> if the default object creator is non-public; otherwise, <c>false</c>.</value>
4656 </member>
4657 <member name="P:Newtonsoft.Json.Serialization.JsonContract.OnError">
4658 <summary>
4659 Gets or sets the method called when an error is thrown during the serialization of the object.
4660 </summary>
4661 <value>The method called when an error is thrown during the serialization of the object.</value>
4662 </member>
4663 <member name="M:Newtonsoft.Json.Serialization.JsonArrayContract.#ctor(System.Type)">
4664 <summary>
4665 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.JsonArrayContract"/> class.
4666 </summary>
4667 <param name="underlyingType">The underlying type for the contract.</param>
4668 </member>
4669 <member name="T:Newtonsoft.Json.Serialization.JsonDictionaryContract">
4670 <summary>
4671 Contract details for a <see cref="T:System.Type"/> used by the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
4672 </summary>
4673 </member>
4674 <member name="M:Newtonsoft.Json.Serialization.JsonDictionaryContract.#ctor(System.Type)">
4675 <summary>
4676 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.JsonDictionaryContract"/> class.
4677 </summary>
4678 <param name="underlyingType">The underlying type for the contract.</param>
4679 </member>
4680 <member name="T:Newtonsoft.Json.Serialization.JsonLinqContract">
4681 <summary>
4682 Contract details for a <see cref="T:System.Type"/> used by the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
4683 </summary>
4684 </member>
4685 <member name="M:Newtonsoft.Json.Serialization.JsonLinqContract.#ctor(System.Type)">
4686 <summary>
4687 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.JsonLinqContract"/> class.
4688 </summary>
4689 <param name="underlyingType">The underlying type for the contract.</param>
4690 </member>
4691 <member name="T:Newtonsoft.Json.Serialization.JsonPrimitiveContract">
4692 <summary>
4693 Contract details for a <see cref="T:System.Type"/> used by the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
4694 </summary>
4695 </member>
4696 <member name="M:Newtonsoft.Json.Serialization.JsonPrimitiveContract.#ctor(System.Type)">
4697 <summary>
4698 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.JsonPrimitiveContract"/> class.
4699 </summary>
4700 <param name="underlyingType">The underlying type for the contract.</param>
4701 </member>
4702 <member name="T:Newtonsoft.Json.Serialization.JsonProperty">
4703 <summary>
4704 Maps a JSON property to a .NET member.
4705 </summary>
4706 </member>
4707 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.PropertyName">
4708 <summary>
4709 Gets the name of the property.
4710 </summary>
4711 <value>The name of the property.</value>
4712 </member>
4713 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.ValueProvider">
4714 <summary>
4715 Gets the <see cref="T:Newtonsoft.Json.Serialization.IValueProvider"/> that will get and set the <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> during serialization.
4716 </summary>
4717 <value>The <see cref="T:Newtonsoft.Json.Serialization.IValueProvider"/> that will get and set the <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> during serialization.</value>
4718 </member>
4719 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.PropertyType">
4720 <summary>
4721 Gets or sets the type of the property.
4722 </summary>
4723 <value>The type of the property.</value>
4724 </member>
4725 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.Converter">
4726 <summary>
4727 Gets or sets the <see cref="T:Newtonsoft.Json.JsonConverter"/> for the property.
4728 If set this converter takes presidence over the contract converter for the property type.
4729 </summary>
4730 <value>The converter.</value>
4731 </member>
4732 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.Ignored">
4733 <summary>
4734 Gets a value indicating whether this <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> is ignored.
4735 </summary>
4736 <value><c>true</c> if ignored; otherwise, <c>false</c>.</value>
4737 </member>
4738 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.Readable">
4739 <summary>
4740 Gets a value indicating whether this <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> is readable.
4741 </summary>
4742 <value><c>true</c> if readable; otherwise, <c>false</c>.</value>
4743 </member>
4744 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.Writable">
4745 <summary>
4746 Gets a value indicating whether this <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> is writable.
4747 </summary>
4748 <value><c>true</c> if writable; otherwise, <c>false</c>.</value>
4749 </member>
4750 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.MemberConverter">
4751 <summary>
4752 Gets the member converter.
4753 </summary>
4754 <value>The member converter.</value>
4755 </member>
4756 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.DefaultValue">
4757 <summary>
4758 Gets the default value.
4759 </summary>
4760 <value>The default value.</value>
4761 </member>
4762 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.Required">
4763 <summary>
4764 Gets a value indicating whether this <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> is required.
4765 </summary>
4766 <value>A value indicating whether this <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> is required.</value>
4767 </member>
4768 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.IsReference">
4769 <summary>
4770 Gets a value indicating whether this property preserves object references.
4771 </summary>
4772 <value>
4773 <c>true</c> if this instance is reference; otherwise, <c>false</c>.
4774 </value>
4775 </member>
4776 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.NullValueHandling">
4777 <summary>
4778 Gets the property null value handling.
4779 </summary>
4780 <value>The null value handling.</value>
4781 </member>
4782 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.DefaultValueHandling">
4783 <summary>
4784 Gets the property default value handling.
4785 </summary>
4786 <value>The default value handling.</value>
4787 </member>
4788 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.ReferenceLoopHandling">
4789 <summary>
4790 Gets the property reference loop handling.
4791 </summary>
4792 <value>The reference loop handling.</value>
4793 </member>
4794 <member name="P:Newtonsoft.Json.Serialization.JsonProperty.ObjectCreationHandling">
4795 <summary>
4796 Gets the property object creation handling.
4797 </summary>
4798 <value>The object creation handling.</value>
4799 </member>
4800 <member name="T:Newtonsoft.Json.Serialization.JsonPropertyCollection">
4801 <summary>
4802 A collection of <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> objects.
4803 </summary>
4804 </member>
4805 <member name="M:Newtonsoft.Json.Serialization.JsonPropertyCollection.#ctor(Newtonsoft.Json.Serialization.JsonObjectContract)">
4806 <summary>
4807 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.JsonPropertyCollection"/> class.
4808 </summary>
4809 <param name="contract">The contract.</param>
4810 </member>
4811 <member name="M:Newtonsoft.Json.Serialization.JsonPropertyCollection.GetKeyForItem(Newtonsoft.Json.Serialization.JsonProperty)">
4812 <summary>
4813 When implemented in a derived class, extracts the key from the specified element.
4814 </summary>
4815 <param name="item">The element from which to extract the key.</param>
4816 <returns>The key for the specified element.</returns>
4817 </member>
4818 <member name="M:Newtonsoft.Json.Serialization.JsonPropertyCollection.AddProperty(Newtonsoft.Json.Serialization.JsonProperty)">
4819 <summary>
4820 Adds a <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> object.
4821 </summary>
4822 <param name="property">The property to add to the collection.</param>
4823 </member>
4824 <member name="M:Newtonsoft.Json.Serialization.JsonPropertyCollection.GetClosestMatchProperty(System.String)">
4825 <summary>
4826 Gets the closest matching <see cref="T:Newtonsoft.Json.Serialization.JsonProperty"/> object.
4827 First attempts to get an exact case match of propertyName and then
4828 a case insensitive match.
4829 </summary>
4830 <param name="propertyName">Name of the property.</param>
4831 <returns>A matching property if found.</returns>
4832 </member>
4833 <member name="M:Newtonsoft.Json.Serialization.JsonPropertyCollection.GetProperty(System.String,System.StringComparison)">
4834 <summary>
4835 Gets a property by property name.
4836 </summary>
4837 <param name="propertyName">The name of the property to get.</param>
4838 <param name="comparisonType">Type property name string comparison.</param>
4839 <returns>A matching property if found.</returns>
4840 </member>
4841 <member name="T:Newtonsoft.Json.MissingMemberHandling">
4842 <summary>
4843 Specifies missing member handling options for the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
4844 </summary>
4845 </member>
4846 <member name="F:Newtonsoft.Json.MissingMemberHandling.Ignore">
4847 <summary>
4848 Ignore a missing member and do not attempt to deserialize it.
4849 </summary>
4850 </member>
4851 <member name="F:Newtonsoft.Json.MissingMemberHandling.Error">
4852 <summary>
4853 Throw a <see cref="T:Newtonsoft.Json.JsonSerializationException"/> when a missing member is encountered during deserialization.
4854 </summary>
4855 </member>
4856 <member name="T:Newtonsoft.Json.NullValueHandling">
4857 <summary>
4858 Specifies null value handling options for the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
4859 </summary>
4860 </member>
4861 <member name="F:Newtonsoft.Json.NullValueHandling.Include">
4862 <summary>
4863 Include null values when serializing and deserializing objects.
4864 </summary>
4865 </member>
4866 <member name="F:Newtonsoft.Json.NullValueHandling.Ignore">
4867 <summary>
4868 Ignore null values when serializing and deserializing objects.
4869 </summary>
4870 </member>
4871 <member name="T:Newtonsoft.Json.ReferenceLoopHandling">
4872 <summary>
4873 Specifies reference loop handling options for the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
4874 </summary>
4875 </member>
4876 <member name="F:Newtonsoft.Json.ReferenceLoopHandling.Error">
4877 <summary>
4878 Throw a <see cref="T:Newtonsoft.Json.JsonSerializationException"/> when a loop is encountered.
4879 </summary>
4880 </member>
4881 <member name="F:Newtonsoft.Json.ReferenceLoopHandling.Ignore">
4882 <summary>
4883 Ignore loop references and do not serialize.
4884 </summary>
4885 </member>
4886 <member name="F:Newtonsoft.Json.ReferenceLoopHandling.Serialize">
4887 <summary>
4888 Serialize loop references.
4889 </summary>
4890 </member>
4891 <member name="T:Newtonsoft.Json.Schema.JsonSchema">
4892 <summary>
4893 An in-memory representation of a JSON Schema.
4894 </summary>
4895 </member>
4896 <member name="M:Newtonsoft.Json.Schema.JsonSchema.#ctor">
4897 <summary>
4898 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> class.
4899 </summary>
4900 </member>
4901 <member name="M:Newtonsoft.Json.Schema.JsonSchema.Read(Newtonsoft.Json.JsonReader)">
4902 <summary>
4903 Reads a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from the specified <see cref="T:Newtonsoft.Json.JsonReader"/>.
4904 </summary>
4905 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> containing the JSON Schema to read.</param>
4906 <returns>The <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> object representing the JSON Schema.</returns>
4907 </member>
4908 <member name="M:Newtonsoft.Json.Schema.JsonSchema.Read(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Schema.JsonSchemaResolver)">
4909 <summary>
4910 Reads a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from the specified <see cref="T:Newtonsoft.Json.JsonReader"/>.
4911 </summary>
4912 <param name="reader">The <see cref="T:Newtonsoft.Json.JsonReader"/> containing the JSON Schema to read.</param>
4913 <param name="resolver">The <see cref="T:Newtonsoft.Json.Schema.JsonSchemaResolver"/> to use when resolving schema references.</param>
4914 <returns>The <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> object representing the JSON Schema.</returns>
4915 </member>
4916 <member name="M:Newtonsoft.Json.Schema.JsonSchema.Parse(System.String)">
4917 <summary>
4918 Load a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from a string that contains schema JSON.
4919 </summary>
4920 <param name="json">A <see cref="T:System.String"/> that contains JSON.</param>
4921 <returns>A <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> populated from the string that contains JSON.</returns>
4922 </member>
4923 <member name="M:Newtonsoft.Json.Schema.JsonSchema.Parse(System.String,Newtonsoft.Json.Schema.JsonSchemaResolver)">
4924 <summary>
4925 Parses the specified json.
4926 </summary>
4927 <param name="json">The json.</param>
4928 <param name="resolver">The resolver.</param>
4929 <returns>A <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> populated from the string that contains JSON.</returns>
4930 </member>
4931 <member name="M:Newtonsoft.Json.Schema.JsonSchema.WriteTo(Newtonsoft.Json.JsonWriter)">
4932 <summary>
4933 Writes this schema to a <see cref="T:Newtonsoft.Json.JsonWriter"/>.
4934 </summary>
4935 <param name="writer">A <see cref="T:Newtonsoft.Json.JsonWriter"/> into which this method will write.</param>
4936 </member>
4937 <member name="M:Newtonsoft.Json.Schema.JsonSchema.WriteTo(Newtonsoft.Json.JsonWriter,Newtonsoft.Json.Schema.JsonSchemaResolver)">
4938 <summary>
4939 Writes this schema to a <see cref="T:Newtonsoft.Json.JsonWriter"/> using the specified <see cref="T:Newtonsoft.Json.Schema.JsonSchemaResolver"/>.
4940 </summary>
4941 <param name="writer">A <see cref="T:Newtonsoft.Json.JsonWriter"/> into which this method will write.</param>
4942 <param name="resolver">The resolver used.</param>
4943 </member>
4944 <member name="M:Newtonsoft.Json.Schema.JsonSchema.ToString">
4945 <summary>
4946 Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
4947 </summary>
4948 <returns>
4949 A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
4950 </returns>
4951 </member>
4952 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Id">
4953 <summary>
4954 Gets or sets the id.
4955 </summary>
4956 </member>
4957 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Title">
4958 <summary>
4959 Gets or sets the title.
4960 </summary>
4961 </member>
4962 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Optional">
4963 <summary>
4964 Gets or sets whether the object is optional.
4965 </summary>
4966 </member>
4967 <member name="P:Newtonsoft.Json.Schema.JsonSchema.ReadOnly">
4968 <summary>
4969 Gets or sets whether the object is read only.
4970 </summary>
4971 </member>
4972 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Hidden">
4973 <summary>
4974 Gets or sets whether the object is visible to users.
4975 </summary>
4976 </member>
4977 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Transient">
4978 <summary>
4979 Gets or sets whether the object is transient.
4980 </summary>
4981 </member>
4982 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Description">
4983 <summary>
4984 Gets or sets the description of the object.
4985 </summary>
4986 </member>
4987 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Type">
4988 <summary>
4989 Gets or sets the types of values allowed by the object.
4990 </summary>
4991 <value>The type.</value>
4992 </member>
4993 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Pattern">
4994 <summary>
4995 Gets or sets the pattern.
4996 </summary>
4997 <value>The pattern.</value>
4998 </member>
4999 <member name="P:Newtonsoft.Json.Schema.JsonSchema.MinimumLength">
5000 <summary>
5001 Gets or sets the minimum length.
5002 </summary>
5003 <value>The minimum length.</value>
5004 </member>
5005 <member name="P:Newtonsoft.Json.Schema.JsonSchema.MaximumLength">
5006 <summary>
5007 Gets or sets the maximum length.
5008 </summary>
5009 <value>The maximum length.</value>
5010 </member>
5011 <member name="P:Newtonsoft.Json.Schema.JsonSchema.MaximumDecimals">
5012 <summary>
5013 Gets or sets the maximum decimals.
5014 </summary>
5015 <value>The maximum decimals.</value>
5016 </member>
5017 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Minimum">
5018 <summary>
5019 Gets or sets the minimum.
5020 </summary>
5021 <value>The minimum.</value>
5022 </member>
5023 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Maximum">
5024 <summary>
5025 Gets or sets the maximum.
5026 </summary>
5027 <value>The maximum.</value>
5028 </member>
5029 <member name="P:Newtonsoft.Json.Schema.JsonSchema.MinimumItems">
5030 <summary>
5031 Gets or sets the minimum number of items.
5032 </summary>
5033 <value>The minimum number of items.</value>
5034 </member>
5035 <member name="P:Newtonsoft.Json.Schema.JsonSchema.MaximumItems">
5036 <summary>
5037 Gets or sets the maximum number of items.
5038 </summary>
5039 <value>The maximum number of items.</value>
5040 </member>
5041 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Items">
5042 <summary>
5043 Gets or sets the <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> of items.
5044 </summary>
5045 <value>The <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> of items.</value>
5046 </member>
5047 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Properties">
5048 <summary>
5049 Gets or sets the <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> of properties.
5050 </summary>
5051 <value>The <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> of properties.</value>
5052 </member>
5053 <member name="P:Newtonsoft.Json.Schema.JsonSchema.AdditionalProperties">
5054 <summary>
5055 Gets or sets the <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> of additional properties.
5056 </summary>
5057 <value>The <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> of additional properties.</value>
5058 </member>
5059 <member name="P:Newtonsoft.Json.Schema.JsonSchema.AllowAdditionalProperties">
5060 <summary>
5061 Gets or sets a value indicating whether additional properties are allowed.
5062 </summary>
5063 <value>
5064 <c>true</c> if additional properties are allowed; otherwise, <c>false</c>.
5065 </value>
5066 </member>
5067 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Requires">
5068 <summary>
5069 Gets or sets the required property if this property is present.
5070 </summary>
5071 <value>The required property if this property is present.</value>
5072 </member>
5073 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Identity">
5074 <summary>
5075 Gets or sets the identity.
5076 </summary>
5077 <value>The identity.</value>
5078 </member>
5079 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Enum">
5080 <summary>
5081 Gets or sets the a collection of valid enum values allowed.
5082 </summary>
5083 <value>A collection of valid enum values allowed.</value>
5084 </member>
5085 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Options">
5086 <summary>
5087 Gets or sets a collection of options.
5088 </summary>
5089 <value>A collection of options.</value>
5090 </member>
5091 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Disallow">
5092 <summary>
5093 Gets or sets disallowed types.
5094 </summary>
5095 <value>The disallow types.</value>
5096 </member>
5097 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Default">
5098 <summary>
5099 Gets or sets the default value.
5100 </summary>
5101 <value>The default value.</value>
5102 </member>
5103 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Extends">
5104 <summary>
5105 Gets or sets the extend <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/>.
5106 </summary>
5107 <value>The extended <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/>.</value>
5108 </member>
5109 <member name="P:Newtonsoft.Json.Schema.JsonSchema.Format">
5110 <summary>
5111 Gets or sets the format.
5112 </summary>
5113 <value>The format.</value>
5114 </member>
5115 <member name="T:Newtonsoft.Json.Schema.JsonSchemaGenerator">
5116 <summary>
5117 Generates a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from a specified <see cref="T:System.Type"/>.
5118 </summary>
5119 </member>
5120 <member name="M:Newtonsoft.Json.Schema.JsonSchemaGenerator.Generate(System.Type)">
5121 <summary>
5122 Generate a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from the specified type.
5123 </summary>
5124 <param name="type">The type to generate a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from.</param>
5125 <returns>A <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> generated from the specified type.</returns>
5126 </member>
5127 <member name="M:Newtonsoft.Json.Schema.JsonSchemaGenerator.Generate(System.Type,Newtonsoft.Json.Schema.JsonSchemaResolver)">
5128 <summary>
5129 Generate a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from the specified type.
5130 </summary>
5131 <param name="type">The type to generate a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from.</param>
5132 <param name="resolver">The <see cref="T:Newtonsoft.Json.Schema.JsonSchemaResolver"/> used to resolve schema references.</param>
5133 <returns>A <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> generated from the specified type.</returns>
5134 </member>
5135 <member name="M:Newtonsoft.Json.Schema.JsonSchemaGenerator.Generate(System.Type,System.Boolean)">
5136 <summary>
5137 Generate a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from the specified type.
5138 </summary>
5139 <param name="type">The type to generate a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from.</param>
5140 <param name="rootSchemaNullable">Specify whether the generated root <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> will be nullable.</param>
5141 <returns>A <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> generated from the specified type.</returns>
5142 </member>
5143 <member name="M:Newtonsoft.Json.Schema.JsonSchemaGenerator.Generate(System.Type,Newtonsoft.Json.Schema.JsonSchemaResolver,System.Boolean)">
5144 <summary>
5145 Generate a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from the specified type.
5146 </summary>
5147 <param name="type">The type to generate a <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> from.</param>
5148 <param name="resolver">The <see cref="T:Newtonsoft.Json.Schema.JsonSchemaResolver"/> used to resolve schema references.</param>
5149 <param name="rootSchemaNullable">Specify whether the generated root <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> will be nullable.</param>
5150 <returns>A <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/> generated from the specified type.</returns>
5151 </member>
5152 <member name="P:Newtonsoft.Json.Schema.JsonSchemaGenerator.UndefinedSchemaIdHandling">
5153 <summary>
5154 Gets or sets how undefined schemas are handled by the serializer.
5155 </summary>
5156 </member>
5157 <member name="P:Newtonsoft.Json.Schema.JsonSchemaGenerator.ContractResolver">
5158 <summary>
5159 Gets or sets the contract resolver.
5160 </summary>
5161 <value>The contract resolver.</value>
5162 </member>
5163 <member name="T:Newtonsoft.Json.Schema.JsonSchemaType">
5164 <summary>
5165 The value types allowed by the <see cref="T:Newtonsoft.Json.Schema.JsonSchema"/>.
5166 </summary>
5167 </member>
5168 <member name="F:Newtonsoft.Json.Schema.JsonSchemaType.None">
5169 <summary>
5170 No type specified.
5171 </summary>
5172 </member>
5173 <member name="F:Newtonsoft.Json.Schema.JsonSchemaType.String">
5174 <summary>
5175 String type.
5176 </summary>
5177 </member>
5178 <member name="F:Newtonsoft.Json.Schema.JsonSchemaType.Float">
5179 <summary>
5180 Float type.
5181 </summary>
5182 </member>
5183 <member name="F:Newtonsoft.Json.Schema.JsonSchemaType.Integer">
5184 <summary>
5185 Integer type.
5186 </summary>
5187 </member>
5188 <member name="F:Newtonsoft.Json.Schema.JsonSchemaType.Boolean">
5189 <summary>
5190 Boolean type.
5191 </summary>
5192 </member>
5193 <member name="F:Newtonsoft.Json.Schema.JsonSchemaType.Object">
5194 <summary>
5195 Object type.
5196 </summary>
5197 </member>
5198 <member name="F:Newtonsoft.Json.Schema.JsonSchemaType.Array">
5199 <summary>
5200 Array type.
5201 </summary>
5202 </member>
5203 <member name="F:Newtonsoft.Json.Schema.JsonSchemaType.Null">
5204 <summary>
5205 Null type.
5206 </summary>
5207 </member>
5208 <member name="F:Newtonsoft.Json.Schema.JsonSchemaType.Any">
5209 <summary>
5210 Any type.
5211 </summary>
5212 </member>
5213 <member name="T:Newtonsoft.Json.Serialization.JsonObjectContract">
5214 <summary>
5215 Contract details for a <see cref="T:System.Type"/> used by the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
5216 </summary>
5217 </member>
5218 <member name="M:Newtonsoft.Json.Serialization.JsonObjectContract.#ctor(System.Type)">
5219 <summary>
5220 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.JsonObjectContract"/> class.
5221 </summary>
5222 <param name="underlyingType">The underlying type for the contract.</param>
5223 </member>
5224 <member name="P:Newtonsoft.Json.Serialization.JsonObjectContract.MemberSerialization">
5225 <summary>
5226 Gets or sets the object member serialization.
5227 </summary>
5228 <value>The member object serialization.</value>
5229 </member>
5230 <member name="P:Newtonsoft.Json.Serialization.JsonObjectContract.Properties">
5231 <summary>
5232 Gets the object's properties.
5233 </summary>
5234 <value>The object's properties.</value>
5235 </member>
5236 <member name="P:Newtonsoft.Json.Serialization.JsonObjectContract.ParametrizedConstructor">
5237 <summary>
5238 Gets or sets the parametrized constructor used to create the object.
5239 </summary>
5240 <value>The parametrized constructor.</value>
5241 </member>
5242 <member name="T:Newtonsoft.Json.Serialization.OnErrorAttribute">
5243 <summary>
5244 When applied to a method, specifies that the method is called when an error occurs serializing an object.
5245 </summary>
5246 </member>
5247 <member name="T:Newtonsoft.Json.Serialization.ReflectionValueProvider">
5248 <summary>
5249 Get and set values for a <see cref="T:System.Reflection.MemberInfo"/> using reflection.
5250 </summary>
5251 </member>
5252 <member name="M:Newtonsoft.Json.Serialization.ReflectionValueProvider.#ctor(System.Reflection.MemberInfo)">
5253 <summary>
5254 Initializes a new instance of the <see cref="T:Newtonsoft.Json.Serialization.ReflectionValueProvider"/> class.
5255 </summary>
5256 <param name="memberInfo">The member info.</param>
5257 </member>
5258 <member name="M:Newtonsoft.Json.Serialization.ReflectionValueProvider.SetValue(System.Object,System.Object)">
5259 <summary>
5260 Sets the value.
5261 </summary>
5262 <param name="target">The target to set the value on.</param>
5263 <param name="value">The value to set on the target.</param>
5264 </member>
5265 <member name="M:Newtonsoft.Json.Serialization.ReflectionValueProvider.GetValue(System.Object)">
5266 <summary>
5267 Gets the value.
5268 </summary>
5269 <param name="target">The target to get the value from.</param>
5270 <returns>The value.</returns>
5271 </member>
5272 <member name="T:Newtonsoft.Json.TypeNameHandling">
5273 <summary>
5274 Specifies type name handling options for the <see cref="T:Newtonsoft.Json.JsonSerializer"/>.
5275 </summary>
5276 </member>
5277 <member name="F:Newtonsoft.Json.TypeNameHandling.None">
5278 <summary>
5279 Do not include the .NET type name when serializing types.
5280 </summary>
5281 </member>
5282 <member name="F:Newtonsoft.Json.TypeNameHandling.Objects">
5283 <summary>
5284 Include the .NET type name when serializing into a JSON object structure.
5285 </summary>
5286 </member>
5287 <member name="F:Newtonsoft.Json.TypeNameHandling.Arrays">
5288 <summary>
5289 Include the .NET type name when serializing into a JSON array structure.
5290 </summary>
5291 </member>
5292 <member name="F:Newtonsoft.Json.TypeNameHandling.All">
5293 <summary>
5294 Always include the .NET type name when serializing.
5295 </summary>
5296 </member>
5297 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.Convert``1(System.Object)">
5298 <summary>
5299 Converts the value to the specified type.
5300 </summary>
5301 <typeparam name="T">The type to convert the value to.</typeparam>
5302 <param name="initialValue">The value to convert.</param>
5303 <returns>The converted type.</returns>
5304 </member>
5305 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.Convert``1(System.Object,System.Globalization.CultureInfo)">
5306 <summary>
5307 Converts the value to the specified type.
5308 </summary>
5309 <typeparam name="T">The type to convert the value to.</typeparam>
5310 <param name="initialValue">The value to convert.</param>
5311 <param name="culture">The culture to use when converting.</param>
5312 <returns>The converted type.</returns>
5313 </member>
5314 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.Convert(System.Object,System.Globalization.CultureInfo,System.Type)">
5315 <summary>
5316 Converts the value to the specified type.
5317 </summary>
5318 <param name="initialValue">The value to convert.</param>
5319 <param name="culture">The culture to use when converting.</param>
5320 <param name="targetType">The type to convert the value to.</param>
5321 <returns>The converted type.</returns>
5322 </member>
5323 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.TryConvert``1(System.Object,``0@)">
5324 <summary>
5325 Converts the value to the specified type.
5326 </summary>
5327 <typeparam name="T">The type to convert the value to.</typeparam>
5328 <param name="initialValue">The value to convert.</param>
5329 <param name="convertedValue">The converted value if the conversion was successful or the default value of <c>T</c> if it failed.</param>
5330 <returns>
5331 <c>true</c> if <c>initialValue</c> was converted successfully; otherwise, <c>false</c>.
5332 </returns>
5333 </member>
5334 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.TryConvert``1(System.Object,System.Globalization.CultureInfo,``0@)">
5335 <summary>
5336 Converts the value to the specified type.
5337 </summary>
5338 <typeparam name="T">The type to convert the value to.</typeparam>
5339 <param name="initialValue">The value to convert.</param>
5340 <param name="culture">The culture to use when converting.</param>
5341 <param name="convertedValue">The converted value if the conversion was successful or the default value of <c>T</c> if it failed.</param>
5342 <returns>
5343 <c>true</c> if <c>initialValue</c> was converted successfully; otherwise, <c>false</c>.
5344 </returns>
5345 </member>
5346 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.TryConvert(System.Object,System.Globalization.CultureInfo,System.Type,System.Object@)">
5347 <summary>
5348 Converts the value to the specified type.
5349 </summary>
5350 <param name="initialValue">The value to convert.</param>
5351 <param name="culture">The culture to use when converting.</param>
5352 <param name="targetType">The type to convert the value to.</param>
5353 <param name="convertedValue">The converted value if the conversion was successful or the default value of <c>T</c> if it failed.</param>
5354 <returns>
5355 <c>true</c> if <c>initialValue</c> was converted successfully; otherwise, <c>false</c>.
5356 </returns>
5357 </member>
5358 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast``1(System.Object)">
5359 <summary>
5360 Converts the value to the specified type. If the value is unable to be converted, the
5361 value is checked whether it assignable to the specified type.
5362 </summary>
5363 <typeparam name="T">The type to convert or cast the value to.</typeparam>
5364 <param name="initialValue">The value to convert.</param>
5365 <returns>The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type</returns>
5366 </member>
5367 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast``1(System.Object,System.Globalization.CultureInfo)">
5368 <summary>
5369 Converts the value to the specified type. If the value is unable to be converted, the
5370 value is checked whether it assignable to the specified type.
5371 </summary>
5372 <typeparam name="T">The type to convert or cast the value to.</typeparam>
5373 <param name="initialValue">The value to convert.</param>
5374 <param name="culture">The culture to use when converting.</param>
5375 <returns>The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type</returns>
5376 </member>
5377 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast(System.Object,System.Globalization.CultureInfo,System.Type)">
5378 <summary>
5379 Converts the value to the specified type. If the value is unable to be converted, the
5380 value is checked whether it assignable to the specified type.
5381 </summary>
5382 <param name="initialValue">The value to convert.</param>
5383 <param name="culture">The culture to use when converting.</param>
5384 <param name="targetType">The type to convert or cast the value to.</param>
5385 <returns>
5386 The converted type. If conversion was unsuccessful, the initial value
5387 is returned if assignable to the target type.
5388 </returns>
5389 </member>
5390 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.TryConvertOrCast``1(System.Object,``0@)">
5391 <summary>
5392 Converts the value to the specified type. If the value is unable to be converted, the
5393 value is checked whether it assignable to the specified type.
5394 </summary>
5395 <typeparam name="T">The type to convert the value to.</typeparam>
5396 <param name="initialValue">The value to convert.</param>
5397 <param name="convertedValue">The converted value if the conversion was successful or the default value of <c>T</c> if it failed.</param>
5398 <returns>
5399 <c>true</c> if <c>initialValue</c> was converted successfully or is assignable; otherwise, <c>false</c>.
5400 </returns>
5401 </member>
5402 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.TryConvertOrCast``1(System.Object,System.Globalization.CultureInfo,``0@)">
5403 <summary>
5404 Converts the value to the specified type. If the value is unable to be converted, the
5405 value is checked whether it assignable to the specified type.
5406 </summary>
5407 <typeparam name="T">The type to convert the value to.</typeparam>
5408 <param name="initialValue">The value to convert.</param>
5409 <param name="culture">The culture to use when converting.</param>
5410 <param name="convertedValue">The converted value if the conversion was successful or the default value of <c>T</c> if it failed.</param>
5411 <returns>
5412 <c>true</c> if <c>initialValue</c> was converted successfully or is assignable; otherwise, <c>false</c>.
5413 </returns>
5414 </member>
5415 <member name="M:Newtonsoft.Json.Utilities.ConvertUtils.TryConvertOrCast(System.Object,System.Globalization.CultureInfo,System.Type,System.Object@)">
5416 <summary>
5417 Converts the value to the specified type. If the value is unable to be converted, the
5418 value is checked whether it assignable to the specified type.
5419 </summary>
5420 <param name="initialValue">The value to convert.</param>
5421 <param name="culture">The culture to use when converting.</param>
5422 <param name="targetType">The type to convert the value to.</param>
5423 <param name="convertedValue">The converted value if the conversion was successful or the default value of <c>T</c> if it failed.</param>
5424 <returns>
5425 <c>true</c> if <c>initialValue</c> was converted successfully or is assignable; otherwise, <c>false</c>.
5426 </returns>
5427 </member>
5428 <member name="M:Newtonsoft.Json.Utilities.EnumUtils.Parse``1(System.String)">
5429 <summary>
5430 Parses the specified enum member name, returning it's value.
5431 </summary>
5432 <param name="enumMemberName">Name of the enum member.</param>
5433 <returns></returns>
5434 </member>
5435 <member name="M:Newtonsoft.Json.Utilities.EnumUtils.Parse``1(System.String,System.Boolean)">
5436 <summary>
5437 Parses the specified enum member name, returning it's value.
5438 </summary>
5439 <param name="enumMemberName">Name of the enum member.</param>
5440 <param name="ignoreCase">If set to <c>true</c> ignore case.</param>
5441 <returns></returns>
5442 </member>
5443 <member name="M:Newtonsoft.Json.Utilities.EnumUtils.GetNamesAndValues``1">
5444 <summary>
5445 Gets a dictionary of the names and values of an Enum type.
5446 </summary>
5447 <returns></returns>
5448 </member>
5449 <member name="M:Newtonsoft.Json.Utilities.EnumUtils.GetNamesAndValues``2">
5450 <summary>
5451 Gets a dictionary of the names and values of an Enum type.
5452 </summary>
5453 <returns></returns>
5454 </member>
5455 <member name="M:Newtonsoft.Json.Utilities.EnumUtils.GetNamesAndValues``1(System.Type)">
5456 <summary>
5457 Gets a dictionary of the names and values of an Enum type.
5458 </summary>
5459 <param name="enumType">The enum type to get names and values for.</param>
5460 <returns></returns>
5461 </member>
5462 <member name="M:Newtonsoft.Json.Utilities.EnumUtils.GetMaximumValue``1(System.Type)">
5463 <summary>
5464 Gets the maximum valid value of an Enum type. Flags enums are ORed.
5465 </summary>
5466 <typeparam name="TEnumType">The type of the returned value. Must be assignable from the enum's underlying value type.</typeparam>
5467 <param name="enumType">The enum type to get the maximum value for.</param>
5468 <returns></returns>
5469 </member>
5470 <member name="T:Newtonsoft.Json.JsonToken">
5471 <summary>
5472 Specifies the type of Json token.
5473 </summary>
5474 </member>
5475 <member name="F:Newtonsoft.Json.JsonToken.None">
5476 <summary>
5477 This is returned by the <see cref="T:Newtonsoft.Json.JsonReader"/> if a <see cref="M:Newtonsoft.Json.JsonReader.Read"/> method has not been called.
5478 </summary>
5479 </member>
5480 <member name="F:Newtonsoft.Json.JsonToken.StartObject">
5481 <summary>
5482 An object start token.
5483 </summary>
5484 </member>
5485 <member name="F:Newtonsoft.Json.JsonToken.StartArray">
5486 <summary>
5487 An array start token.
5488 </summary>
5489 </member>
5490 <member name="F:Newtonsoft.Json.JsonToken.StartConstructor">
5491 <summary>
5492 A constructor start token.
5493 </summary>
5494 </member>
5495 <member name="F:Newtonsoft.Json.JsonToken.PropertyName">
5496 <summary>
5497 An object property name.
5498 </summary>
5499 </member>
5500 <member name="F:Newtonsoft.Json.JsonToken.Comment">
5501 <summary>
5502 A comment.
5503 </summary>
5504 </member>
5505 <member name="F:Newtonsoft.Json.JsonToken.Raw">
5506 <summary>
5507 Raw JSON.
5508 </summary>
5509 </member>
5510 <member name="F:Newtonsoft.Json.JsonToken.Integer">
5511 <summary>
5512 An interger.
5513 </summary>
5514 </member>
5515 <member name="F:Newtonsoft.Json.JsonToken.Float">
5516 <summary>
5517 A float.
5518 </summary>
5519 </member>
5520 <member name="F:Newtonsoft.Json.JsonToken.String">
5521 <summary>
5522 A string.
5523 </summary>
5524 </member>
5525 <member name="F:Newtonsoft.Json.JsonToken.Boolean">
5526 <summary>
5527 A boolean.
5528 </summary>
5529 </member>
5530 <member name="F:Newtonsoft.Json.JsonToken.Null">
5531 <summary>
5532 A null token.
5533 </summary>
5534 </member>
5535 <member name="F:Newtonsoft.Json.JsonToken.Undefined">
5536 <summary>
5537 An undefined token.
5538 </summary>
5539 </member>
5540 <member name="F:Newtonsoft.Json.JsonToken.EndObject">
5541 <summary>
5542 An object end token.
5543 </summary>
5544 </member>
5545 <member name="F:Newtonsoft.Json.JsonToken.EndArray">
5546 <summary>
5547 An array end token.
5548 </summary>
5549 </member>
5550 <member name="F:Newtonsoft.Json.JsonToken.EndConstructor">
5551 <summary>
5552 A constructor end token.
5553 </summary>
5554 </member>
5555 <member name="F:Newtonsoft.Json.JsonToken.Date">
5556 <summary>
5557 A Date.
5558 </summary>
5559 </member>
5560 <member name="F:Newtonsoft.Json.JsonToken.Bytes">
5561 <summary>
5562 Byte data.
5563 </summary>
5564 </member>
5565 <member name="T:Newtonsoft.Json.WriteState">
5566 <summary>
5567 Specifies the state of the <see cref="T:Newtonsoft.Json.JsonWriter"/>.
5568 </summary>
5569 </member>
5570 <member name="F:Newtonsoft.Json.WriteState.Error">
5571 <summary>
5572 An exception has been thrown, which has left the <see cref="T:Newtonsoft.Json.JsonWriter"/> in an invalid state.
5573 You may call the <see cref="M:Newtonsoft.Json.JsonWriter.Close"/> method to put the <see cref="T:Newtonsoft.Json.JsonWriter"/> in the <c>Closed</c> state.
5574 Any other <see cref="T:Newtonsoft.Json.JsonWriter"/> method calls results in an <see cref="T:System.InvalidOperationException"/> being thrown.
5575 </summary>
5576 </member>
5577 <member name="F:Newtonsoft.Json.WriteState.Closed">
5578 <summary>
5579 The <see cref="M:Newtonsoft.Json.JsonWriter.Close"/> method has been called.
5580 </summary>
5581 </member>
5582 <member name="F:Newtonsoft.Json.WriteState.Object">
5583 <summary>
5584 An object is being written.
5585 </summary>
5586 </member>
5587 <member name="F:Newtonsoft.Json.WriteState.Array">
5588 <summary>
5589 A array is being written.
5590 </summary>
5591 </member>
5592 <member name="F:Newtonsoft.Json.WriteState.Constructor">
5593 <summary>
5594 A constructor is being written.
5595 </summary>
5596 </member>
5597 <member name="F:Newtonsoft.Json.WriteState.Property">
5598 <summary>
5599 A property is being written.
5600 </summary>
5601 </member>
5602 <member name="F:Newtonsoft.Json.WriteState.Start">
5603 <summary>
5604 A write method has not been called.
5605 </summary>
5606 </member>
5607 <member name="T:Newtonsoft.Json.Formatting">
5608 <summary>
5609 Specifies formatting options for the <see cref="T:Newtonsoft.Json.JsonTextWriter"/>.
5610 </summary>
5611 </member>
5612 <member name="F:Newtonsoft.Json.Formatting.None">
5613 <summary>
5614 No special formatting is applied. This is the default.
5615 </summary>
5616 </member>
5617 <member name="F:Newtonsoft.Json.Formatting.Indented">
5618 <summary>
5619 Causes child objects to be indented according to the <see cref="P:Newtonsoft.Json.JsonTextWriter.Indentation"/> and <see cref="P:Newtonsoft.Json.JsonTextWriter.IndentChar"/> settings.
5620 </summary>
5621 </member>
5622 <member name="T:Newtonsoft.Json.Utilities.StringBuffer">
5623 <summary>
5624 Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer.
5625 </summary>
5626 </member>
5627 <member name="M:Newtonsoft.Json.Utilities.CollectionUtils.IsNullOrEmpty(System.Collections.ICollection)">
5628 <summary>
5629 Determines whether the collection is null or empty.
5630 </summary>
5631 <param name="collection">The collection.</param>
5632 <returns>
5633 <c>true</c> if the collection is null or empty; otherwise, <c>false</c>.
5634 </returns>
5635 </member>
5636 <member name="M:Newtonsoft.Json.Utilities.CollectionUtils.IsNullOrEmpty``1(System.Collections.Generic.ICollection{``0})">
5637 <summary>
5638 Determines whether the collection is null or empty.
5639 </summary>
5640 <param name="collection">The collection.</param>
5641 <returns>
5642 <c>true</c> if the collection is null or empty; otherwise, <c>false</c>.
5643 </returns>
5644 </member>
5645 <member name="M:Newtonsoft.Json.Utilities.CollectionUtils.IsNullOrEmptyOrDefault``1(System.Collections.Generic.IList{``0})">
5646 <summary>
5647 Determines whether the collection is null, empty or its contents are uninitialized values.
5648 </summary>
5649 <param name="list">The list.</param>
5650 <returns>
5651 <c>true</c> if the collection is null or empty or its contents are uninitialized values; otherwise, <c>false</c>.
5652 </returns>
5653 </member>
5654 <member name="M:Newtonsoft.Json.Utilities.CollectionUtils.Slice``1(System.Collections.Generic.IList{``0},System.Nullable{System.Int32},System.Nullable{System.Int32})">
5655 <summary>
5656 Makes a slice of the specified list in between the start and end indexes.
5657 </summary>
5658 <param name="list">The list.</param>
5659 <param name="start">The start index.</param>
5660 <param name="end">The end index.</param>
5661 <returns>A slice of the list.</returns>
5662 </member>
5663 <member name="M:Newtonsoft.Json.Utilities.CollectionUtils.Slice``1(System.Collections.Generic.IList{``0},System.Nullable{System.Int32},System.Nullable{System.Int32},System.Nullable{System.Int32})">
5664 <summary>
5665 Makes a slice of the specified list in between the start and end indexes,
5666 getting every so many items based upon the step.
5667 </summary>
5668 <param name="list">The list.</param>
5669 <param name="start">The start index.</param>
5670 <param name="end">The end index.</param>
5671 <param name="step">The step.</param>
5672 <returns>A slice of the list.</returns>
5673 </member>
5674 <member name="M:Newtonsoft.Json.Utilities.CollectionUtils.GroupBy``2(System.Collections.Generic.ICollection{``1},System.Func{``1,``0})">
5675 <summary>
5676 Group the collection using a function which returns the key.
5677 </summary>
5678 <param name="source">The source collection to group.</param>
5679 <param name="keySelector">The key selector.</param>
5680 <returns>A Dictionary with each key relating to a list of objects in a list grouped under it.</returns>
5681 </member>
5682 <member name="M:Newtonsoft.Json.Utilities.CollectionUtils.AddRange``1(System.Collections.Generic.IList{``0},System.Collections.Generic.IEnumerable{``0})">
5683 <summary>
5684 Adds the elements of the specified collection to the specified generic IList.
5685 </summary>
5686 <param name="initial">The list to add to.</param>
5687 <param name="collection">The collection of elements to add.</param>
5688 </member>
5689 <member name="M:Newtonsoft.Json.Utilities.ReflectionUtils.GetCollectionItemType(System.Type)">
5690 <summary>
5691 Gets the type of the typed collection's items.
5692 </summary>
5693 <param name="type">The type.</param>
5694 <returns>The type of the typed collection's items.</returns>
5695 </member>
5696 <member name="M:Newtonsoft.Json.Utilities.ReflectionUtils.ItemsUnitializedValue``1(System.Collections.Generic.IList{``0})">
5697 <summary>
5698 Tests whether the list's items are their unitialized value.
5699 </summary>
5700 <param name="list">The list.</param>
5701 <returns>Whether the list's items are their unitialized value</returns>
5702 </member>
5703 <member name="M:Newtonsoft.Json.Utilities.ReflectionUtils.GetMemberUnderlyingType(System.Reflection.MemberInfo)">
5704 <summary>
5705 Gets the member's underlying type.
5706 </summary>
5707 <param name="member">The member.</param>
5708 <returns>The underlying type of the member.</returns>
5709 </member>
5710 <member name="M:Newtonsoft.Json.Utilities.ReflectionUtils.IsIndexedProperty(System.Reflection.MemberInfo)">
5711 <summary>
5712 Determines whether the member is an indexed property.
5713 </summary>
5714 <param name="member">The member.</param>
5715 <returns>
5716 <c>true</c> if the member is an indexed property; otherwise, <c>false</c>.
5717 </returns>
5718 </member>
5719 <member name="M:Newtonsoft.Json.Utilities.ReflectionUtils.IsIndexedProperty(System.Reflection.PropertyInfo)">
5720 <summary>
5721 Determines whether the property is an indexed property.
5722 </summary>
5723 <param name="property">The property.</param>
5724 <returns>
5725 <c>true</c> if the property is an indexed property; otherwise, <c>false</c>.
5726 </returns>
5727 </member>
5728 <member name="M:Newtonsoft.Json.Utilities.ReflectionUtils.GetMemberValue(System.Reflection.MemberInfo,System.Object)">
5729 <summary>
5730 Gets the member's value on the object.
5731 </summary>
5732 <param name="member">The member.</param>
5733 <param name="target">The target object.</param>
5734 <returns>The member's value on the object.</returns>
5735 </member>
5736 <member name="M:Newtonsoft.Json.Utilities.ReflectionUtils.SetMemberValue(System.Reflection.MemberInfo,System.Object,System.Object)">
5737 <summary>
5738 Sets the member's value on the target object.
5739 </summary>
5740 <param name="member">The member.</param>
5741 <param name="target">The target.</param>
5742 <param name="value">The value.</param>
5743 </member>
5744 <member name="M:Newtonsoft.Json.Utilities.ReflectionUtils.CanReadMemberValue(System.Reflection.MemberInfo)">
5745 <summary>
5746 Determines whether the specified MemberInfo can be read.
5747 </summary>
5748 <param name="member">The MemberInfo to determine whether can be read.</param>
5749 <returns>
5750 <c>true</c> if the specified MemberInfo can be read; otherwise, <c>false</c>.
5751 </returns>
5752 </member>
5753 <member name="M:Newtonsoft.Json.Utilities.ReflectionUtils.CanSetMemberValue(System.Reflection.MemberInfo)">
5754 <summary>
5755 Determines whether the specified MemberInfo can be set.
5756 </summary>
5757 <param name="member">The MemberInfo to determine whether can be set.</param>
5758 <returns>
5759 <c>true</c> if the specified MemberInfo can be set; otherwise, <c>false</c>.
5760 </returns>
5761 </member>
5762 <member name="M:Newtonsoft.Json.Utilities.StringUtils.ContainsWhiteSpace(System.String)">
5763 <summary>
5764 Determines whether the string contains white space.
5765 </summary>
5766 <param name="s">The string to test for white space.</param>
5767 <returns>
5768 <c>true</c> if the string contains white space; otherwise, <c>false</c>.
5769 </returns>
5770 </member>
5771 <member name="M:Newtonsoft.Json.Utilities.StringUtils.IsWhiteSpace(System.String)">
5772 <summary>
5773 Determines whether the string is all white space. Empty string will return false.
5774 </summary>
5775 <param name="s">The string to test whether it is all white space.</param>
5776 <returns>
5777 <c>true</c> if the string is all white space; otherwise, <c>false</c>.
5778 </returns>
5779 </member>
5780 <member name="M:Newtonsoft.Json.Utilities.StringUtils.EnsureEndsWith(System.String,System.String)">
5781 <summary>
5782 Ensures the target string ends with the specified string.
5783 </summary>
5784 <param name="target">The target.</param>
5785 <param name="value">The value.</param>
5786 <returns>The target string with the value string at the end.</returns>
5787 </member>
5788 <member name="M:Newtonsoft.Json.Utilities.StringUtils.IfNotNullOrEmpty(System.String,System.Action{System.String})">
5789 <summary>
5790 Perform an action if the string is not null or empty.
5791 </summary>
5792 <param name="value">The value.</param>
5793 <param name="action">The action to perform.</param>
5794 </member>
5795 <member name="M:Newtonsoft.Json.Utilities.StringUtils.Indent(System.String,System.Int32)">
5796 <summary>
5797 Indents the specified string.
5798 </summary>
5799 <param name="s">The string to indent.</param>
5800 <param name="indentation">The number of characters to indent by.</param>
5801 <returns></returns>
5802 </member>
5803 <member name="M:Newtonsoft.Json.Utilities.StringUtils.Indent(System.String,System.Int32,System.Char)">
5804 <summary>
5805 Indents the specified string.
5806 </summary>
5807 <param name="s">The string to indent.</param>
5808 <param name="indentation">The number of characters to indent by.</param>
5809 <param name="indentChar">The indent character.</param>
5810 <returns></returns>
5811 </member>
5812 <member name="M:Newtonsoft.Json.Utilities.StringUtils.NumberLines(System.String)">
5813 <summary>
5814 Numbers the lines.
5815 </summary>
5816 <param name="s">The string to number.</param>
5817 <returns></returns>
5818 </member>
5819 <member name="M:Newtonsoft.Json.Utilities.StringUtils.NullEmptyString(System.String)">
5820 <summary>
5821 Nulls an empty string.
5822 </summary>
5823 <param name="s">The string.</param>
5824 <returns>Null if the string was null, otherwise the string unchanged.</returns>
5825 </member>
5826 </members>
5827</doc>
diff --git a/bin/Newtonsoft.Json.pdb b/bin/Newtonsoft.Json.pdb
deleted file mode 100644
index 892546a..0000000
--- a/bin/Newtonsoft.Json.pdb
+++ /dev/null
Binary files differ
diff --git a/bin/lib32/BulletSim.dll b/bin/lib32/BulletSim.dll
index ce0dd9d..5673b91 100755
--- a/bin/lib32/BulletSim.dll
+++ b/bin/lib32/BulletSim.dll
Binary files differ
diff --git a/bin/lib32/libBulletSim.so b/bin/lib32/libBulletSim.so
index d2d6540..a9768b2 100755
--- a/bin/lib32/libBulletSim.so
+++ b/bin/lib32/libBulletSim.so
Binary files differ
diff --git a/bin/lib64/BulletSim.dll b/bin/lib64/BulletSim.dll
index 67d3f1c..de9df08 100755
--- a/bin/lib64/BulletSim.dll
+++ b/bin/lib64/BulletSim.dll
Binary files differ
diff --git a/bin/lib64/libBulletSim.so b/bin/lib64/libBulletSim.so
index 9a5c171..aefab07 100755
--- a/bin/lib64/libBulletSim.so
+++ b/bin/lib64/libBulletSim.so
Binary files differ
diff --git a/prebuild.xml b/prebuild.xml
index d0f6726..416fdc0 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -3385,6 +3385,7 @@
3385 3385
3386 <ReferencePath>../../../bin/</ReferencePath> 3386 <ReferencePath>../../../bin/</ReferencePath>
3387 <Reference name="System"/> 3387 <Reference name="System"/>
3388 <Reference name="System.Core"/>
3388 <Reference name="System.Xml"/> 3389 <Reference name="System.Xml"/>
3389 <Reference name="System.Data"/> 3390 <Reference name="System.Data"/>
3390 <Reference name="log4net" path="../../../bin/"/> 3391 <Reference name="log4net" path="../../../bin/"/>