{\r
public Vector3 offset;\r
public Quaternion rotation;\r
+ }\r
+\r
+ public class animationwrapper\r
+ {\r
+ public BinBVHAnimationReader anim;\r
+\r
+ public float mRunTime;\r
+\r
+ public enum animstate\r
+ {\r
+ STATE_EASEIN,\r
+ STATE_EASEOUT,\r
+ STATE_PLAY,\r
+ STATE_STOP\r
+ }\r
+\r
+ public animstate playstate;\r
+\r
+ public animationwrapper(BinBVHAnimationReader anim)\r
+ {\r
+ this.anim = anim;\r
+ playstate = animstate.STATE_EASEIN;\r
+ mRunTime = 0;\r
+ }\r
+\r
+\r
}
public class skeleton
public static Dictionary<int, string> mLowerMeshMapping = new Dictionary<int, string>();
public static Dictionary<int, string> mHeadMeshMapping = new Dictionary<int, string>();
- public List<BinBVHAnimationReader> mAnimations = new List<BinBVHAnimationReader>();
+ // public List<BinBVHAnimationReader> mAnimations = new List<BinBVHAnimationReader>();\r
+ public List<animationwrapper> mAnimationsWrapper = new List<animationwrapper>();
public static Dictionary<UUID, RenderAvatar> mAnimationTransactions = new Dictionary<UUID, RenderAvatar>();
public int loopinframe;
public int loopoutframe;\r
-\r
- public bool finished;
+
}
public void flushanimations()
- {
- lock (mAnimations)
- {
- mAnimations.Clear();
+ {\r
+ lock (mAnimationsWrapper)
+ {\r
+ mAnimationsWrapper.Clear();
}
}
state.currenttime_pos = 0;
state.loopinframe = 0;
- state.loopoutframe = joint.rotationkeys.Length - 1;\r
-\r
- state.finished = false;
-
-
+ state.loopoutframe = joint.rotationkeys.Length - 1;
if (b.Loop == true)
{
b.joints[pos].Tag = state;
pos++;
- }
-
- lock (av.glavatar.skel.mAnimations)
- {
- av.glavatar.skel.mAnimations.Add(b);\r
+ }\r
\r
+ lock (av.glavatar.skel.mAnimationsWrapper)
+ {\r
+ av.glavatar.skel.mAnimationsWrapper.Add(new animationwrapper(b));
\r
//pre calculate all joint priorities here\r
av.glavatar.skel.mPriority.Clear();\r
\r
- foreach (BinBVHAnimationReader bb in av.glavatar.skel.mAnimations)\r
+ foreach (animationwrapper ar in av.glavatar.skel.mAnimationsWrapper)\r
{\r
int jpos = 0;\r
- foreach (binBVHJoint joint in bb.joints)\r
+ foreach (binBVHJoint joint in ar.anim.joints)\r
{\r
- if (bb == null)\r
+ if (ar.anim == null)\r
continue;\r
\r
//warning struct copy non reference\r
- binBVHJointState state = (binBVHJointState)bb.joints[jpos].Tag;\r
+ binBVHJointState state = (binBVHJointState)ar.anim.joints[jpos].Tag;\r
\r
- if (state.finished == true)\r
+ if (ar.playstate == animationwrapper.animstate.STATE_STOP)\r
continue;\r
\r
+ //FIX ME need to consider ease out here on priorities somehow\r
+\r
+\r
int prio = 0;\r
//Quick hack to stack animations in the correct order\r
//TODO we need to do this per joint as they all have their own priorities as well ;-(\r
if (av.glavatar.skel.mPriority.TryGetValue(joint.Name, out prio))\r
{\r
- if (prio > (bb.Priority))\r
+ if (prio > (ar.anim.Priority))\r
continue;\r
}\r
\r
- av.glavatar.skel.mPriority[joint.Name] = bb.Priority;\r
+ av.glavatar.skel.mPriority[joint.Name] = ar.anim.Priority;\r
\r
jpos++;\r
}\r
public void animate(float lastframetime)\r
{\r
\r
- lock (mAnimations)\r
+ lock (mAnimationsWrapper)\r
{\r
\r
jointdeforms.Clear();\r
\r
- foreach (BinBVHAnimationReader b in mAnimations)\r
+ foreach (animationwrapper ar in mAnimationsWrapper)\r
{\r
- if (b == null)\r
+ if (ar.anim == null)\r
continue;\r
\r
+ ar.mRunTime += lastframetime;\r
+\r
int jpos = 0;\r
- foreach (binBVHJoint joint in b.joints)\r
+ foreach (binBVHJoint joint in ar.anim.joints)\r
{\r
//warning struct copy non reference\r
- binBVHJointState state = (binBVHJointState)b.joints[jpos].Tag;\r
+ binBVHJointState state = (binBVHJointState)ar.anim.joints[jpos].Tag;\r
\r
- if (state.finished == true)\r
+ if (ar.playstate == animationwrapper.animstate.STATE_STOP)\r
continue;\r
\r
int prio = 0;\r
//TODO we need to do this per joint as they all have their own priorities as well ;-(\r
if (mPriority.TryGetValue(joint.Name, out prio))\r
{\r
- if (prio > (b.Priority))\r
+ if (prio > (ar.anim.Priority))\r
continue;\r
}\r
\r
\r
// Position\r
\r
- if ( b.joints[jpos].positionkeys.Length >= 2 && joint.Name == "mPelvis")\r
+ if (ar.anim.joints[jpos].positionkeys.Length >= 2 && joint.Name == "mPelvis")\r
{\r
\r
//Console.WriteLine("Animate time " + state.currenttime_pos.ToString());\r
float currentime = state.currenttime_pos;\r
bool overrun = false;\r
\r
- if (state.currenttime_pos > b.OutPoint)\r
+ if (state.currenttime_pos > ar.anim.OutPoint)\r
{\r
//overrun state\r
- int itterations = (int)(state.currenttime_pos / b.OutPoint) + 1;\r
- state.currenttime_pos = currentime = b.InPoint + ((b.OutPoint - b.InPoint) - (((b.OutPoint - b.InPoint) * itterations) - state.currenttime_pos));\r
+ int itterations = (int)(state.currenttime_pos / ar.anim.OutPoint) + 1;\r
+ state.currenttime_pos = currentime = ar.anim.InPoint + ((ar.anim.OutPoint - ar.anim.InPoint) - (((ar.anim.OutPoint - ar.anim.InPoint) * itterations) - state.currenttime_pos));\r
overrun = true;\r
}\r
\r
- binBVHJointKey pos_next = b.joints[jpos].positionkeys[state.nextkeyframe_pos];\r
- binBVHJointKey pos_last = b.joints[jpos].positionkeys[state.lastkeyframe_pos];\r
+ binBVHJointKey pos_next = ar.anim.joints[jpos].positionkeys[state.nextkeyframe_pos];\r
+ binBVHJointKey pos_last = ar.anim.joints[jpos].positionkeys[state.lastkeyframe_pos];\r
\r
// if the current time > than next key frame time we move keyframes\r
if (currentime >= pos_next.time || overrun)\r
state.lastkeyframe_pos++;\r
state.nextkeyframe_pos++;\r
\r
- if (b.Loop)\r
+ if (ar.anim.Loop)\r
{\r
if (state.nextkeyframe_pos > state.loopoutframe)\r
state.nextkeyframe_pos = state.loopinframe;\r
state.lastkeyframe_pos = state.loopinframe;\r
\r
\r
- if (state.nextkeyframe_pos >= b.joints[jpos].positionkeys.Length)\r
+ if (state.nextkeyframe_pos >= ar.anim.joints[jpos].positionkeys.Length)\r
state.nextkeyframe_pos = state.loopinframe;\r
\r
- if (state.lastkeyframe_pos >= b.joints[jpos].positionkeys.Length)\r
+ if (state.lastkeyframe_pos >= ar.anim.joints[jpos].positionkeys.Length)\r
state.lastkeyframe_pos = state.loopinframe;\r
\r
}\r
else\r
{\r
- if(state.nextkeyframe_pos >= b.joints[jpos].positionkeys.Length)\r
- state.nextkeyframe_pos = b.joints[jpos].positionkeys.Length-1;\r
+ if (state.nextkeyframe_pos >= ar.anim.joints[jpos].positionkeys.Length)\r
+ state.nextkeyframe_pos = ar.anim.joints[jpos].positionkeys.Length - 1;\r
\r
- if (state.lastkeyframe_pos >= b.joints[jpos].positionkeys.Length)\r
+ if (state.lastkeyframe_pos >= ar.anim.joints[jpos].positionkeys.Length)\r
{\r
- state.lastkeyframe_pos = b.joints[jpos].positionkeys.Length - 1;\r
- state.finished = true;\r
+ state.lastkeyframe_pos = ar.anim.joints[jpos].positionkeys.Length - 1;\r
+\r
+ //ar.playstate = animationwrapper.animstate.STATE_EASEOUT;\r
//animation over\r
}\r
}\r
}\r
\r
- if (pos_next.time == pos_last.time)\r
- {\r
- state.finished = true;\r
- }\r
+ //if (pos_next.time == pos_last.time)\r
+ //{\r
+ // ar.playstate = animationwrapper.animstate.STATE_EASEOUT;\r
+ //}\r
\r
// update the pointers incase they have been moved\r
- pos_next = b.joints[jpos].positionkeys[state.nextkeyframe_pos];\r
- pos_last = b.joints[jpos].positionkeys[state.lastkeyframe_pos];\r
+ pos_next = ar.anim.joints[jpos].positionkeys[state.nextkeyframe_pos];\r
+ pos_last = ar.anim.joints[jpos].positionkeys[state.lastkeyframe_pos];\r
\r
// TODO the lerp/delta is faulty\r
// it is not going to handle loop points when we wrap around as last will be > next\r
// end of position\r
\r
//rotation\r
- \r
- if ( b.joints[jpos].rotationkeys.Length >= 2)\r
+\r
+ if (ar.anim.joints[jpos].rotationkeys.Length >= 2)\r
{\r
\r
state.currenttime_rot += lastframetime;\r
float currentime = state.currenttime_rot;\r
bool overrun = false;\r
\r
- if (state.currenttime_rot > b.OutPoint)\r
+ if (state.currenttime_rot > ar.anim.OutPoint)\r
{\r
//overrun state\r
- int itterations = (int)(state.currenttime_rot / b.OutPoint) + 1;\r
- state.currenttime_rot = currentime = b.InPoint + ((b.OutPoint - b.InPoint) - (((b.OutPoint - b.InPoint) * itterations) - state.currenttime_rot));\r
+ int itterations = (int)(state.currenttime_rot / ar.anim.OutPoint) + 1;\r
+ state.currenttime_rot = currentime = ar.anim.InPoint + ((ar.anim.OutPoint - ar.anim.InPoint) - (((ar.anim.OutPoint - ar.anim.InPoint) * itterations) - state.currenttime_rot));\r
overrun = true;\r
}\r
\r
- binBVHJointKey rot_next = b.joints[jpos].rotationkeys[state.nextkeyframe_rot];\r
- binBVHJointKey rot_last = b.joints[jpos].rotationkeys[state.lastkeyframe_rot];\r
+ binBVHJointKey rot_next = ar.anim.joints[jpos].rotationkeys[state.nextkeyframe_rot];\r
+ binBVHJointKey rot_last = ar.anim.joints[jpos].rotationkeys[state.lastkeyframe_rot];\r
\r
// if the current time > than next key frame time we move keyframes\r
if (currentime >= rot_next.time || overrun)\r
state.lastkeyframe_rot++;\r
state.nextkeyframe_rot++;\r
\r
- if (b.Loop)\r
+ if (ar.anim.Loop)\r
{\r
if (state.nextkeyframe_rot > state.loopoutframe)\r
state.nextkeyframe_rot = state.loopinframe;\r
}\r
else\r
{\r
- if (state.nextkeyframe_rot >= b.joints[jpos].rotationkeys.Length)\r
- state.nextkeyframe_rot = b.joints[jpos].rotationkeys.Length - 1;\r
+ if (state.nextkeyframe_rot >= ar.anim.joints[jpos].rotationkeys.Length)\r
+ state.nextkeyframe_rot = ar.anim.joints[jpos].rotationkeys.Length - 1;\r
\r
- if (state.lastkeyframe_rot >= b.joints[jpos].rotationkeys.Length)\r
+ if (state.lastkeyframe_rot >= ar.anim.joints[jpos].rotationkeys.Length)\r
{\r
- state.lastkeyframe_rot = b.joints[jpos].rotationkeys.Length - 1;\r
- state.finished = true;\r
+ state.lastkeyframe_rot = ar.anim.joints[jpos].rotationkeys.Length - 1;\r
+ //ar.playstate = animationwrapper.animstate.STATE_EASEOUT;\r
//animation over\r
}\r
}\r
}\r
\r
- if (rot_next.time == rot_last.time)\r
- {\r
- state.finished = true;\r
- }\r
+ //if (rot_next.time == rot_last.time)\r
+ //{\r
+ // ar.playstate = animationwrapper.animstate.STATE_EASEOUT;\r
+ //}\r
\r
// update the pointers incase they have been moved\r
- rot_next = b.joints[jpos].rotationkeys[state.nextkeyframe_rot];\r
- rot_last = b.joints[jpos].rotationkeys[state.lastkeyframe_rot];\r
+ rot_next = ar.anim.joints[jpos].rotationkeys[state.nextkeyframe_rot];\r
+ rot_last = ar.anim.joints[jpos].rotationkeys[state.lastkeyframe_rot];\r
\r
// TODO the lerp/delta is faulty\r
// it is not going to handle loop points when we wrap around as last will be > next\r
rotlerp = new Quaternion(rotlerpv.X, rotlerpv.Y, rotlerpv.Z);\r
}\r
\r
+ //end of rotation\r
\r
joint jointstate;\r
\r
- if (jointdeforms.TryGetValue(b.joints[jpos].Name, out jointstate))\r
+ float factor = 1.0f;\r
+\r
+ if (ar.playstate == animationwrapper.animstate.STATE_EASEIN)\r
{\r
- jointstate.offset += poslerp;\r
- jointstate.rotation *= rotlerp;\r
+ if (ar.mRunTime >= ar.anim.EaseInTime)\r
+ {\r
+ ar.playstate = animationwrapper.animstate.STATE_PLAY;\r
+ }\r
+ else\r
+ {\r
+ factor = 1.0f - ((ar.anim.EaseInTime - ar.mRunTime) / ar.anim.EaseInTime);\r
+ }\r
+ }\r
+\r
+ if (ar.playstate == animationwrapper.animstate.STATE_EASEOUT)\r
+ {\r
+ if (ar.mRunTime >= ar.anim.EaseOutTime)\r
+ {\r
+ ar.playstate = animationwrapper.animstate.STATE_STOP;\r
+ factor = 0;\r
+ }\r
+ else\r
+ {\r
+ factor = 1.0f - ((ar.anim.EaseOutTime - ar.mRunTime) / ar.anim.EaseOutTime);\r
+ }\r
+ }\r
+\r
+ if (jointdeforms.TryGetValue(ar.anim.joints[jpos].Name, out jointstate))\r
+ {\r
+ jointstate.offset += poslerp* factor;\r
+ jointstate.rotation *= rotlerp * factor;\r
}\r
else\r
{\r
jointstate = new joint();\r
jointstate.rotation = rotlerp;\r
jointstate.offset = poslerp;\r
- jointdeforms.Add(b.joints[jpos].Name, jointstate);\r
+ jointdeforms.Add(ar.anim.joints[jpos].Name, jointstate);\r
}\r
\r
\r
- //end of rotation\r
-\r
- //deformbone(joint.Name, poslerp, rotlerp);\r
- //mNeedsMeshRebuild = true;\r
-\r
//warning struct copy non reference\r
- b.joints[jpos].Tag = state;\r
+ ar.anim.joints[jpos].Tag = state;\r
\r
jpos++;\r
}\r
}\r
}\r
\r
- \r
+\r
+ float amount = 1.0f;\r
\r
foreach (KeyValuePair<string, joint> kvp in jointdeforms)\r
{\r
-<?xml version="1.0" encoding="utf-8"?>\r
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">\r
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">\r
<PropertyGroup>\r
+ <ProjectType>Local</ProjectType>\r
+ <ProductVersion>10.0.20506</ProductVersion>\r
+ <SchemaVersion>2.0</SchemaVersion>\r
+ <ProjectGuid>{D5255DAA-AEE9-4045-BFFA-8348615FDD2E}</ProjectGuid>\r
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>\r
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>\r
- <ProductVersion>9.0.30729</ProductVersion>\r
- <SchemaVersion>2.0</SchemaVersion>\r
- <ProjectGuid>{D19A654B-FE91-4010-A654-FC88AE62F7CC}</ProjectGuid>\r
- <OutputType>Library</OutputType>\r
- <AppDesignerFolder>Properties</AppDesignerFolder>\r
- <RootNamespace>RadSpeechWin</RootNamespace>\r
+ <ApplicationIcon></ApplicationIcon>\r
+ <AssemblyKeyContainerName>\r
+ </AssemblyKeyContainerName>\r
<AssemblyName>RadSpeechWin</AssemblyName>\r
+ <DefaultClientScript>JScript</DefaultClientScript>\r
+ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>\r
+ <DefaultTargetSchema>IE50</DefaultTargetSchema>\r
+ <DelaySign>false</DelaySign>\r
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>\r
- <FileAlignment>512</FileAlignment>\r
- <ReleaseVersion>0.4</ReleaseVersion>\r
- </PropertyGroup>\r
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">\r
- <DebugSymbols>true</DebugSymbols>\r
- <DebugType>full</DebugType>\r
- <Optimize>false</Optimize>\r
- <OutputPath>..\..\..\bin\Debug\</OutputPath>\r
- <DefineConstants>DEBUG;TRACE</DefineConstants>\r
- <ErrorReport>prompt</ErrorReport>\r
- <WarningLevel>4</WarningLevel>\r
- </PropertyGroup>\r
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">\r
- <DebugType>pdbonly</DebugType>\r
- <Optimize>true</Optimize>\r
- <OutputPath>..\..\..\bin\Release\</OutputPath>\r
- <DefineConstants>TRACE</DefineConstants>\r
- <ErrorReport>prompt</ErrorReport>\r
- <WarningLevel>4</WarningLevel>\r
+ <OutputType>Library</OutputType>\r
+ <AppDesignerFolder></AppDesignerFolder>\r
+ <RootNamespace>RadSpeechWin</RootNamespace>\r
+ <StartupObject></StartupObject>\r
+ <FileUpgradeFlags>\r
+ </FileUpgradeFlags>\r
</PropertyGroup>\r
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">\r
- <DebugSymbols>true</DebugSymbols>\r
- <OutputPath>..\..\..\bin\Debug\</OutputPath>\r
- <DefineConstants>DEBUG;TRACE</DefineConstants>\r
- <DebugType>full</DebugType>\r
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">\r
+ <AllowUnsafeBlocks>True</AllowUnsafeBlocks>\r
+ <BaseAddress>285212672</BaseAddress>\r
+ <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>\r
+ <ConfigurationOverrideFile>\r
+ </ConfigurationOverrideFile>\r
+ <DefineConstants>TRACE;VISUAL_STUDIO</DefineConstants>\r
+ <DocumentationFile></DocumentationFile>\r
+ <DebugSymbols>False</DebugSymbols>\r
+ <FileAlignment>4096</FileAlignment>\r
+ <Optimize>True</Optimize>\r
+ <OutputPath>..\..\..\bin\</OutputPath>\r
+ <RegisterForComInterop>False</RegisterForComInterop>\r
+ <RemoveIntegerChecks>False</RemoveIntegerChecks>\r
+ <TreatWarningsAsErrors>False</TreatWarningsAsErrors>\r
+ <WarningLevel>3</WarningLevel>\r
+ <NoStdLib>False</NoStdLib>\r
+ <NoWarn>1591,1574,0419,0618,0414,0169</NoWarn>\r
<PlatformTarget>x86</PlatformTarget>\r
- <ErrorReport>prompt</ErrorReport>\r
</PropertyGroup>\r
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">\r
- <OutputPath>..\..\..\bin\Release\</OutputPath>\r
- <DefineConstants>TRACE</DefineConstants>\r
- <Optimize>true</Optimize>\r
- <DebugType>pdbonly</DebugType>\r
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">\r
+ <AllowUnsafeBlocks>True</AllowUnsafeBlocks>\r
+ <BaseAddress>285212672</BaseAddress>\r
+ <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>\r
+ <ConfigurationOverrideFile>\r
+ </ConfigurationOverrideFile>\r
+ <DefineConstants>TRACE;DEBUG;VISUAL_STUDIO</DefineConstants>\r
+ <DocumentationFile></DocumentationFile>\r
+ <DebugSymbols>True</DebugSymbols>\r
+ <FileAlignment>4096</FileAlignment>\r
+ <Optimize>False</Optimize>\r
+ <OutputPath>..\..\..\bin\</OutputPath>\r
+ <RegisterForComInterop>False</RegisterForComInterop>\r
+ <RemoveIntegerChecks>False</RemoveIntegerChecks>\r
+ <TreatWarningsAsErrors>False</TreatWarningsAsErrors>\r
+ <WarningLevel>3</WarningLevel>\r
+ <NoStdLib>False</NoStdLib>\r
+ <NoWarn>1591,1574,0419,0618,0414,0169</NoWarn>\r
<PlatformTarget>x86</PlatformTarget>\r
- <ErrorReport>prompt</ErrorReport>\r
</PropertyGroup>\r
<ItemGroup>\r
- <Reference Include="System" />\r
+ <Reference Include="System">\r
+ <Name>System</Name>\r
+ </Reference>\r
<Reference Include="System.Core">\r
- <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+ <Name>System.Core</Name>\r
</Reference>\r
<Reference Include="System.Speech">\r
- <RequiredTargetFramework>3.0</RequiredTargetFramework>\r
+ <Name>System.Speech</Name>\r
</Reference>\r
<Reference Include="System.Xml.Linq">\r
- <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+ <Name>System.Xml.Linq</Name>\r
</Reference>\r
<Reference Include="System.Data.DataSetExtensions">\r
- <RequiredTargetFramework>3.5</RequiredTargetFramework>\r
+ <Name>System.Data.DataSetExtensions</Name>\r
+ </Reference>\r
+ <Reference Include="System.Data">\r
+ <Name>System.Data</Name>\r
+ </Reference>\r
+ <Reference Include="System.Xml">\r
+ <Name>System.Xml</Name>\r
</Reference>\r
- <Reference Include="System.Data" />\r
- <Reference Include="System.Xml" />\r
- </ItemGroup>\r
- <ItemGroup>\r
- <Compile Include="WinRecog.cs" />\r
- <Compile Include="WinSpeech.cs" />\r
- <Compile Include="Properties\AssemblyInfo.cs" />\r
- <Compile Include="WinSynth.cs" />\r
</ItemGroup>\r
<ItemGroup>\r
- <ProjectReference Include="..\..\..\..\libopenmetaverse\OpenMetaverse.StructuredData\OpenMetaverse.StructuredData.csproj">\r
- <Project>{E63618CF-B21B-44CD-BBDE-BCE26CF6AF0D}</Project>\r
- <Name>OpenMetaverse.StructuredData</Name>\r
+ <ProjectReference Include="..\..\..\..\libopenmetaverse\OpenMetaverse\OpenMetaverse.csproj">\r
+ <Name>OpenMetaverse</Name>\r
+ <Project>{EFB884DF-5C6E-4A81-AC5C-DD531EDC6884}</Project>\r
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>\r
</ProjectReference>\r
<ProjectReference Include="..\..\..\..\libopenmetaverse\OpenMetaverseTypes\OpenMetaverseTypes.csproj">\r
- <Project>{1A303634-82F1-4C91-9E1C-C96B8B03D10A}</Project>\r
<Name>OpenMetaverseTypes</Name>\r
+ <Project>{8D118FC4-38D8-4865-8119-680C0787FFCB}</Project>\r
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>\r
</ProjectReference>\r
- <ProjectReference Include="..\..\..\..\libopenmetaverse\OpenMetaverse\OpenMetaverse.csproj">\r
- <Project>{30D9F2AE-42FE-4ACD-9E52-A819CB36EE05}</Project>\r
- <Name>OpenMetaverse</Name>\r
+ <ProjectReference Include="..\..\..\..\libopenmetaverse\OpenMetaverse.StructuredData\OpenMetaverse.StructuredData.csproj">\r
+ <Name>OpenMetaverse.StructuredData</Name>\r
+ <Project>{B8F3F541-928B-4003-B932-AA0C0EBD9B1C}</Project>\r
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>\r
</ProjectReference>\r
<ProjectReference Include="..\..\..\Radegast\Radegast.csproj">\r
- <Project>{A6D955CD-1F55-459F-A7AD-01E591404989}</Project>\r
<Name>Radegast</Name>\r
+ <Project>{1348B1D9-A7CA-427F-964B-9DD831E6AF04}</Project>\r
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>\r
</ProjectReference>\r
<ProjectReference Include="..\RadSpeech\Radegast.Plugin.Speech.csproj">\r
- <Project>{BA078535-BB58-45F0-9225-D2F6DF1197E4}</Project>\r
<Name>Radegast.Plugin.Speech</Name>\r
+ <Project>{377E4985-1D77-46DE-AE62-F547699741D3}</Project>\r
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>\r
+ </ProjectReference>\r
+ <ProjectReference Include="..\..\..\Radegast\Radegast.csproj">\r
+ <Name>Radegast</Name>\r
+ <Project>{1348B1D9-A7CA-427F-964B-9DD831E6AF04}</Project>\r
+ <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>\r
</ProjectReference>\r
</ItemGroup>\r
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />\r
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it. \r
- Other similar extension points exist, see Microsoft.Common.targets.\r
- <Target Name="BeforeBuild">\r
- </Target>\r
- <Target Name="AfterBuild">\r
- </Target>\r
- -->\r
-</Project>
\ No newline at end of file
+ <ItemGroup>\r
+ <Compile Include="WinRecog.cs">\r
+ </Compile>\r
+ <Compile Include="WinSpeech.cs">\r
+ </Compile>\r
+ <Compile Include="WinSynth.cs">\r
+ </Compile>\r
+ <Compile Include="Properties\AssemblyInfo.cs">\r
+ </Compile>\r
+ </ItemGroup>\r
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />\r
+ <PropertyGroup>\r
+ <PreBuildEvent>\r
+ </PreBuildEvent>\r
+ <PostBuildEvent>\r
+ </PostBuildEvent>\r
+ </PropertyGroup>\r
+</Project>\r