feat: Initial commit

This commit is contained in:
2025-02-14 16:06:00 +08:00
commit da75a84e02
1056 changed files with 163517 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 10b954b67e28e454e9c09356caeb2242
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: c691ac281fb46a2429494f29b8ea9989
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: d0a7b12d60cd31d46830e900047e8734
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 6400143f55350694b924a2743b16b0ae
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: e8e78e82d56ab434c8bb437a3838ece0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,271 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.Culture</name>
</assembly>
<members>
<member name="T:Cryville.Culture.IdValidity">
<summary>
提供一系列基于 ID 有效性数据检查 ID 有效性的方法。
</summary>
<remarks>
<para>
该类解析 CLDR 中 <see href="https://github.com/unicode-org/cldr/tree/main/common/validity"><c>common/validity</c></see> 目录中的 XML 文档。
</para>
</remarks>
</member>
<member name="M:Cryville.Culture.IdValidity.Load(System.Xml.Linq.XDocument)">
<summary>
从一个 XML 文档中加载有效性数据。
</summary>
<param name="xml">要加载的 XML 文档。</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="xml" /><see langword="null" />
</exception>
<exception cref="T:System.InvalidOperationException">文档中的一个 ID 列表已被加载。</exception>
<remarks>
<para>
该方法解析 CLDR 中 <see href="https://github.com/unicode-org/cldr/tree/main/common/validity"><c>common/validity</c></see> 目录中的 XML 文档。
</para>
</remarks>
</member>
<member name="M:Cryville.Culture.IdValidity.Check(System.String,System.String)">
<summary>
获取一个 ID 的 ID 状态。
</summary>
<param name="id">要检查的 ID。</param>
<param name="type">ID 的类型。</param>
<returns>
ID 的 ID 状态。如果没找到 ID 则返回 <see langword="null" />
</returns>
<exception cref="T:System.InvalidOperationException">没有找到或没有加载给定类型的 ID 列表。</exception>
</member>
<member name="M:Cryville.Culture.IdValidity.Check(System.String,System.String,System.String)">
<summary>
确定一个 ID 是否处于给定的状态。
</summary>
<param name="id">要检查的 ID。</param>
<param name="type">ID 的类型。</param>
<param name="status">要检查的状态。</param>
<returns>给定的 ID 是否处于给定的状态。</returns>
<exception cref="T:System.InvalidOperationException">没有找到或没有加载给定类型和给定状态的 ID 列表。</exception>
</member>
<member name="M:Cryville.Culture.IdValidity.Enumerate(System.String)">
<summary>
获取给定类型的所有 ID 的列表。
</summary>
<param name="type">ID 的类型。</param>
<returns>给定类型的所有 ID 的列表。</returns>
<exception cref="T:System.InvalidOperationException">没有找到或没有加载给定类型的 ID 列表。</exception>
</member>
<member name="M:Cryville.Culture.IdValidity.Enumerate(System.String,System.String)">
<summary>
获取给定类型和给定状态的所有 ID 的列表。
</summary>
<param name="type">ID 的类型。</param>
<param name="status">ID 的状态。</param>
<returns>给定类型和给定状态的所有 ID 的列表。</returns>
<exception cref="T:System.InvalidOperationException">没有找到或没有加载给定类型和给定状态的 ID 列表。</exception>
</member>
<member name="T:Cryville.Culture.LanguageId">
<summary>
表示一个 <see href="https://unicode.org/reports/tr35/#Unicode_language_identifier">Unicode 语言标识符</see>
</summary>
</member>
<member name="P:Cryville.Culture.LanguageId.Language">
<summary>
语言子标签。
</summary>
</member>
<member name="P:Cryville.Culture.LanguageId.Script">
<summary>
文字子标签。
</summary>
</member>
<member name="P:Cryville.Culture.LanguageId.Region">
<summary>
区域子标签。
</summary>
</member>
<member name="P:Cryville.Culture.LanguageId.Variant">
<summary>
变体子标签。
</summary>
</member>
<member name="M:Cryville.Culture.LanguageId.#ctor(System.String)">
<summary>
创建一个 <see cref="T:Cryville.Culture.LanguageId" /> 结构体的实例。
</summary>
<param name="str">标识符的字符串表示。</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="str" /><see langword="null" />
</exception>
<exception cref="T:System.FormatException">输入的字符串格式不正确。</exception>
</member>
<member name="P:Cryville.Culture.LanguageId.IsGrandfathered">
<summary>
当前 Unicode 语言标识符是否表示一个<see href="https://www.rfc-editor.org/rfc/rfc5646.html#section-2.1">保留标签</see>grandfathered tag
</summary>
</member>
<member name="P:Cryville.Culture.LanguageId.IsValid">
<summary>
当前 Unicode 语言标识符是否有效。
</summary>
<remarks>
<para>
该属性通过调用 <see cref="M:Cryville.Culture.IdValidity.Check(System.String,System.String)" /> 来确定其所有子标签是否有效。获取该属性前,先调用 <see cref="M:Cryville.Culture.IdValidity.Load(System.Xml.Linq.XDocument)" /> 加载有效性数据。
</para>
</remarks>
</member>
<member name="P:Cryville.Culture.LanguageId.SyntaxCanonicalized">
<summary>
获取当前 Unicode 语言标识符的一个标准语法版本。
</summary>
</member>
<member name="M:Cryville.Culture.LanguageId.Clone(System.Boolean)">
<summary>
获取当前 Unicode 语言标识符的一个副本。
</summary>
<param name="excludeVariant">是否排除变体子标签。</param>
<returns>当前 Unicode 语言标识符的一个副本。</returns>
</member>
<member name="M:Cryville.Culture.LanguageId.Equals(Cryville.Culture.LanguageId)">
<inheritdoc />
</member>
<member name="M:Cryville.Culture.LanguageId.Equals(System.Object)">
<inheritdoc />
</member>
<member name="M:Cryville.Culture.LanguageId.GetHashCode">
<inheritdoc />
</member>
<member name="M:Cryville.Culture.LanguageId.op_Equality(Cryville.Culture.LanguageId,Cryville.Culture.LanguageId)">
<inheritdoc />
</member>
<member name="M:Cryville.Culture.LanguageId.op_Inequality(Cryville.Culture.LanguageId,Cryville.Culture.LanguageId)">
<inheritdoc />
</member>
<member name="M:Cryville.Culture.LanguageId.ToString">
<inheritdoc />
</member>
<member name="T:Cryville.Culture.LanguageMatching">
<summary>
提供基于语言匹配数据为请求的语言匹配一个应用支持的语言的方法。
</summary>
<remarks>
<para>
该类解析 CLDR 中的 <see href="https://github.com/unicode-org/cldr/tree/main/common/supplemental/languageInfo.xml"><c>common/supplemental/languageInfo.xml</c></see>
</para>
</remarks>
</member>
<member name="M:Cryville.Culture.LanguageMatching.#ctor(System.Xml.Linq.XDocument,Cryville.Culture.LikelySubtags)">
<summary>
创建一个 <see cref="T:Cryville.Culture.LanguageMatching" /> 类的实例。
</summary>
<param name="xml">
要加载的 <c>languageInfo</c> XML 文档。
</param>
<param name="subtags">子标签倾向数据。</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="xml" /><paramref name="subtags" /><see langword="null" />
</exception>
<exception cref="T:System.FormatException">
给定的 <c>languageInfo</c> XML 文档无效。
</exception>
</member>
<member name="M:Cryville.Culture.LanguageMatching.GetDistance(Cryville.Culture.LanguageId,Cryville.Culture.LanguageId)">
<summary>
计算两个语言之间的距离。
</summary>
<param name="start">起点语言。</param>
<param name="end">终点语言。</param>
<returns>
<paramref name="start" /> 语言到 <paramref name="end" /> 语言的距离。
</returns>
<exception cref="T:System.InvalidOperationException">无法计算距离。</exception>
</member>
<member name="M:Cryville.Culture.LanguageMatching.Match(Cryville.Culture.LanguageId,System.Collections.Generic.IEnumerable{Cryville.Culture.LanguageId},Cryville.Culture.LanguageId@,System.Int32@)">
<summary>
从支持的语言列表中为请求的语言匹配一个语言。
</summary>
<param name="desired">请求的语言。</param>
<param name="supported">支持的语言列表。</param>
<param name="match">
匹配的语言。如果没有匹配则为 <see cref="T:Cryville.Culture.LanguageId" /> 的默认值。
</param>
<param name="distance">
<paramref name="desired" /><paramref name="match" /> 的距离。如果没有匹配则为 <see cref="F:System.Int32.MaxValue" />
</param>
<returns>匹配是否成功。</returns>
<exception cref="T:System.ArgumentNullException">
<paramref name="supported" /><see langword="null" />
</exception>
</member>
<member name="T:Cryville.Culture.LikelySubtags">
<summary>
提供基于子标签倾向数据最大化和最小化 Unicode 语言标识符的方法。
</summary>
<remarks>
<para>
该类解析 CLDR 中的 <see href="https://github.com/unicode-org/cldr/tree/main/common/supplemental/likelySubtags.xml"><c>common/supplemental/likelySubtags.xml</c></see>
</para>
</remarks>
</member>
<member name="M:Cryville.Culture.LikelySubtags.#ctor(System.Xml.Linq.XDocument,Cryville.Culture.SupplementalMetadata)">
<summary>
创建一个 <see cref="T:Cryville.Culture.LikelySubtags" /> 类的实例。
</summary>
<param name="xml">
要加载的 <c>likelySubtags</c> XML 文档。
</param>
<param name="metadata">别名数据。</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="xml" /><paramref name="metadata" /><see langword="null" />
</exception>
</member>
<member name="M:Cryville.Culture.LikelySubtags.AddLikelySubtags(Cryville.Culture.LanguageId)">
<summary>
最大化一个 Unicode 语言标识符。
</summary>
<param name="source">要最大化的 Unicode 语言标识符。</param>
<returns>最大化的 Unicode 语言标识符。</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">没有找到匹配的子标签倾向。</exception>
</member>
<member name="M:Cryville.Culture.LikelySubtags.RemoveLikelySubtags(Cryville.Culture.LanguageId,System.Boolean)">
<summary>
最小化一个 Unicode 语言标识符。
</summary>
<param name="source">要最小化的 Unicode 语言标识符。</param>
<param name="favoringScript">是否倾向保留文字子标签而不是区域子标签。</param>
<returns>最小化的 Unicode 语言标识符。</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">没有找到匹配的子标签倾向。</exception>
</member>
<member name="T:Cryville.Culture.SupplementalMetadata">
<summary>
提供基于别名数据将一个别名 ID 转换为其标准形式的方法。
</summary>
<remarks>
<para>
该类解析 CLDR 中的 <see href="https://github.com/unicode-org/cldr/tree/main/common/supplemental/supplementalMetadata.xml"><c>common/supplemental/supplementalMetadata.xml</c></see>
</para>
</remarks>
</member>
<member name="M:Cryville.Culture.SupplementalMetadata.#ctor(System.Xml.Linq.XDocument)">
<summary>
创建一个 <see cref="T:Cryville.Culture.SupplementalMetadata" /> 类的实例。
</summary>
<param name="xml">
要加载的 <c>supplementalMetadata</c> XML 文档。
</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="xml" /><see langword="null" />
</exception>
</member>
<member name="M:Cryville.Culture.SupplementalMetadata.Canonicalize(Cryville.Culture.LanguageId)">
<summary>
将一个 Unicode 语言标识符内的所有别名子标签转换为其标准形式。
</summary>
<param name="source">要转换的 Unicode 语言标识符。</param>
<returns>标准化的 Unicode 语言标识符。</returns>
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 378cfcd9bd044114a8b6d5356d57b450
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: bbd7028c8e208de4baba16953f3d7994
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 8d1f8c7a3ad93a24fac5fb10f77cf181
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 45cfa09bfc590d6409f71a1e47295469
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 35ea5e9381f6a3f41a32711f14839a50
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: c5001c2ca06c6ab44b21914f55312fe0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,223 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.EEW.Colors</name>
</assembly>
<members>
<member name="T:Cryville.EEW.Colors.ColorSpaceUtils">
<summary>
Contains <see langword="static" /> methods related to color spaces.
</summary>
</member>
<member name="M:Cryville.EEW.Colors.ColorSpaceUtils.OkLchToSrgb(System.Int32,System.Single,System.Single,System.Single)">
<summary>
Converts a OkLch color to sRGB.
</summary>
<param name="A">The alpha channel (0-255).</param>
<param name="L">The luminance channel.</param>
<param name="c">The chroma channel.</param>
<param name="h">The hue channel.</param>
<returns></returns>
</member>
<member name="T:Cryville.EEW.Colors.EmptyColorScheme">
<summary>
An empty <see cref="T:Cryville.EEW.Colors.IColorScheme" /> that always returns <see cref="P:System.Drawing.Color.Gray" />.
</summary>
</member>
<member name="P:Cryville.EEW.Colors.EmptyColorScheme.Instance">
<summary>
The shared instance of the <see cref="T:Cryville.EEW.Colors.EmptyColorScheme" /> class.
</summary>
</member>
<member name="P:Cryville.EEW.Colors.EmptyColorScheme.WrappedInstance">
<summary>
The shared instance of the <see cref="T:Cryville.EEW.Colors.WrappedColorScheme" /> class wrapped around <see cref="P:Cryville.EEW.Colors.EmptyColorScheme.Instance" />.
</summary>
</member>
<member name="M:Cryville.EEW.Colors.EmptyColorScheme.From(Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible)">
<inheritdoc />
</member>
<member name="T:Cryville.EEW.Colors.IColor">
<summary>
Represents a color.
</summary>
</member>
<member name="M:Cryville.EEW.Colors.IColor.ToSrgb">
<summary>
Converts the current instance to an sRGB color.
</summary>
<returns>The converted color.</returns>
</member>
<member name="P:Cryville.EEW.Colors.IColor.Lightness">
<summary>
The lightness of the color. <c>0</c> represents a black color; <c>1</c> represents a white color.
</summary>
</member>
<member name="T:Cryville.EEW.Colors.IColorScheme">
<summary>
Represents a color scheme, extracting colors from different properties.
</summary>
</member>
<member name="M:Cryville.EEW.Colors.IColorScheme.From(Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible)">
<summary>
Extracts a color from a property.
</summary>
<param name="type">The type of the property.</param>
<param name="value">The value of the property.</param>
<returns>The color.</returns>
</member>
<member name="M:Cryville.EEW.Colors.IColorScheme.From(System.Collections.Generic.IEnumerable{System.ValueTuple{Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible}})">
<summary>
Extracts a color from a set properties.
</summary>
<param name="props">The properties.</param>
<returns>The color.</returns>
</member>
<member name="T:Cryville.EEW.Colors.ISeverityColorMapping">
<summary>
Represents a mapping that maps severity to color.
</summary>
</member>
<member name="M:Cryville.EEW.Colors.ISeverityColorMapping.FromSeverity(System.Single,System.Single@)">
<summary>
Extracts a color from severity.
</summary>
<param name="severity">The severity.</param>
<param name="luminance">The luminance of the color.</param>
<returns>The color.</returns>
</member>
<member name="M:Cryville.EEW.Colors.ISeverityColorMapping.From(System.Single)">
<summary>
Extracts a color from severity.
</summary>
<param name="severity">The severity.</param>
<returns>The color.</returns>
</member>
<member name="T:Cryville.EEW.Colors.ISubColorScheme">
<summary>
Represents a sub-color scheme, extracting colors from different properties.
</summary>
</member>
<member name="M:Cryville.EEW.Colors.ISubColorScheme.From(Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible,Cryville.EEW.Colors.IColor)">
<summary>
Extracts a color from a property.
</summary>
<param name="type">The type of the property.</param>
<param name="value">The value of the property.</param>
<param name="color">The color extracted from the same property from another color scheme.</param>
<returns>The color.</returns>
</member>
<member name="M:Cryville.EEW.Colors.ISubColorScheme.From(System.Collections.Generic.IEnumerable{System.ValueTuple{Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible}},Cryville.EEW.Colors.IColor)">
<summary>
Extracts a color from a set properties.
</summary>
<param name="props">The properties.</param>
<param name="color">The color extracted from the same property from another color scheme.</param>
<returns>The color.</returns>
</member>
<member name="T:Cryville.EEW.Colors.SeverityBasedColorScheme">
<summary>
A color scheme that is based on a severity scheme and a severity color mapping.
</summary>
<param name="scheme">The severity scheme.</param>
<param name="mapping">The severity color mapping.</param>
</member>
<member name="M:Cryville.EEW.Colors.SeverityBasedColorScheme.#ctor(Cryville.EEW.Report.ISeverityScheme,Cryville.EEW.Colors.ISeverityColorMapping)">
<summary>
A color scheme that is based on a severity scheme and a severity color mapping.
</summary>
<param name="scheme">The severity scheme.</param>
<param name="mapping">The severity color mapping.</param>
</member>
<member name="M:Cryville.EEW.Colors.SeverityBasedColorScheme.From(Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible)">
<inheritdoc />
</member>
<member name="M:Cryville.EEW.Colors.SeverityBasedColorScheme.From(System.Collections.Generic.IEnumerable{System.ValueTuple{Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible}})">
<inheritdoc />
</member>
<member name="T:Cryville.EEW.Colors.SrgbColor">
<summary>
Represents an sRGB color.
</summary>
<param name="A">The alpha channel.</param>
<param name="R">The red channel.</param>
<param name="G">The green channel.</param>
<param name="B">The blue channel.</param>
</member>
<member name="M:Cryville.EEW.Colors.SrgbColor.#ctor(System.Byte,System.Byte,System.Byte,System.Byte)">
<summary>
Represents an sRGB color.
</summary>
<param name="A">The alpha channel.</param>
<param name="R">The red channel.</param>
<param name="G">The green channel.</param>
<param name="B">The blue channel.</param>
</member>
<member name="P:Cryville.EEW.Colors.SrgbColor.A">
<summary>The alpha channel.</summary>
</member>
<member name="P:Cryville.EEW.Colors.SrgbColor.R">
<summary>The red channel.</summary>
</member>
<member name="P:Cryville.EEW.Colors.SrgbColor.G">
<summary>The green channel.</summary>
</member>
<member name="P:Cryville.EEW.Colors.SrgbColor.B">
<summary>The blue channel.</summary>
</member>
<member name="M:Cryville.EEW.Colors.SrgbColor.#ctor(System.Byte,System.Byte,System.Byte)">
<summary>
Creates an instance of the <see cref="T:Cryville.EEW.Colors.SrgbColor" /> struct, with the alpha channel set to 255.
</summary>
<param name="R">The red channel.</param>
<param name="G">The green channel.</param>
<param name="B">The blue channel.</param>
</member>
<member name="M:Cryville.EEW.Colors.SrgbColor.FromColor(System.Drawing.Color)">
<summary>
Converts a system color to an instance of the <see cref="T:Cryville.EEW.Colors.SrgbColor" /> struct.
</summary>
<param name="color">The system color.</param>
<returns>The converted color.</returns>
</member>
<member name="M:Cryville.EEW.Colors.SrgbColor.op_Implicit(System.Drawing.Color)~Cryville.EEW.Colors.SrgbColor">
<summary>
Converts a system color to an instance of the <see cref="T:Cryville.EEW.Colors.SrgbColor" /> struct.
</summary>
<param name="color">The system color.</param>
</member>
<member name="M:Cryville.EEW.Colors.SrgbColor.ToSrgb">
<inheritdoc />
</member>
<member name="M:Cryville.EEW.Colors.SrgbColor.ToColor">
<summary>
Converts the current instance to a system color.
</summary>
<returns>The converted color.</returns>
</member>
<member name="M:Cryville.EEW.Colors.SrgbColor.op_Implicit(Cryville.EEW.Colors.SrgbColor)~System.Drawing.Color">
<summary>
Converts an instance of the <see cref="T:Cryville.EEW.Colors.SrgbColor" /> struct to a system color.
</summary>
<param name="color">The color.</param>
</member>
<member name="T:Cryville.EEW.Colors.WrappedColorScheme">
<summary>
A sub color scheme identical to a specific color scheme.
</summary>
<param name="parent">The color scheme this sub color scheme is based on.</param>
</member>
<member name="M:Cryville.EEW.Colors.WrappedColorScheme.#ctor(Cryville.EEW.Colors.IColorScheme)">
<summary>
A sub color scheme identical to a specific color scheme.
</summary>
<param name="parent">The color scheme this sub color scheme is based on.</param>
</member>
<member name="M:Cryville.EEW.Colors.WrappedColorScheme.From(Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible,Cryville.EEW.Colors.IColor)">
<inheritdoc />
</member>
<member name="M:Cryville.EEW.Colors.WrappedColorScheme.From(System.Collections.Generic.IEnumerable{System.ValueTuple{Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible}},Cryville.EEW.Colors.IColor)">
<inheritdoc />
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f834593e641dd3e46953e3c5326f17b9
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: f43b9018a46d4c94c86b8fcecccdd731
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 2e1f757b879267741a4ce2c3e9b90cfb
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 1f171de94b2452a4cbbd151070e1311f
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 04db10530eaf4a84ca2096e9959909e9
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: c562a6a2a51fc9346b5d291b89cea2f5
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 4675910bbaebec049ad6f8d77bf6b0d7
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 8fe0570f760f4214f993f5217e0166b2
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 37ed47e9ab4b01b40819663f4af92283
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: f1c3e59800c7cd140ba8f15882043aad
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 912e8b96775628c42b791f4fab89a87c
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,470 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.EEW.Map</name>
</assembly>
<members>
<member name="T:Cryville.EEW.Map.EmptyMapGeneratorContext">
<summary>
An empty <see cref="T:Cryville.EEW.Map.IMapGeneratorContext" />.
</summary>
</member>
<member name="P:Cryville.EEW.Map.EmptyMapGeneratorContext.Instance">
<summary>
A shared instance of the <see cref="T:Cryville.EEW.Map.EmptyMapGeneratorContext" /> class.
</summary>
</member>
<member name="P:Cryville.EEW.Map.EmptyMapGeneratorContext.UseContinuousColor">
<inheritdoc />
</member>
<member name="P:Cryville.EEW.Map.EmptyMapGeneratorContext.ColorScheme">
<inheritdoc />
</member>
<member name="P:Cryville.EEW.Map.EmptyMapGeneratorContext.BorderColorScheme">
<inheritdoc />
</member>
<member name="P:Cryville.EEW.Map.EmptyMapGeneratorContext.TextColorScheme">
<inheritdoc />
</member>
<member name="T:Cryville.EEW.Map.GeoJSONMapUtils">
<summary>
Contains <see langword="static" /> utility methods that extracts coordinates from GeoJSON objects.
</summary>
</member>
<member name="M:Cryville.EEW.Map.GeoJSONMapUtils.ToPoint(Cryville.EEW.Models.GeoJSON.Position)">
<summary>
Extracts coordinates from an instance of the <see cref="T:Cryville.EEW.Models.GeoJSON.Position" /> struct.
</summary>
<param name="v">The position.</param>
<returns>The coordinates.</returns>
</member>
<member name="M:Cryville.EEW.Map.GeoJSONMapUtils.ToLine(Cryville.EEW.Models.GeoJSON.Position[])">
<summary>
Extracts coordinates from an array of instances of the <see cref="T:Cryville.EEW.Models.GeoJSON.Position" /> struct.
</summary>
<param name="v">the position array.</param>
<returns>The coordinates.</returns>
</member>
<member name="M:Cryville.EEW.Map.GeoJSONMapUtils.ToLine(Cryville.EEW.Models.GeoJSON.LineString)">
<summary>
Extracts coordinates from an instance of the <see cref="T:Cryville.EEW.Models.GeoJSON.LineString" /> class.
</summary>
<param name="v">The line string.</param>
<returns>The coordinates.</returns>
</member>
<member name="M:Cryville.EEW.Map.GeoJSONMapUtils.ToMultiLine(Cryville.EEW.Models.GeoJSON.Geometry)">
<summary>
Extracts coordinates from a line geometry.
</summary>
<param name="v">The line geometry.</param>
<returns>The coordinates.</returns>
<exception cref="T:System.ArgumentException"><paramref name="v" /> is not a line geometry.</exception>
</member>
<member name="M:Cryville.EEW.Map.GeoJSONMapUtils.ToPolygon(Cryville.EEW.Models.GeoJSON.Position[][])">
<summary>
Extracts coordinates from an array of instances of arrays of instances of the <see cref="T:Cryville.EEW.Models.GeoJSON.Position" /> struct.
</summary>
<param name="v">The position array.</param>
<returns>The coordinates.</returns>
</member>
<member name="M:Cryville.EEW.Map.GeoJSONMapUtils.ToPolygon(Cryville.EEW.Models.GeoJSON.Polygon)">
<summary>
Extracts coordinates from an instance of the <see cref="T:Cryville.EEW.Models.GeoJSON.Polygon" /> class.
</summary>
<param name="v">The polygon.</param>
<returns>The coordinates.</returns>
</member>
<member name="M:Cryville.EEW.Map.GeoJSONMapUtils.ToMultiPolygon(Cryville.EEW.Models.GeoJSON.Geometry)">
<summary>
Extracts coordinates from a polygon geometry.
</summary>
<param name="v">The polygon geometry.</param>
<returns>The coordinates.</returns>
<exception cref="T:System.ArgumentException"><paramref name="v" /> is not a polygon geometry.</exception>
</member>
<member name="T:Cryville.EEW.Map.IMapGeneratorContext">
<summary>
Represents a context used in map view generators.
</summary>
</member>
<member name="P:Cryville.EEW.Map.IMapGeneratorContext.UseContinuousColor">
<summary>
Whether to use continuous color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.IMapGeneratorContext.ColorScheme">
<summary>
The color scheme.
</summary>
</member>
<member name="P:Cryville.EEW.Map.IMapGeneratorContext.BorderColorScheme">
<summary>
The border color scheme.
</summary>
</member>
<member name="P:Cryville.EEW.Map.IMapGeneratorContext.TextColorScheme">
<summary>
The text color scheme.
</summary>
</member>
<member name="T:Cryville.EEW.Map.ColorMask">
<summary>
Specifies what colors of the element are to be set.
</summary>
</member>
<member name="F:Cryville.EEW.Map.ColorMask.None">
<summary>
None.
</summary>
</member>
<member name="F:Cryville.EEW.Map.ColorMask.Fill">
<summary>
Fill color.
</summary>
</member>
<member name="F:Cryville.EEW.Map.ColorMask.Border">
<summary>
Border color.
</summary>
</member>
<member name="F:Cryville.EEW.Map.ColorMask.Text">
<summary>
Text color.
</summary>
</member>
<member name="T:Cryville.EEW.Map.MapElement">
<summary>
A map element.
</summary>
</member>
<member name="P:Cryville.EEW.Map.MapElement.MaxScale">
<summary>
The maximum scale of the map beyond which the element no longer keeps its stroke width, but instead scales its strokes with the scale of the map.
</summary>
</member>
<member name="M:Cryville.EEW.Map.MapElement.SetColor(Cryville.EEW.Map.IMapGeneratorContext,Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible,Cryville.EEW.Map.ColorMask)">
<summary>
Sets the color of the element based on a map generator context and a property.
</summary>
<param name="context">The map generator context.</param>
<param name="type">The type of the property.</param>
<param name="value">The value of the property.</param>
<param name="mask">A mask that specifies what colors of the element are to be set.</param>
<returns>The current instance.</returns>
</member>
<member name="M:Cryville.EEW.Map.MapElement.SetColor(Cryville.EEW.Map.IMapGeneratorContext,System.Collections.Generic.IEnumerable{System.ValueTuple{Cryville.EEW.Report.ReportViewModelPropertyType,System.IConvertible}},Cryville.EEW.Map.ColorMask)">
<summary>
Sets the color of the element based on a map generator context and a set of properties.
</summary>
<param name="context">The map generator context.</param>
<param name="props">The properties.</param>
<param name="mask">A mask that specifies what colors of the element are to be set.</param>
<returns>The current instance.</returns>
</member>
<member name="T:Cryville.EEW.Map.GroupElement">
<summary>
A map element that groups a collection of children map elements.
</summary>
</member>
<member name="P:Cryville.EEW.Map.GroupElement.Elements">
<summary>
The children map elements.
</summary>
</member>
<member name="T:Cryville.EEW.Map.MaskedGroupElement">
<summary>
A group element that masks its children with specified masks.
</summary>
<param name="Masks">The masks.</param>
</member>
<member name="M:Cryville.EEW.Map.MaskedGroupElement.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.IEnumerable{System.Collections.Generic.IEnumerable{System.Drawing.PointF}}})">
<summary>
A group element that masks its children with specified masks.
</summary>
<param name="Masks">The masks.</param>
</member>
<member name="P:Cryville.EEW.Map.MaskedGroupElement.Masks">
<summary>The masks.</summary>
</member>
<member name="T:Cryville.EEW.Map.OngoingGroupElement">
<summary>
A group element that represents an ongoing event.
</summary>
<param name="BlinkingPeriod">The blinking period of the elements in seconds.</param>
</member>
<member name="M:Cryville.EEW.Map.OngoingGroupElement.#ctor(System.Single)">
<summary>
A group element that represents an ongoing event.
</summary>
<param name="BlinkingPeriod">The blinking period of the elements in seconds.</param>
</member>
<member name="P:Cryville.EEW.Map.OngoingGroupElement.BlinkingPeriod">
<summary>The blinking period of the elements in seconds.</summary>
</member>
<member name="T:Cryville.EEW.Map.HypocenterElement">
<summary>
A map element that represents a hypocenter.
</summary>
<param name="Location">The location of the hypocenter.</param>
</member>
<member name="M:Cryville.EEW.Map.HypocenterElement.#ctor(System.Drawing.PointF)">
<summary>
A map element that represents a hypocenter.
</summary>
<param name="Location">The location of the hypocenter.</param>
</member>
<member name="P:Cryville.EEW.Map.HypocenterElement.Location">
<summary>The location of the hypocenter.</summary>
</member>
<member name="P:Cryville.EEW.Map.HypocenterElement.FillColor">
<summary>
The fill color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.HypocenterElement.BorderColor">
<summary>
The border color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.HypocenterElement.IsLowQuality">
<summary>
Whether the hypocenter is of low quality.
</summary>
</member>
<member name="P:Cryville.EEW.Map.HypocenterElement.Size">
<summary>
The size of the hypocenter icon.
</summary>
</member>
<member name="P:Cryville.EEW.Map.HypocenterElement.Width">
<summary>
The width of the hypocenter icon.
</summary>
</member>
<member name="P:Cryville.EEW.Map.HypocenterElement.StrokeWidth">
<summary>
The stroke width of the hypocenter icon.
</summary>
</member>
<member name="T:Cryville.EEW.Map.TsunamiHeightElement">
<summary>
A map element that represents the tsunami height at a location.
</summary>
<param name="Location">The location.</param>
<param name="Height">The tsunami height.</param>
</member>
<member name="M:Cryville.EEW.Map.TsunamiHeightElement.#ctor(System.Drawing.PointF,System.Single)">
<summary>
A map element that represents the tsunami height at a location.
</summary>
<param name="Location">The location.</param>
<param name="Height">The tsunami height.</param>
</member>
<member name="P:Cryville.EEW.Map.TsunamiHeightElement.Location">
<summary>The location.</summary>
</member>
<member name="P:Cryville.EEW.Map.TsunamiHeightElement.Height">
<summary>The tsunami height.</summary>
</member>
<member name="P:Cryville.EEW.Map.TsunamiHeightElement.FillColor">
<summary>
The fill color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.TsunamiHeightElement.BorderColor">
<summary>
The border color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.TsunamiHeightElement.IsRising">
<summary>
Whether the tsunami is rising.
</summary>
</member>
<member name="P:Cryville.EEW.Map.TsunamiHeightElement.IsOutOfRange">
<summary>
Whether the tsunami is out of the instrumental range.
</summary>
</member>
<member name="P:Cryville.EEW.Map.TsunamiHeightElement.IsMissing">
<summary>
Whether the tsunami height data is missing.
</summary>
</member>
<member name="P:Cryville.EEW.Map.TsunamiHeightElement.Width">
<summary>
The width of the tsunami height bar.
</summary>
</member>
<member name="P:Cryville.EEW.Map.TsunamiHeightElement.StrokeWidth">
<summary>
The stroke width of the tsunami height bar.
</summary>
</member>
<member name="T:Cryville.EEW.Map.WaveCircleElement">
<summary>
A map element that represents a set of seismic wave circles of an earthquake.
</summary>
<param name="HypocenterLocation">The location of the hypocenter.</param>
<param name="OriginTime">The origin time of the earthquake in UTC.</param>
<param name="Depth">The hypocenter depth.</param>
</member>
<member name="M:Cryville.EEW.Map.WaveCircleElement.#ctor(System.Drawing.PointF,System.DateTime,System.Single)">
<summary>
A map element that represents a set of seismic wave circles of an earthquake.
</summary>
<param name="HypocenterLocation">The location of the hypocenter.</param>
<param name="OriginTime">The origin time of the earthquake in UTC.</param>
<param name="Depth">The hypocenter depth.</param>
</member>
<member name="P:Cryville.EEW.Map.WaveCircleElement.HypocenterLocation">
<summary>The location of the hypocenter.</summary>
</member>
<member name="P:Cryville.EEW.Map.WaveCircleElement.OriginTime">
<summary>The origin time of the earthquake in UTC.</summary>
</member>
<member name="P:Cryville.EEW.Map.WaveCircleElement.Depth">
<summary>The hypocenter depth.</summary>
</member>
<member name="P:Cryville.EEW.Map.WaveCircleElement.ReportTime">
<summary>
The time when the earthquake is reported in UTC.
</summary>
</member>
<member name="P:Cryville.EEW.Map.WaveCircleElement.StrokeWidth">
<summary>
The stroke width of the wave circles.
</summary>
</member>
<member name="T:Cryville.EEW.Map.PointElement">
<summary>
A map element that represents a point.
</summary>
<param name="Location">The location of the point.</param>
</member>
<member name="M:Cryville.EEW.Map.PointElement.#ctor(System.Drawing.PointF)">
<summary>
A map element that represents a point.
</summary>
<param name="Location">The location of the point.</param>
</member>
<member name="P:Cryville.EEW.Map.PointElement.Location">
<summary>The location of the point.</summary>
</member>
<member name="P:Cryville.EEW.Map.PointElement.FillColor">
<summary>
The fill color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.PointElement.Size">
<summary>
The size of the point.
</summary>
</member>
<member name="T:Cryville.EEW.Map.LabeledPointElement">
<summary>
A map element that represents a labeled point.
</summary>
<param name="Location">The location of the point.</param>
<param name="Text">The text of the label.</param>
</member>
<member name="M:Cryville.EEW.Map.LabeledPointElement.#ctor(System.Drawing.PointF,System.String)">
<summary>
A map element that represents a labeled point.
</summary>
<param name="Location">The location of the point.</param>
<param name="Text">The text of the label.</param>
</member>
<member name="P:Cryville.EEW.Map.LabeledPointElement.Location">
<summary>The location of the point.</summary>
</member>
<member name="P:Cryville.EEW.Map.LabeledPointElement.Text">
<summary>The text of the label.</summary>
</member>
<member name="P:Cryville.EEW.Map.LabeledPointElement.FillColor">
<summary>
The fill color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.LabeledPointElement.BorderColor">
<summary>
The border color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.LabeledPointElement.TextColor">
<summary>
The text color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.LabeledPointElement.IsAreaLabel">
<summary>
Whether the label represents an area.
</summary>
</member>
<member name="P:Cryville.EEW.Map.LabeledPointElement.Size">
<summary>
The size of the label.
</summary>
</member>
<member name="T:Cryville.EEW.Map.MultiLineElement">
<summary>
A map element that represents multiple lines.
</summary>
<param name="Lines">The coordinates of the lines.</param>
</member>
<member name="M:Cryville.EEW.Map.MultiLineElement.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.IEnumerable{System.Drawing.PointF}})">
<summary>
A map element that represents multiple lines.
</summary>
<param name="Lines">The coordinates of the lines.</param>
</member>
<member name="P:Cryville.EEW.Map.MultiLineElement.Lines">
<summary>The coordinates of the lines.</summary>
</member>
<member name="P:Cryville.EEW.Map.MultiLineElement.BorderColor">
<summary>
The border color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.MultiLineElement.StrokeWidth">
<summary>
The stroke width.
</summary>
</member>
<member name="T:Cryville.EEW.Map.MultiPolygonElement">
<summary>
A map element that represents multiple polygons.
</summary>
<param name="Polygons">The coordinates of the polygons.</param>
</member>
<member name="M:Cryville.EEW.Map.MultiPolygonElement.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.IEnumerable{System.Collections.Generic.IEnumerable{System.Drawing.PointF}}})">
<summary>
A map element that represents multiple polygons.
</summary>
<param name="Polygons">The coordinates of the polygons.</param>
</member>
<member name="P:Cryville.EEW.Map.MultiPolygonElement.Polygons">
<summary>The coordinates of the polygons.</summary>
</member>
<member name="P:Cryville.EEW.Map.MultiPolygonElement.FillColor">
<summary>
The fill color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.MultiPolygonElement.BorderColor">
<summary>
The border color.
</summary>
</member>
<member name="P:Cryville.EEW.Map.MultiPolygonElement.HasLabel">
<summary>
Whether the element has an associated instance of the <see cref="T:Cryville.EEW.Map.LabeledPointElement" /> class.
</summary>
</member>
<member name="P:Cryville.EEW.Map.MultiPolygonElement.StrokeWidth">
<summary>
The stroke width.
</summary>
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 820a2693c7e103c43af26b094a956cb2
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 4fcfc3dc0a31ea04983884e1e8bcccf2
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 90a5b2472a884a34f82507992fd5150e
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: b1c839d949ce2da439891095080d63b2
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 7efa0f11f5c0fc346b8d22f2463f6a3b
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,108 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Cryville.EEW.TTS</name>
</assembly>
<members>
<member name="T:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext">
<summary>
An empty <see cref="T:Cryville.EEW.TTS.ITTSMessageGeneratorContext" />.
</summary>
</member>
<member name="P:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext.Instance">
<summary>
The shared instance of the <see cref="T:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext" /> class.
</summary>
</member>
<member name="P:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext.LocationConverter">
<inheritdoc />
</member>
<member name="P:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext.NowcastWarningDelayTolerance">
<inheritdoc />
</member>
<member name="T:Cryville.EEW.TTS.ITTSMessageGeneratorContext">
<summary>
Represents a context used in TTS message generators.
</summary>
</member>
<member name="P:Cryville.EEW.TTS.ITTSMessageGeneratorContext.LocationConverter">
<summary>
The location converter.
</summary>
</member>
<member name="P:Cryville.EEW.TTS.ITTSMessageGeneratorContext.NowcastWarningDelayTolerance">
<summary>
The delay tolerance before a nowcast warning event cannot trigger sounds and TTS.
</summary>
</member>
<member name="T:Cryville.EEW.TTS.TTSEntry">
<summary>
Represents an entry sent to a TTS worker.
</summary>
<param name="Locale">The locale of the content.</param>
<param name="Title">The title of the entry, if non-<see langword="null" />, used when the entry is being repeated after interrupted; <see langword="null" /> if the entry should not be repeated after interrupted.</param>
<param name="Content">The content to be spoken.</param>
<param name="Priority">The priority (a lower number indicates higher priority).</param>
<param name="Sound">The sound to be played.</param>
<param name="IsRepeated">Whether the entry is interrupted and to be repeated.</param>
</member>
<member name="M:Cryville.EEW.TTS.TTSEntry.#ctor(System.Globalization.CultureInfo,System.String,System.String,System.Int32,System.String,System.Boolean)">
<summary>
Represents an entry sent to a TTS worker.
</summary>
<param name="Locale">The locale of the content.</param>
<param name="Title">The title of the entry, if non-<see langword="null" />, used when the entry is being repeated after interrupted; <see langword="null" /> if the entry should not be repeated after interrupted.</param>
<param name="Content">The content to be spoken.</param>
<param name="Priority">The priority (a lower number indicates higher priority).</param>
<param name="Sound">The sound to be played.</param>
<param name="IsRepeated">Whether the entry is interrupted and to be repeated.</param>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.Locale">
<summary>The locale of the content.</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.Title">
<summary>The title of the entry, if non-<see langword="null" />, used when the entry is being repeated after interrupted; <see langword="null" /> if the entry should not be repeated after interrupted.</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.Content">
<summary>The content to be spoken.</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.IsRepeated">
<summary>Whether the entry is interrupted and to be repeated.</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.Priority">
<summary>
The priority (a lower number indicates higher priority).
</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.UnitKeys">
<summary>
Copied from <see cref="P:Cryville.EEW.Report.ReportViewModel.UnitKeys" />.
</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.RevisionKey">
<summary>
Copied from <see cref="P:Cryville.EEW.Report.ReportViewModel.RevisionKey" />.
</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.Sound">
<summary>
The sound to be played.
</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.UrgentEntry">
<summary>
The TTS entry to be inserted into the queue before this TTS entry is inserted.
</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.SecondaryEntry">
<summary>
The TTS entry to be inserted into the queue when this TTS entry starts being spoken.
</summary>
</member>
<member name="P:Cryville.EEW.TTS.TTSEntry.IssueTime">
<summary>
The time when the entry is created.
</summary>
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2ee4135716a88ba408f4e01ee1308c38
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 67c5e2d3442a9464da8de406a3bea9ce
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 41e0805cd4fddbf43880c93617aca262
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 497c8fa1478bbd34fa98b116a53f616f
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 8ed7a656400c46843be88b39d58b683d
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 936199e83371de147977e6665baabde8
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e224561547b6abe4787b83254cae3365
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 3b1a7e28de759e547b71398743504685
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 4d65961ff98876848b721ae45e26df69
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Plugins/NVorbis.dll Normal file

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 672dd88885aec084f93454215372b5f0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 06da683bcda72dc4e83457b5147e9e58
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,9 @@
Primary Contributors:
Mason Green <mason.green@gmail.com> (C++, Python)
Thomas <20>hl<68>n <thahlen@gmail.com> (Java)
Other Contributors:
Michael Rickert (C#)
Lee Wilson <devnull@devnullsoftware.com> (C#)

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f8915cc67e651c44da46d4406ac14831
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,123 @@
Poly2Tri Copyright (c) 2009-2011, Poly2Tri Contributors
http://code.google.com/p/poly2tri/
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Poly2Tri nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
------------------------------------------------------------------------------
The Following notice applies to the Methods SplitComplexPolygon and the
class SplitComplexPolygonNode in Triangulation/Polygon/PolygonUtil.cs.
Both are altered only enough to convert to C#
and take advantage of some of C#'s language features. Any errors
are thus mine from the conversion and not Eric's.
Copyright (c) 2007 Eric Jordan
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
------------------------------------------------------------------------------
Portions of the this code (notably: the methods PolygonUnion,
PolygonSubtract, PolygonIntersect, PolygonOperationContext.Init,
PolygonOperationContext.VerticesIntersect,
PolygonOperationContext.PointInPolygonAngle, and
PolygonOperationContext.VectorAngle in the file
Triangulation/Polygon/PolygonUtil.cs are from the Farseer Physics Engine 3.0
and are covered under the Microsoft Permissive License V1.1
(http://farseerphysics.codeplex.com/license)
Microsoft Permissive License (Ms-PL)
This license governs use of the accompanying software. If you use the
software, you accept this license. If you do not accept the license, do not
use the software.
1. Definitions
The terms "reproduce," "reproduction," "derivative works," and
"distribution" have the same meaning here as under U.S. copyright law.
A "contribution" is the original software, or any additions or changes to
the software.
A "contributor" is any person that distributes its contribution under this
license.
"Licensed patents" are a contributor's patent claims that read directly on
its contribution.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the
license conditions and limitations in section 3, each contributor grants
you a non-exclusive, worldwide, royalty-free copyright license to reproduce
its contribution, prepare derivative works of its contribution, and
distribute its contribution or any derivative works that you create.
(B) Patent Grant- Subject to the terms of this license, including the
license conditions and limitations in section 3, each contributor grants
you a non-exclusive, worldwide, royalty-free license under its licensed
patents to make, have made, use, sell, offer for sale, import, and/or
otherwise dispose of its contribution in the software or derivative works
of the contribution in the software.
3. Conditions and Limitations
(A) No Trademark License- This license does not grant you rights to use
any contributors' name, logo, or trademarks.
(B) If you bring a patent claim against any contributor over patents that
you claim are infringed by the software, your patent license from such
contributor to the software ends automatically.
(C) If you distribute any portion of the software, you must retain all
copyright, patent, trademark, and attribution notices that are present
in the software.
(D) If you distribute any portion of the software in source code form, you
may do so only under this license by including a complete copy of this
license with your distribution. If you distribute any portion of the
software in compiled or object code form, you may only do so under a
license that complies with this license.
(E) The software is licensed "as-is." You bear the risk of using it. The
contributors give no express warranties, guarantees or conditions. You may
have additional consumer rights under your local laws which this license
cannot change. To the extent permitted under your local laws, the
contributors exclude the implied warranties of merchantability, fitness for
a particular purpose and non-infringement.

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ad85343b1a5acaa4d99ef62487bde508
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,14 @@
{
"name": "Poly2Tri",
"rootNamespace": "",
"references": [],
"includePlatforms": [],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": false,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": true
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e5b7e7f40a80a814ba706299d68f9213
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a1df0a761a6faee41910a01a2901e475
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 24f46f7445d706343b6a44b48a6504cf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,447 @@
/* Poly2Tri
* Copyright (c) 2009-2010, Poly2Tri Contributors
* http://code.google.com/p/poly2tri/
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of Poly2Tri nor the names of its contributors may be
* used to endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// Changes from the Java version
/// attributification
/// Future possibilities
/// Flattening out the number of indirections
/// Replacing arrays of 3 with fixed-length arrays?
/// Replacing bool[3] with a bit array of some sort?
/// Bundling everything into an AoS mess?
/// Hardcode them all as ABC ?
using System;
using System.Diagnostics;
using System.Collections.Generic;
namespace Poly2Tri
{
public class DelaunayTriangle
{
public FixedArray3<TriangulationPoint> Points;
public FixedArray3<DelaunayTriangle> Neighbors;
private FixedBitArray3 mEdgeIsConstrained;
public FixedBitArray3 EdgeIsConstrained { get { return mEdgeIsConstrained; } }
public FixedBitArray3 EdgeIsDelaunay;
public bool IsInterior { get; set; }
public DelaunayTriangle(TriangulationPoint p1, TriangulationPoint p2, TriangulationPoint p3)
{
Points[0] = p1;
Points[1] = p2;
Points[2] = p3;
}
public int IndexOf(TriangulationPoint p)
{
int i = Points.IndexOf(p);
if (i == -1)
{
throw new Exception("Calling index with a point that doesn't exist in triangle");
}
return i;
}
public int IndexCWFrom(TriangulationPoint p)
{
return (IndexOf(p) + 2) % 3;
}
public int IndexCCWFrom(TriangulationPoint p)
{
return (IndexOf(p) + 1) % 3;
}
public bool Contains(TriangulationPoint p)
{
return Points.Contains(p);
}
/// <summary>
/// Update neighbor pointers
/// </summary>
/// <param name="p1">Point 1 of the shared edge</param>
/// <param name="p2">Point 2 of the shared edge</param>
/// <param name="t">This triangle's new neighbor</param>
private void MarkNeighbor(TriangulationPoint p1, TriangulationPoint p2, DelaunayTriangle t)
{
int i = EdgeIndex(p1, p2);
if (i == -1)
{
throw new Exception("Error marking neighbors -- t doesn't contain edge p1-p2!");
}
Neighbors[i] = t;
}
/// <summary>
/// Exhaustive search to update neighbor pointers
/// </summary>
public void MarkNeighbor(DelaunayTriangle t)
{
// Points of this triangle also belonging to t
bool a = t.Contains(Points[0]);
bool b = t.Contains(Points[1]);
bool c = t.Contains(Points[2]);
if (b && c)
{
Neighbors[0] = t;
t.MarkNeighbor(Points[1], Points[2], this);
}
else if (a && c)
{
Neighbors[1] = t;
t.MarkNeighbor(Points[0], Points[2], this);
}
else if (a && b)
{
Neighbors[2] = t;
t.MarkNeighbor(Points[0], Points[1], this);
}
else
{
throw new Exception("Failed to mark neighbor, doesn't share an edge!");
}
}
public void ClearNeighbors()
{
Neighbors[0] = Neighbors[1] = Neighbors[2] = null;
}
public void ClearNeighbor(DelaunayTriangle triangle)
{
if (Neighbors[0] == triangle)
{
Neighbors[0] = null;
}
else if (Neighbors[1] == triangle)
{
Neighbors[1] = null;
}
else if( Neighbors[2] == triangle)
{
Neighbors[2] = null;
}
}
/// <summary>
/// Clears all references to all other triangles and points
/// </summary>
public void Clear()
{
DelaunayTriangle t;
for (int i = 0; i < 3; i++)
{
t = Neighbors[i];
if (t != null)
{
t.ClearNeighbor(this);
}
}
ClearNeighbors();
Points[0] = Points[1] = Points[2] = null;
}
/// <param name="t">Opposite triangle</param>
/// <param name="p">The point in t that isn't shared between the triangles</param>
public TriangulationPoint OppositePoint(DelaunayTriangle t, TriangulationPoint p)
{
Debug.Assert(t != this, "self-pointer error");
return PointCWFrom(t.PointCWFrom(p));
}
public DelaunayTriangle NeighborCWFrom(TriangulationPoint point)
{
return Neighbors[(Points.IndexOf(point) + 1) % 3];
}
public DelaunayTriangle NeighborCCWFrom(TriangulationPoint point)
{
return Neighbors[(Points.IndexOf(point) + 2) % 3];
}
public DelaunayTriangle NeighborAcrossFrom(TriangulationPoint point)
{
return Neighbors[Points.IndexOf(point)];
}
public TriangulationPoint PointCCWFrom(TriangulationPoint point)
{
return Points[(IndexOf(point) + 1) % 3];
}
public TriangulationPoint PointCWFrom(TriangulationPoint point)
{
return Points[(IndexOf(point) + 2) % 3];
}
private void RotateCW()
{
var t = Points[2];
Points[2] = Points[1];
Points[1] = Points[0];
Points[0] = t;
}
/// <summary>
/// Legalize triangle by rotating clockwise around oPoint
/// </summary>
/// <param name="oPoint">The origin point to rotate around</param>
/// <param name="nPoint">???</param>
public void Legalize(TriangulationPoint oPoint, TriangulationPoint nPoint)
{
RotateCW();
Points[IndexCCWFrom(oPoint)] = nPoint;
}
public override string ToString()
{
return Points[0] + "," + Points[1] + "," + Points[2];
}
/// <summary>
/// Finalize edge marking
/// </summary>
public void MarkNeighborEdges()
{
for (int i = 0; i < 3; i++)
{
if (EdgeIsConstrained[i] && Neighbors[i] != null)
{
Neighbors[i].MarkConstrainedEdge(Points[(i + 1) % 3], Points[(i + 2) % 3]);
}
}
}
public void MarkEdge(DelaunayTriangle triangle)
{
for (int i = 0; i < 3; i++) if (EdgeIsConstrained[i])
{
triangle.MarkConstrainedEdge(Points[(i + 1) % 3], Points[(i + 2) % 3]);
}
}
public void MarkEdge(List<DelaunayTriangle> tList)
{
foreach (DelaunayTriangle t in tList)
{
for (int i = 0; i < 3; i++)
{
if (t.EdgeIsConstrained[i])
{
MarkConstrainedEdge(t.Points[(i + 1) % 3], t.Points[(i + 2) % 3]);
}
}
}
}
public void MarkConstrainedEdge(int index)
{
mEdgeIsConstrained[index] = true;
}
public void MarkConstrainedEdge(DTSweepConstraint edge)
{
MarkConstrainedEdge(edge.P, edge.Q);
}
/// <summary>
/// Mark edge as constrained
/// </summary>
public void MarkConstrainedEdge(TriangulationPoint p, TriangulationPoint q)
{
int i = EdgeIndex(p, q);
if (i != -1)
{
mEdgeIsConstrained[i] = true;
}
}
public double Area()
{
double b = Points[0].X - Points[1].X;
double h = Points[2].Y - Points[1].Y;
return Math.Abs((b * h * 0.5f));
}
public TriangulationPoint Centroid()
{
double cx = (Points[0].X + Points[1].X + Points[2].X) / 3f;
double cy = (Points[0].Y + Points[1].Y + Points[2].Y) / 3f;
return new TriangulationPoint(cx, cy);
}
/// <summary>
/// Get the index of the neighbor that shares this edge (or -1 if it isn't shared)
/// </summary>
/// <returns>index of the shared edge or -1 if edge isn't shared</returns>
public int EdgeIndex(TriangulationPoint p1, TriangulationPoint p2)
{
int i1 = Points.IndexOf(p1);
int i2 = Points.IndexOf(p2);
// Points of this triangle in the edge p1-p2
bool a = (i1 == 0 || i2 == 0);
bool b = (i1 == 1 || i2 == 1);
bool c = (i1 == 2 || i2 == 2);
if (b && c)
{
return 0;
}
if (a && c)
{
return 1;
}
if (a && b)
{
return 2;
}
return -1;
}
public bool GetConstrainedEdgeCCW(TriangulationPoint p) { return EdgeIsConstrained[(IndexOf(p) + 2) % 3]; }
public bool GetConstrainedEdgeCW(TriangulationPoint p) { return EdgeIsConstrained[(IndexOf(p) + 1) % 3]; }
public bool GetConstrainedEdgeAcross(TriangulationPoint p) { return EdgeIsConstrained[IndexOf(p)]; }
protected void SetConstrainedEdge(int idx, bool ce)
{
//if (ce == false && EdgeIsConstrained[idx])
//{
// DTSweepConstraint edge = null;
// if (GetEdge(idx, out edge))
// {
// Console.WriteLine("Removing pre-defined constraint from edge " + edge.ToString());
// }
//}
mEdgeIsConstrained[idx] = ce;
}
public void SetConstrainedEdgeCCW(TriangulationPoint p, bool ce)
{
int idx = (IndexOf(p) + 2) % 3;
SetConstrainedEdge(idx, ce);
}
public void SetConstrainedEdgeCW(TriangulationPoint p, bool ce)
{
int idx = (IndexOf(p) + 1) % 3;
SetConstrainedEdge(idx, ce);
}
public void SetConstrainedEdgeAcross(TriangulationPoint p, bool ce)
{
int idx = IndexOf(p);
SetConstrainedEdge(idx, ce);
}
public bool GetDelaunayEdgeCCW(TriangulationPoint p) { return EdgeIsDelaunay[(IndexOf(p) + 2) % 3]; }
public bool GetDelaunayEdgeCW(TriangulationPoint p) { return EdgeIsDelaunay[(IndexOf(p) + 1) % 3]; }
public bool GetDelaunayEdgeAcross(TriangulationPoint p) { return EdgeIsDelaunay[IndexOf(p)]; }
public void SetDelaunayEdgeCCW(TriangulationPoint p, bool ce) { EdgeIsDelaunay[(IndexOf(p) + 2) % 3] = ce; }
public void SetDelaunayEdgeCW(TriangulationPoint p, bool ce) { EdgeIsDelaunay[(IndexOf(p) + 1) % 3] = ce; }
public void SetDelaunayEdgeAcross(TriangulationPoint p, bool ce) { EdgeIsDelaunay[IndexOf(p)] = ce; }
public bool GetEdge(int idx, out DTSweepConstraint edge)
{
edge = null;
if (idx < 0 || idx > 2)
{
return false;
}
TriangulationPoint p1 = Points[(idx + 1) % 3];
TriangulationPoint p2 = Points[(idx + 2) % 3];
if (p1.GetEdge(p2, out edge))
{
return true;
}
else if (p2.GetEdge(p1, out edge))
{
return true;
}
return false;
}
public bool GetEdgeCCW(TriangulationPoint p, out DTSweepConstraint edge)
{
int pointIndex = IndexOf(p);
int edgeIdx = (pointIndex + 2)%3;
return GetEdge(edgeIdx, out edge);
}
public bool GetEdgeCW(TriangulationPoint p, out DTSweepConstraint edge)
{
int pointIndex = IndexOf(p);
int edgeIdx = (pointIndex + 1) % 3;
return GetEdge(edgeIdx, out edge);
}
public bool GetEdgeAcross(TriangulationPoint p, out DTSweepConstraint edge)
{
int pointIndex = IndexOf(p);
int edgeIdx = pointIndex;
return GetEdge(edgeIdx, out edge);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8b61ca8480a824b4eab0f5a7c6587932
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ca0c831d398dcf043875b7e514c4f9ee
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,177 @@
/* Poly2Tri
* Copyright (c) 2009-2010, Poly2Tri Contributors
* http://code.google.com/p/poly2tri/
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of Poly2Tri nor the names of its contributors may be
* used to endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// Changes from the Java version
/// Removed BST code, but not all artifacts of it
/// Future possibilities
/// Eliminate Add/RemoveNode ?
/// Comments comments and more comments!
using System.Text;
using System;
namespace Poly2Tri
{
/**
* @author Thomas Åhlen (thahlen@gmail.com)
*/
public class AdvancingFront
{
public AdvancingFrontNode Head;
public AdvancingFrontNode Tail;
protected AdvancingFrontNode Search;
public AdvancingFront(AdvancingFrontNode head, AdvancingFrontNode tail)
{
this.Head = head;
this.Tail = tail;
this.Search = head;
AddNode(head);
AddNode(tail);
}
public void AddNode(AdvancingFrontNode node) { }
public void RemoveNode(AdvancingFrontNode node) { }
public override string ToString()
{
StringBuilder sb = new StringBuilder();
AdvancingFrontNode node = Head;
while (node != Tail)
{
sb.Append(node.Point.X).Append("->");
node = node.Next;
}
sb.Append(Tail.Point.X);
return sb.ToString();
}
/// <summary>
/// MM: This seems to be used by LocateNode to guess a position in the implicit linked list of AdvancingFrontNodes near x
/// Removed an overload that depended on this being exact
/// </summary>
private AdvancingFrontNode FindSearchNode(double x)
{
return Search;
}
/// <summary>
/// We use a balancing tree to locate a node smaller or equal to given key value (in theory)
/// </summary>
public AdvancingFrontNode LocateNode(TriangulationPoint point)
{
return LocateNode(point.X);
}
private AdvancingFrontNode LocateNode(double x)
{
AdvancingFrontNode node = FindSearchNode(x);
if (x < node.Value)
{
while ((node = node.Prev) != null)
{
if (x >= node.Value)
{
Search = node;
return node;
}
}
}
else
{
while ((node = node.Next) != null)
{
if (x < node.Value)
{
Search = node.Prev;
return node.Prev;
}
}
}
return null;
}
/// <summary>
/// This implementation will use simple node traversal algorithm to find a point on the front
/// </summary>
public AdvancingFrontNode LocatePoint(TriangulationPoint point)
{
double px = point.X;
AdvancingFrontNode node = FindSearchNode(px);
double nx = node.Point.X;
if (px == nx)
{
if (point != node.Point)
{
// We might have two nodes with same x value for a short time
if (point == node.Prev.Point)
{
node = node.Prev;
}
else if (point == node.Next.Point)
{
node = node.Next;
}
else
{
throw new Exception("Failed to find Node for given afront point");
}
}
}
else if (px < nx)
{
while ((node = node.Prev) != null)
{
if (point == node.Point)
{
break;
}
}
}
else
{
while ((node = node.Next) != null)
{
if (point == node.Point)
{
break;
}
}
}
Search = node;
return node;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: bba5ad2e582edd14a9b9f4c2269e83e2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,57 @@
/* Poly2Tri
* Copyright (c) 2009-2010, Poly2Tri Contributors
* http://code.google.com/p/poly2tri/
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of Poly2Tri nor the names of its contributors may be
* used to endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/// Changes from the Java version
/// Removed getters
/// Has* turned into attributes
/// Future possibilities
/// Comments!
namespace Poly2Tri
{
public class AdvancingFrontNode
{
public AdvancingFrontNode Next;
public AdvancingFrontNode Prev;
public double Value;
public TriangulationPoint Point;
public DelaunayTriangle Triangle;
public AdvancingFrontNode(TriangulationPoint point)
{
this.Point = point;
Value = point.X;
}
public bool HasNext { get { return Next != null; } }
public bool HasPrev { get { return Prev != null; } }
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0f50404d2892ffc42b70043a773f577f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 18835840dca416041bff74eaaf5dcc47
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,42 @@
/* Poly2Tri
* Copyright (c) 2009-2010, Poly2Tri Contributors
* http://code.google.com/p/poly2tri/
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of Poly2Tri nor the names of its contributors may be
* used to endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
namespace Poly2Tri
{
public class DTSweepBasin
{
public AdvancingFrontNode leftNode;
public AdvancingFrontNode bottomNode;
public AdvancingFrontNode rightNode;
public double width;
public bool leftHighest;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 295b5899a6bed9d4187f6a49c293fc2f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,52 @@
/* Poly2Tri
* Copyright (c) 2009-2010, Poly2Tri Contributors
* http://code.google.com/p/poly2tri/
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of Poly2Tri nor the names of its contributors may be
* used to endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
//using System.Collections.Generic;
using System.Diagnostics;
//using System.Linq;
namespace Poly2Tri
{
public class DTSweepConstraint : TriangulationConstraint
{
/// <summary>
/// Give two points in any order. Will always be ordered so
/// that q.y > p.y and q.x > p.x if same y value
/// </summary>
public DTSweepConstraint(TriangulationPoint p1, TriangulationPoint p2)
: base(p1, p2)
{
Q.AddEdge(this);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 24c139533abc53242a5fda851aed1f90
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,252 @@
/* Poly2Tri
* Copyright (c) 2009-2010, Poly2Tri Contributors
* http://code.google.com/p/poly2tri/
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of Poly2Tri nor the names of its contributors may be
* used to endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
namespace Poly2Tri
{
/**
*
* @author Thomas Åhlén, thahlen@gmail.com
*
*/
public class DTSweepContext : TriangulationContext
{
// Inital triangle factor, seed triangle will extend 30% of
// PointSet width to both left and right.
private readonly float ALPHA = 0.3f;
public AdvancingFront Front;
public TriangulationPoint Head { get; set; }
public TriangulationPoint Tail { get; set; }
public DTSweepBasin Basin = new DTSweepBasin();
public DTSweepEdgeEvent EdgeEvent = new DTSweepEdgeEvent();
private DTSweepPointComparator _comparator = new DTSweepPointComparator();
public override TriangulationAlgorithm Algorithm { get { return TriangulationAlgorithm.DTSweep; } }
public DTSweepContext()
{
Clear();
}
public override bool IsDebugEnabled
{
get
{
return base.IsDebugEnabled;
}
protected set
{
if (value && DebugContext == null)
{
DebugContext = new DTSweepDebugContext(this);
}
base.IsDebugEnabled = value;
}
}
public void RemoveFromList(DelaunayTriangle triangle)
{
Triangles.Remove(triangle);
// TODO: remove all neighbor pointers to this triangle
// for( int i=0; i<3; i++ )
// {
// if( triangle.neighbors[i] != null )
// {
// triangle.neighbors[i].clearNeighbor( triangle );
// }
// }
// triangle.clearNeighbors();
}
public void MeshClean(DelaunayTriangle triangle)
{
MeshCleanReq(triangle);
}
private void MeshCleanReq(DelaunayTriangle triangle)
{
if (triangle != null && !triangle.IsInterior)
{
triangle.IsInterior = true;
Triangulatable.AddTriangle(triangle);
for (int i = 0; i < 3; i++)
{
if (!triangle.EdgeIsConstrained[i])
{
MeshCleanReq(triangle.Neighbors[i]);
}
}
}
}
public override void Clear()
{
base.Clear();
Triangles.Clear();
}
public void AddNode(AdvancingFrontNode node)
{
// Console.WriteLine( "add:" + node.key + ":" + System.identityHashCode(node.key));
// m_nodeTree.put( node.getKey(), node );
Front.AddNode(node);
}
public void RemoveNode(AdvancingFrontNode node)
{
// Console.WriteLine( "remove:" + node.key + ":" + System.identityHashCode(node.key));
// m_nodeTree.delete( node.getKey() );
Front.RemoveNode(node);
}
public AdvancingFrontNode LocateNode(TriangulationPoint point)
{
return Front.LocateNode(point);
}
public void CreateAdvancingFront()
{
AdvancingFrontNode head, tail, middle;
// Initial triangle
DelaunayTriangle iTriangle = new DelaunayTriangle(Points[0], Tail, Head);
Triangles.Add(iTriangle);
head = new AdvancingFrontNode(iTriangle.Points[1]);
head.Triangle = iTriangle;
middle = new AdvancingFrontNode(iTriangle.Points[0]);
middle.Triangle = iTriangle;
tail = new AdvancingFrontNode(iTriangle.Points[2]);
Front = new AdvancingFront(head, tail);
Front.AddNode(middle);
// TODO: I think it would be more intuitive if head is middles next and not previous
// so swap head and tail
Front.Head.Next = middle;
middle.Next = Front.Tail;
middle.Prev = Front.Head;
Front.Tail.Prev = middle;
}
/// <summary>
/// Try to map a node to all sides of this triangle that don't have
/// a neighbor.
/// </summary>
public void MapTriangleToNodes(DelaunayTriangle t)
{
for (int i = 0; i < 3; i++)
{
if (t.Neighbors[i] == null)
{
AdvancingFrontNode n = Front.LocatePoint(t.PointCWFrom(t.Points[i]));
if (n != null)
{
n.Triangle = t;
}
}
}
}
public override void PrepareTriangulation(ITriangulatable t)
{
base.PrepareTriangulation(t);
double xmax, xmin;
double ymax, ymin;
xmax = xmin = Points[0].X;
ymax = ymin = Points[0].Y;
// Calculate bounds. Should be combined with the sorting
foreach (TriangulationPoint p in Points)
{
if (p.X > xmax)
{
xmax = p.X;
}
if (p.X < xmin)
{
xmin = p.X;
}
if (p.Y > ymax)
{
ymax = p.Y;
}
if (p.Y < ymin)
{
ymin = p.Y;
}
}
double deltaX = ALPHA * (xmax - xmin);
double deltaY = ALPHA * (ymax - ymin);
TriangulationPoint p1 = new TriangulationPoint(xmax + deltaX, ymin - deltaY);
TriangulationPoint p2 = new TriangulationPoint(xmin - deltaX, ymin - deltaY);
Head = p1;
Tail = p2;
// long time = System.nanoTime();
// Sort the points along y-axis
Points.Sort(_comparator);
// logger.info( "Triangulation setup [{}ms]", ( System.nanoTime() - time ) / 1e6 );
}
public void FinalizeTriangulation()
{
Triangulatable.AddTriangles(Triangles);
Triangles.Clear();
}
public override TriangulationConstraint NewConstraint(TriangulationPoint a, TriangulationPoint b)
{
return new DTSweepConstraint(a, b);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5ee2e0932fff59f429c452bba590cf83
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,65 @@
/* Poly2Tri
* Copyright (c) 2009-2010, Poly2Tri Contributors
* http://code.google.com/p/poly2tri/
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of Poly2Tri nor the names of its contributors may be
* used to endorse or promote products derived from this software without specific
* prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
namespace Poly2Tri
{
public class DTSweepDebugContext : TriangulationDebugContext
{
/*
* Fields used for visual representation of current triangulation
*/
public DelaunayTriangle PrimaryTriangle { get { return _primaryTriangle; } set { _primaryTriangle = value; _tcx.Update("set PrimaryTriangle"); } }
public DelaunayTriangle SecondaryTriangle { get { return _secondaryTriangle; } set { _secondaryTriangle = value; _tcx.Update("set SecondaryTriangle"); } }
public TriangulationPoint ActivePoint { get { return _activePoint; } set { _activePoint = value; _tcx.Update("set ActivePoint"); } }
public AdvancingFrontNode ActiveNode { get { return _activeNode; } set { _activeNode = value; _tcx.Update("set ActiveNode"); } }
public DTSweepConstraint ActiveConstraint { get { return _activeConstraint; } set { _activeConstraint = value; _tcx.Update("set ActiveConstraint"); } }
public DTSweepDebugContext(DTSweepContext tcx) : base(tcx) { }
public bool IsDebugContext { get { return true; } }
public override void Clear()
{
PrimaryTriangle = null;
SecondaryTriangle = null;
ActivePoint = null;
ActiveNode = null;
ActiveConstraint = null;
}
private DelaunayTriangle _primaryTriangle;
private DelaunayTriangle _secondaryTriangle;
private TriangulationPoint _activePoint;
private AdvancingFrontNode _activeNode;
private DTSweepConstraint _activeConstraint;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c80776e6f580608498870e9ba0c7fdca
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More