<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:mstns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" id="physicsSim">
	<xs:element name="kinematics">
		<xs:annotation>
			<xs:appinfo />
			<xs:documentation source="https://www.euclideanspace.com/threed/animation/datastructure/usescenegraph/index.htm" />
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="position" type="SFVec3f" />
				<xs:element name="velocity" type="SFVec3f" />
				<xs:element name="acceleration" type="SFVec3f" />
				<xs:element name="angularPosition" type="SFRotation" />
				<xs:element name="angularVelocity" type="SFRotation" />
				<xs:element name="angularAcceleration" type="SFRotation" />
				<xs:element name="randomMinMax" type="SFVec2f" />
				<xs:element name="initPosition" type="SFVec3f" />
				<xs:element name="initVelocity" type="SFVec3f" />
				<xs:element name="initAcceleration" type="SFVec3f" />
				<xs:element name="initAngularPosition" type="SFRotation" />
				<xs:element name="initAngularVelocity" type="SFRotation" />
				<xs:element name="initAngularAcceleration" type="SFRotation" />
				<xs:element name="enable" type="SFBool" />
				<xs:element name="rewind" type="SFBool" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Dynamics">
		<xs:annotation>
			<xs:appinfo />
			<xs:documentation source="https://www.euclideanspace.com/threed/animation/datastructure/usescenegraph/index.htm" />
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="collideWith" type="Transform" />
				<xs:element name="mass" type="xs:double" />
				<xs:element name="centreOfMass" type="SFVec3f" />
				<xs:element name="inertiaMatrix" type="xs:string" />
				<xs:element name="gravity" type="xs:double" />
				<xs:element name="material" type="xs:string" />
				<xs:element name="solid" type="SFVec3f" />
				<xs:element name="friction" type="SFVec3f" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="constraints">
		<xs:annotation>
			<xs:appinfo />
			<xs:documentation source="https://www.euclideanspace.com/threed/animation/datastructure/usescenegraph/index.htm" />
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="constrainTranslation" type="xs:string" />
				<xs:element name="minTranslation" type="SFVec3f" />
				<xs:element name="maxTranslation" type="SFVec3f" />
				<xs:element name="constrainRotation" type="xs:string" />
				<xs:element name="minRotation" type="SFRotation" />
				<xs:element name="maxRotation" type="SFRotation" />
				<xs:element name="chain" type="xs:string" />
				<xs:element name="action" type="xs:string" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="collisionDetect">
		<xs:annotation>
			<xs:appinfo />
			<xs:documentation source="https://www.euclideanspace.com/threed/animation/datastructure/usescenegraph/index.htm" />
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="overlap" type="SFBool" />
				<xs:element name="flag" type="SFBool" />
				<xs:element name="clearFlag" type="SFBool" />
				<xs:element name="other" type="Transform" />
				<xs:element name="useGeometry" type="SFBool" />
				<xs:element name="impactLocation" type="SFVec3f" />
				<xs:element name="impactTime" type="xs:time" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="CollisionAction">
		<xs:annotation>
			<xs:appinfo />
			<xs:documentation source="https://www.euclideanspace.com/threed/animation/datastructure/usescenegraph/index.htm" />
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="collideWith" type="xs:string" />
				<xs:element name="actionThis" type="xs:string" />
				<xs:element name="actionOther" type="xs:string" />
				<xs:element name="CreateNew" type="xs:string" />
				<xs:element name="CreateNumber" type="xs:int" />
				<xs:element name="CreateAt" type="xs:string" />
				<xs:element name="Counter" type="xs:int" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Multiple">
		<xs:annotation>
			<xs:appinfo />
			<xs:documentation source="https://www.euclideanspace.com/threed/animation/datastructure/usescenegraph/index.htm" />
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="type" type="xs:string" />
				<xs:element name="initialInstances" type="xs:int" />
				<xs:element name="maximumInstances" type="SFVec3f" />
				<xs:element name="addInstance" type="xs:string" />
				<xs:element name="removeInstance" type="xs:string" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Transform">
		<xs:annotation>
			<xs:appinfo />
			<xs:documentation source="http://www.web3D.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#Transform" />
		</xs:annotation>
		<xs:complexType mixed="false">
			<xs:complexContent mixed="false">
				<xs:extension base="X3DGroupingNode">
					<xs:attribute name="center" type="SFVec3f" default="0 0 0" />
					<xs:attribute name="rotation" type="SFRotation" default="0 0 1 0" />
					<xs:attribute name="scale" type="SFVec3f" default="1 1 1" />
					<xs:attribute name="scaleOrientation" type="SFRotation" default="0 0 1 0" />
					<xs:attribute name="translation" type="SFVec3f" default="0 0 0" />
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="SFVec3f">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="x" type="xs:double" />
				<xs:element name="y" type="xs:double" />
				<xs:element name="z" type="xs:double" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="SFRotation">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="w" type="xs:double" />
				<xs:element name="x" type="xs:double" />
				<xs:element name="y" type="xs:double" />
				<xs:element name="z" type="xs:double" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="SFVec2f">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="x" type="xs:double" />
				<xs:element name="y" type="xs:double" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="SFBool">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="value" type="xs:boolean" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>