Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 25b2916c66 | |||
| d158bbdf60 | |||
| bb43ba5443 | |||
| cff4978179 | |||
| ce33e7c454 | |||
| fb1e458970 | |||
| 2755a9abd7 | |||
| ee9795e39f | |||
| 999e6ae4ea | |||
| 8df96eeca4 | |||
| 6aa92d4c57 | |||
| 030cb277b8 | |||
| 5ee498afce |
@@ -1,5 +1,3 @@
|
||||
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using NUnit.Framework;
|
||||
@@ -9,7 +7,6 @@ using Speckle.ConnectorUnity.Wrappers;
|
||||
using Speckle.Core.Api;
|
||||
using Speckle.Core.Models;
|
||||
using UnityEngine;
|
||||
using UnityEngine.TestTools;
|
||||
|
||||
namespace Speckle.ConnectorUnity.Tests
|
||||
{
|
||||
@@ -25,7 +22,7 @@ namespace Speckle.ConnectorUnity.Tests
|
||||
{
|
||||
return Task.Run(async () => await Helpers.Receive(stream)).Result;
|
||||
}
|
||||
|
||||
|
||||
[Test, TestCaseSource(nameof(TestCases))]
|
||||
public void ToNative_Passes(string stream)
|
||||
{
|
||||
@@ -37,14 +34,13 @@ namespace Speckle.ConnectorUnity.Tests
|
||||
Assert.That(results, HasSomeComponent<SpeckleProperties>());
|
||||
}
|
||||
|
||||
private static Constraint HasSomeComponent<T>() where T : Component
|
||||
private static Constraint HasSomeComponent<T>()
|
||||
where T : Component
|
||||
{
|
||||
return Has.Some.Matches<ConversionResult>(
|
||||
x =>
|
||||
{
|
||||
return x.WasSuccessful(out var success, out _)
|
||||
&& success.GetComponent<T>();
|
||||
});
|
||||
return Has.Some.Matches<ConversionResult>(x =>
|
||||
{
|
||||
return x.WasSuccessful(out var success, out _) && success.GetComponent<T>();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace Speckle.ConnectorUnity.Components.Editor
|
||||
[CustomEditor(typeof(SpeckleReceiver))]
|
||||
public class SpeckleReceiverEditor : UnityEditor.Editor
|
||||
{
|
||||
private static bool _generateAssets = false;
|
||||
private static bool _generateAssets;
|
||||
private bool _foldOutStatus = true;
|
||||
private Texture2D? _previewImage;
|
||||
|
||||
|
||||
@@ -79,12 +79,6 @@ namespace Speckle.ConnectorUnity.NativeCache.Editor
|
||||
return _readCache.TrySaveObject(speckleObject, nativeObject);
|
||||
}
|
||||
|
||||
public override void BeginWrite()
|
||||
{
|
||||
base.BeginWrite();
|
||||
//AssetDatabase.StartAssetEditing();
|
||||
}
|
||||
|
||||
public override void FinishWrite()
|
||||
{
|
||||
if (!isWriting)
|
||||
|
||||
+16
-11
@@ -1,6 +1,7 @@
|
||||
#nullable enable
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using Speckle.Core.Api;
|
||||
using Speckle.Core.Credentials;
|
||||
using UnityEditor;
|
||||
@@ -49,8 +50,8 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection.Editor
|
||||
("Description", s => s.description),
|
||||
("Is Public", s => s.isPublic.ToString()),
|
||||
("Role", s => s.role),
|
||||
("Created at", s => s.createdAt.ToString()),
|
||||
("Updated at", s => s.updatedAt.ToString()),
|
||||
("Created at", s => s.createdAt.ToString(CultureInfo.InvariantCulture)),
|
||||
("Updated at", s => s.updatedAt.ToString(CultureInfo.InvariantCulture)),
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -70,7 +71,11 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection.Editor
|
||||
$"<{nameof(BranchSelection.CommitsLimit)}>k__BackingField",
|
||||
};
|
||||
|
||||
details = new (string, Func<Branch, string>)[] { ("Description", s => s.description), };
|
||||
details = new (string, Func<Branch, string>)[]
|
||||
{
|
||||
("Model Id", s => s.id),
|
||||
("Description", s => s.description),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,7 +90,7 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection.Editor
|
||||
{
|
||||
("Commit Id", s => s.id),
|
||||
("Author Name", s => s.authorName),
|
||||
("Created At", s => s.createdAt.ToString()),
|
||||
("Created At", s => s.createdAt.ToString(CultureInfo.InvariantCulture)),
|
||||
("Source Application", s => s.sourceApplication),
|
||||
("Reference Object Id", s => s.referencedObject),
|
||||
};
|
||||
@@ -108,9 +113,9 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection.Editor
|
||||
|
||||
protected (string, Func<TOption, string>)[] details = { };
|
||||
|
||||
private string[] GetFormattedOptions(TOption[] options)
|
||||
private string[] GetFormattedOptions(IReadOnlyList<TOption> options)
|
||||
{
|
||||
int optionsCount = options.Length;
|
||||
int optionsCount = options.Count;
|
||||
string[] choices = new string[optionsCount];
|
||||
for (int i = 0; i < optionsCount; i++)
|
||||
{
|
||||
@@ -182,10 +187,10 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection.Editor
|
||||
var provider = ScriptableObject.CreateInstance<StringListSearchProvider>();
|
||||
provider.Title = typeof(TOption).Name;
|
||||
provider.listItems = GetFormattedOptions(t.Options);
|
||||
;
|
||||
|
||||
provider.onSetIndexCallback = o =>
|
||||
{
|
||||
t.SelectedIndex = o;
|
||||
t.Selected = t.Options[o];
|
||||
};
|
||||
SearchWindow.Open(new SearchWindowContext(windowPos), provider);
|
||||
}
|
||||
@@ -260,7 +265,7 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection.Editor
|
||||
public List<SearchTreeEntry> CreateSearchTree(SearchWindowContext context)
|
||||
{
|
||||
List<SearchTreeEntry> searchList =
|
||||
new(listItems.Length + 1) { new SearchTreeGroupEntry(new GUIContent(Title), 0) };
|
||||
new(listItems.Length + 1) { new SearchTreeGroupEntry(new GUIContent(Title)) };
|
||||
|
||||
for (int i = 0; i < listItems.Length; i++)
|
||||
{
|
||||
@@ -275,9 +280,9 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection.Editor
|
||||
return searchList;
|
||||
}
|
||||
|
||||
public bool OnSelectEntry(SearchTreeEntry SearchTreeEntry, SearchWindowContext context)
|
||||
public bool OnSelectEntry(SearchTreeEntry searchTreeEntry, SearchWindowContext context)
|
||||
{
|
||||
onSetIndexCallback?.Invoke((int)SearchTreeEntry.userData);
|
||||
onSetIndexCallback?.Invoke((int)searchTreeEntry.userData);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -18,25 +18,26 @@ namespace Speckle.ConnectorUnity.Wrappers.Editor
|
||||
{
|
||||
private static readonly string[] SpeckleTypeOptionStrings;
|
||||
private static readonly Type[] SpeckleTypeOptions;
|
||||
|
||||
|
||||
private static HashSet<string> ArrayFoldoutState = new();
|
||||
private static bool instancePropFoldoutState = true;
|
||||
private static bool dynamicPropFoldoutState = true;
|
||||
private static bool isEditMode = false;
|
||||
private static bool isEditMode;
|
||||
|
||||
static SpecklePropertiesEditor()
|
||||
{
|
||||
var options = typeof(Mesh).Assembly
|
||||
.GetTypes()
|
||||
.Where(x => x.IsSubclassOf(typeof(Base)) && !x.IsAbstract).ToList();
|
||||
.Where(x => x.IsSubclassOf(typeof(Base)) && !x.IsAbstract)
|
||||
.ToList();
|
||||
|
||||
var strings = options
|
||||
.Where(x => x.FullName != null)
|
||||
.Select(x => x.FullName!.Replace('.', '/'));
|
||||
|
||||
var manualTypes = new [] { typeof(Base), typeof(Collection)};
|
||||
var manualStrings = new []{ nameof(Base), nameof(Collection)};
|
||||
|
||||
|
||||
var manualTypes = new[] { typeof(Base), typeof(Collection) };
|
||||
var manualStrings = new[] { nameof(Base), nameof(Collection) };
|
||||
|
||||
//Manually Add `Base`
|
||||
SpeckleTypeOptions = options.Concat(manualTypes).ToArray();
|
||||
SpeckleTypeOptionStrings = strings.Concat(manualStrings).ToArray();
|
||||
@@ -45,64 +46,82 @@ namespace Speckle.ConnectorUnity.Wrappers.Editor
|
||||
}
|
||||
|
||||
private static GUILayoutOption[] propLayoutOptions = { GUILayout.ExpandWidth(true) };
|
||||
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
SpeckleProperties properties = (SpeckleProperties)target;
|
||||
|
||||
//Edit Mode
|
||||
isEditMode = EditorGUILayout.ToggleLeft("Enable Inspector Edit Mode (experimental)", isEditMode);
|
||||
isEditMode = EditorGUILayout.ToggleLeft(
|
||||
"Enable Inspector Edit Mode (experimental)",
|
||||
isEditMode
|
||||
);
|
||||
|
||||
if (isEditMode)
|
||||
{
|
||||
GUILayout.Label(
|
||||
"Modifying properties through the inspector is experimental and can lead to invalid objects, proceed at your own risk!",
|
||||
EditorStyles.helpBox);
|
||||
EditorStyles.helpBox
|
||||
);
|
||||
GUILayout.Space(10);
|
||||
}
|
||||
GUI.enabled = isEditMode;
|
||||
|
||||
|
||||
// SpeckleType
|
||||
GUILayout.Label("Speckle Type: ", EditorStyles.boldLabel );
|
||||
|
||||
GUILayout.Label("Speckle Type: ", EditorStyles.boldLabel);
|
||||
|
||||
var oldIndex = Array.IndexOf(SpeckleTypeOptions, properties.SpeckleType);
|
||||
var speckleTypeSelectedIndex = EditorGUILayout.Popup(oldIndex, SpeckleTypeOptionStrings);
|
||||
|
||||
if(oldIndex != speckleTypeSelectedIndex && speckleTypeSelectedIndex >= 0)
|
||||
var speckleTypeSelectedIndex = EditorGUILayout.Popup(
|
||||
oldIndex,
|
||||
SpeckleTypeOptionStrings
|
||||
);
|
||||
|
||||
if (oldIndex != speckleTypeSelectedIndex && speckleTypeSelectedIndex >= 0)
|
||||
{
|
||||
properties.SpeckleType = SpeckleTypeOptions[speckleTypeSelectedIndex];
|
||||
}
|
||||
|
||||
|
||||
// Instance Properties
|
||||
var InstancePropertyNames = DynamicBase.GetInstanceMembersNames(properties.SpeckleType);
|
||||
instancePropFoldoutState = EditorGUILayout.Foldout(instancePropFoldoutState, "Instance Properties: ", EditorStyles.foldoutHeader);
|
||||
var instancePropertyNames =
|
||||
(IReadOnlyCollection<string>)
|
||||
DynamicBase.GetInstanceMembersNames(properties.SpeckleType);
|
||||
instancePropFoldoutState = EditorGUILayout.Foldout(
|
||||
instancePropFoldoutState,
|
||||
"Instance Properties: ",
|
||||
EditorStyles.foldoutHeader
|
||||
);
|
||||
if (instancePropFoldoutState)
|
||||
{
|
||||
foreach (var propName in InstancePropertyNames)
|
||||
foreach (var propName in instancePropertyNames)
|
||||
{
|
||||
if (!properties.Data.TryGetValue(propName, out object? existingValue)) continue;
|
||||
|
||||
if (!properties.Data.TryGetValue(propName, out object? existingValue))
|
||||
continue;
|
||||
|
||||
var newValue = CreateField(existingValue, propName, propLayoutOptions);
|
||||
if(newValue != existingValue)
|
||||
if (newValue != existingValue)
|
||||
properties.Data[propName] = newValue;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
GUILayout.Space(10);
|
||||
dynamicPropFoldoutState = EditorGUILayout.Foldout(dynamicPropFoldoutState, "Dynamic Properties:", EditorStyles.foldoutHeader);
|
||||
dynamicPropFoldoutState = EditorGUILayout.Foldout(
|
||||
dynamicPropFoldoutState,
|
||||
"Dynamic Properties:",
|
||||
EditorStyles.foldoutHeader
|
||||
);
|
||||
if (dynamicPropFoldoutState)
|
||||
{
|
||||
var ignoreSet = InstancePropertyNames.ToImmutableHashSet();
|
||||
var ignoreSet = instancePropertyNames.ToImmutableHashSet();
|
||||
foreach (var kvp in properties.Data)
|
||||
{
|
||||
if (ignoreSet.Contains(kvp.Key)) continue;
|
||||
|
||||
if (ignoreSet.Contains(kvp.Key))
|
||||
continue;
|
||||
|
||||
var existingValue = kvp.Value;
|
||||
var newValue = CreateField(existingValue, kvp.Key, propLayoutOptions);
|
||||
if(newValue != existingValue)
|
||||
if (newValue != existingValue)
|
||||
properties.Data[kvp.Key] = newValue;
|
||||
|
||||
|
||||
GUILayout.Space(10);
|
||||
}
|
||||
}
|
||||
@@ -118,13 +137,18 @@ namespace Speckle.ConnectorUnity.Wrappers.Editor
|
||||
_ => CreateFieldPrimitive(v, propName, options),
|
||||
};
|
||||
|
||||
if (ret != null) return ret;
|
||||
|
||||
EditorGUILayout.TextField(propName, v == null? "NULL" : v.ToString());
|
||||
if (ret != null)
|
||||
return ret;
|
||||
|
||||
EditorGUILayout.TextField(propName, v == null ? "NULL" : v.ToString());
|
||||
return v;
|
||||
}
|
||||
|
||||
private static object? CreateFieldPrimitive(object? v, string propName, params GUILayoutOption[] options)
|
||||
|
||||
private static object? CreateFieldPrimitive(
|
||||
object? v,
|
||||
string propName,
|
||||
params GUILayoutOption[] options
|
||||
)
|
||||
{
|
||||
return v switch
|
||||
{
|
||||
@@ -135,11 +159,19 @@ namespace Speckle.ConnectorUnity.Wrappers.Editor
|
||||
string s => EditorGUILayout.TextField(propName, s, options),
|
||||
bool b => EditorGUILayout.Toggle(propName, b, options),
|
||||
Enum e => EditorGUILayout.EnumPopup(propName, e, options),
|
||||
Point p => PointToVector3(EditorGUILayout.Vector3Field(propName, new Vector3((float)p.x, (float)p.z, (float)p.z), options), p),
|
||||
Point p
|
||||
=> PointToVector3(
|
||||
EditorGUILayout.Vector3Field(
|
||||
propName,
|
||||
new Vector3((float)p.x, (float)p.z, (float)p.z),
|
||||
options
|
||||
),
|
||||
p
|
||||
),
|
||||
_ => null,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
private static Point PointToVector3(Vector3 vector, Point p)
|
||||
{
|
||||
p.x = vector.x;
|
||||
@@ -147,10 +179,13 @@ namespace Speckle.ConnectorUnity.Wrappers.Editor
|
||||
p.z = vector.z;
|
||||
return p;
|
||||
}
|
||||
|
||||
|
||||
private IList ArrayField(string propName, IList list, params GUILayoutOption[] options)
|
||||
{
|
||||
bool isExpanded = EditorGUILayout.Foldout(ArrayFoldoutState.Contains(propName), propName);
|
||||
bool isExpanded = EditorGUILayout.Foldout(
|
||||
ArrayFoldoutState.Contains(propName),
|
||||
propName
|
||||
);
|
||||
if (isExpanded)
|
||||
{
|
||||
ArrayFoldoutState.Add(propName);
|
||||
@@ -158,10 +193,13 @@ namespace Speckle.ConnectorUnity.Wrappers.Editor
|
||||
{
|
||||
object? item = list[i];
|
||||
var r = CreateFieldPrimitive(item, i.ToString(), options);
|
||||
|
||||
|
||||
if (r == null)
|
||||
{
|
||||
EditorGUILayout.TextField(i.ToString(), item == null? "NULL" : item.ToString());
|
||||
EditorGUILayout.TextField(
|
||||
i.ToString(),
|
||||
item == null ? "NULL" : item.ToString()
|
||||
);
|
||||
continue;
|
||||
}
|
||||
//Update list item
|
||||
@@ -175,6 +213,5 @@ namespace Speckle.ConnectorUnity.Wrappers.Editor
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,16 +77,13 @@ namespace Speckle.ConnectorUnity.Components
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Receive the selected <see cref="Commit"/> object, and converts ToNative as children of <paramref name="parent"/>
|
||||
/// </summary>
|
||||
/// <param name="parent">Optional parent <see cref="Transform"/> for the created root <see cref="GameObject"/>s</param>
|
||||
/// <param name="predicate">A filter function to allow for selectively excluding certain objects from being converted</param>
|
||||
/// <remarks>function does not throw, instead calls <see cref="OnErrorAction"/>, and calls <see cref="OnComplete"/> upon completion</remarks>
|
||||
/// <seealso cref="ReceiveAsync(System.Threading.CancellationToken)"/>
|
||||
/// <seealso cref="RecursiveConverter.RecursivelyConvertToNative_Enumerable"/>
|
||||
/// <inheritdoc cref="ReceiveAndConvert_Async"/>
|
||||
/// <example>
|
||||
/// This function is designed to run as a coroutine i.e.
|
||||
/// <c>StartCoroutine(mySpeckleReceiver.ReceiveAndConvert_Routine());</c>
|
||||
/// </example>
|
||||
public IEnumerator ReceiveAndConvert_Routine(
|
||||
Transform? parent,
|
||||
Transform? parent = null,
|
||||
Predicate<TraversalContext>? predicate = null
|
||||
)
|
||||
{
|
||||
@@ -130,9 +127,16 @@ namespace Speckle.ConnectorUnity.Components
|
||||
FinishOperation();
|
||||
}
|
||||
|
||||
/// <inheritdoc cref="ReceiveAndConvert_Routine"/>
|
||||
/// <summary>
|
||||
/// Receive the selected <see cref="Commit"/> object, and converts ToNative as children of <paramref name="parent"/>
|
||||
/// </summary>
|
||||
/// <param name="parent">Optional parent <see cref="Transform"/> for the created root <see cref="GameObject"/>s</param>
|
||||
/// <param name="predicate">A filter function to allow for selectively excluding certain objects from being converted</param>
|
||||
/// <remarks>function does not throw, instead calls <see cref="OnErrorAction"/>, and calls <see cref="OnComplete"/> upon completion</remarks>
|
||||
/// <seealso cref="ReceiveAsync(System.Threading.CancellationToken)"/>
|
||||
/// <seealso cref="RecursiveConverter.RecursivelyConvertToNative_Enumerable"/>
|
||||
public async void ReceiveAndConvert_Async(
|
||||
Transform? parent,
|
||||
Transform? parent = null,
|
||||
Predicate<TraversalContext>? predicate = null
|
||||
)
|
||||
{
|
||||
@@ -323,7 +327,6 @@ namespace Speckle.ConnectorUnity.Components
|
||||
{
|
||||
await client
|
||||
.CommitReceived(
|
||||
cancellationToken,
|
||||
new CommitReceivedInput
|
||||
{
|
||||
streamId = streamId,
|
||||
@@ -332,7 +335,8 @@ namespace Speckle.ConnectorUnity.Components
|
||||
sourceApplication = HostApplications.Unity.GetVersion(
|
||||
CoreUtils.GetHostAppVersion()
|
||||
)
|
||||
}
|
||||
},
|
||||
cancellationToken
|
||||
)
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
@@ -510,7 +514,7 @@ namespace Speckle.ConnectorUnity.Components
|
||||
Branch.Initialise();
|
||||
Commit.Initialise();
|
||||
Commit.OnSelectionChange = () => OnCommitSelectionChange?.Invoke(Commit.Selected);
|
||||
if (Account.Options is not { Length: > 0 } || forceRefresh)
|
||||
if (Account.Options is not { Count: > 0 } || forceRefresh)
|
||||
Account.RefreshOptions();
|
||||
}
|
||||
|
||||
@@ -536,7 +540,7 @@ namespace Speckle.ConnectorUnity.Components
|
||||
|
||||
#region Deprecated members
|
||||
|
||||
[Obsolete("use " + nameof(ReceiveAndConvertRoutine), true)]
|
||||
[Obsolete("use " + nameof(ReceiveAndConvert_Routine), true)]
|
||||
public IEnumerator ReceiveAndConvertRoutine(
|
||||
SpeckleReceiver speckleReceiver,
|
||||
string rootObjectName,
|
||||
|
||||
@@ -141,7 +141,6 @@ namespace Speckle.ConnectorUnity.Components
|
||||
)
|
||||
{
|
||||
string commitId = await client.CommitCreate(
|
||||
cancellationToken,
|
||||
new CommitCreateInput
|
||||
{
|
||||
streamId = streamId,
|
||||
@@ -152,7 +151,8 @@ namespace Speckle.ConnectorUnity.Components
|
||||
CoreUtils.GetHostAppVersion()
|
||||
),
|
||||
totalChildrenCount = (int)data.totalChildrenCount,
|
||||
}
|
||||
},
|
||||
cancellationToken
|
||||
);
|
||||
|
||||
return commitId;
|
||||
@@ -230,7 +230,7 @@ namespace Speckle.ConnectorUnity.Components
|
||||
Stream.Initialise();
|
||||
Branch.Initialise();
|
||||
Branch.OnSelectionChange = () => OnBranchSelectionChange?.Invoke(Branch.Selected);
|
||||
if (Account.Options is not { Length: > 0 } || forceRefresh)
|
||||
if (Account.Options is not { Count: > 0 } || forceRefresh)
|
||||
Account.RefreshOptions();
|
||||
}
|
||||
|
||||
|
||||
+32
-32
@@ -47,21 +47,27 @@ namespace Objects.Converter.Unity
|
||||
|
||||
public Vector3 VectorFromPoint(Point p) => VectorByCoordinates(p.x, p.y, p.z, p.units);
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="arr"></param>
|
||||
/// <param name="arr">flat list of x,y,z values</param>
|
||||
/// <param name="units"></param>
|
||||
/// <returns></returns>
|
||||
public Vector3[] ArrayToPoints(IList<double> arr, string units)
|
||||
/// <exception cref="ArgumentException">Length of <paramref name="arr"/> must be a multiple of 3</exception>
|
||||
public Vector3[] ArrayToPoints(IReadOnlyList<double> arr, string units)
|
||||
{
|
||||
if (arr.Count % 3 != 0)
|
||||
throw new Exception("Array malformed: length not a multiple of 3");
|
||||
{
|
||||
throw new ArgumentException(
|
||||
"Array malformed: length not a multiple of 3",
|
||||
nameof(arr)
|
||||
);
|
||||
}
|
||||
|
||||
Vector3[] points = new Vector3[arr.Count / 3];
|
||||
var f = GetConversionFactor(units);
|
||||
double f = GetConversionFactor(units);
|
||||
|
||||
for (int i = 2, k = 0; i < arr.Count; i += 3)
|
||||
{
|
||||
points[k++] = VectorByCoordinates(arr[i - 2], arr[i - 1], arr[i], f);
|
||||
}
|
||||
|
||||
return points;
|
||||
}
|
||||
@@ -70,13 +76,7 @@ namespace Objects.Converter.Unity
|
||||
|
||||
#region ToSpeckle
|
||||
|
||||
//TODO: more of these
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="obj"></param>
|
||||
/// <returns></returns>
|
||||
[Obsolete("", true)]
|
||||
public virtual Point PointToSpeckle(Vector3 p)
|
||||
{
|
||||
//switch y and z
|
||||
@@ -117,7 +117,7 @@ namespace Objects.Converter.Unity
|
||||
{
|
||||
Vector3 newPt = VectorByCoordinates(point.x, point.y, point.z, point.units);
|
||||
|
||||
var go = NewPointBasedGameObject(new Vector3[] { newPt, newPt }, point.speckle_type);
|
||||
var go = NewPointBasedGameObject(new[] { newPt, newPt }, point.speckle_type);
|
||||
return go;
|
||||
}
|
||||
|
||||
@@ -352,30 +352,30 @@ namespace Objects.Converter.Unity
|
||||
public Matrix4x4 TransformToNativeMatrix(STransform speckleTransform)
|
||||
{
|
||||
var sf = GetConversionFactor(speckleTransform.units);
|
||||
var smatrix = speckleTransform.matrix;
|
||||
var sMatrix = speckleTransform.matrix;
|
||||
|
||||
return new Matrix4x4
|
||||
{
|
||||
// Left (X -> X)
|
||||
[0, 0] = smatrix.M11,
|
||||
[2, 0] = smatrix.M21,
|
||||
[1, 0] = smatrix.M31,
|
||||
[3, 0] = smatrix.M41,
|
||||
[0, 0] = (float)sMatrix.M11,
|
||||
[2, 0] = (float)sMatrix.M21,
|
||||
[1, 0] = (float)sMatrix.M31,
|
||||
[3, 0] = (float)sMatrix.M41,
|
||||
//Up (Z -> Y)
|
||||
[0, 2] = smatrix.M12,
|
||||
[2, 2] = smatrix.M22,
|
||||
[1, 2] = smatrix.M32,
|
||||
[3, 2] = smatrix.M42,
|
||||
[0, 2] = (float)sMatrix.M12,
|
||||
[2, 2] = (float)sMatrix.M22,
|
||||
[1, 2] = (float)sMatrix.M32,
|
||||
[3, 2] = (float)sMatrix.M42,
|
||||
//Forwards (Y -> Z)
|
||||
[0, 1] = smatrix.M13,
|
||||
[2, 1] = smatrix.M23,
|
||||
[1, 1] = smatrix.M33,
|
||||
[3, 1] = smatrix.M43,
|
||||
[0, 1] = (float)sMatrix.M13,
|
||||
[2, 1] = (float)sMatrix.M23,
|
||||
[1, 1] = (float)sMatrix.M33,
|
||||
[3, 1] = (float)sMatrix.M43,
|
||||
//Translation
|
||||
[0, 3] = (float)(smatrix.M14 * sf),
|
||||
[2, 3] = (float)(smatrix.M24 * sf),
|
||||
[1, 3] = (float)(smatrix.M34 * sf),
|
||||
[3, 3] = smatrix.M44,
|
||||
[0, 3] = (float)(sMatrix.M14 * sf),
|
||||
[2, 3] = (float)(sMatrix.M24 * sf),
|
||||
[1, 3] = (float)(sMatrix.M34 * sf),
|
||||
[3, 3] = (float)sMatrix.M44,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -202,6 +202,18 @@ namespace Objects.Converter.Unity
|
||||
return objects.Select(x => ConvertToNative(x)).ToList();
|
||||
}
|
||||
|
||||
public object ConvertToNativeDisplayable(Base @object)
|
||||
{
|
||||
throw new NotImplementedException(
|
||||
$"{nameof(ConvertToNativeDisplayable)} is not implemented by this converter, use {nameof(ConvertToNative)} instead"
|
||||
);
|
||||
}
|
||||
|
||||
public bool CanConvertToNativeDisplayable(Base @object)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool CanConvertToSpeckle(object @object)
|
||||
{
|
||||
switch (@object)
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
"Serilog.Sinks.Console": "4.1.0",
|
||||
"Serilog.Sinks.Seq": "5.2.2",
|
||||
"SerilogTimings": "3.0.1",
|
||||
"Speckle.Newtonsoft.Json": "13.0.2"
|
||||
"Speckle.Newtonsoft.Json": "13.0.2",
|
||||
"System.DoubleNumerics": "3.1.3"
|
||||
},
|
||||
"runtime": {
|
||||
"SpeckleCore2.dll": {}
|
||||
@@ -444,6 +445,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.DoubleNumerics/3.1.3": {
|
||||
"dependencies": {
|
||||
"NETStandard.Library": "2.0.3"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard1.3/System.DoubleNumerics.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Memory/4.5.4": {
|
||||
"dependencies": {
|
||||
"System.Buffers": "4.5.1",
|
||||
@@ -863,6 +875,13 @@
|
||||
"path": "system.collections.immutable/5.0.0",
|
||||
"hashPath": "system.collections.immutable.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.DoubleNumerics/3.1.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KRKEM/L3KBodjA9VOg3EifFVWUY6EOqaMB05UvPEDm7Zeby/kZW+4kdWUEPzW6xtkwf46p661L9NrbeeQhtLzw==",
|
||||
"path": "system.doublenumerics/3.1.3",
|
||||
"hashPath": "system.doublenumerics.3.1.3.nupkg.sha512"
|
||||
},
|
||||
"System.Memory/4.5.4": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -16,383 +16,173 @@
|
||||
https://www.apollographql.com/docs/apollo-server/v2/data/errors/#forbidden
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetActivity(System.String,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.String,System.Int32)">
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetActivity(System.String,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.String,System.Int32,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets the activity of a stream
|
||||
</summary>
|
||||
<param name="streamId">Id of the stream to get the activity from</param>
|
||||
<param name="after">Only show activity after this DateTime</param>
|
||||
<param name="before">Only show activity before this DateTime</param>
|
||||
<param name="cursor">Time to filter the activity with</param>
|
||||
<param name="actionType">Time to filter the activity with</param>
|
||||
<param name="limit">Max number of activity items to get</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetActivity(System.Threading.CancellationToken,System.String,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.String,System.Int32)">
|
||||
<summary>
|
||||
Gets the activity of a stream
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="id">Id of the stream to get the activity from</param>
|
||||
<param name="after">Only show activity after this DateTime</param>
|
||||
<param name="before">Only show activity before this DateTime</param>
|
||||
<param name="cursor">Time to filter the activity with</param>
|
||||
<param name="actionType">Time to filter the activity with</param>
|
||||
<param name="limit">Max number of commits to get</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:System.Exception"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetBranches(System.String,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Get branches from a given stream
|
||||
</summary>
|
||||
<param name="streamId">Id of the stream to get the branches from</param>
|
||||
<param name="branchesLimit">Max number of branches to retrieve</param>
|
||||
<param name="commitsLimit">Max number of commits to retrieve</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetBranches(System.Threading.CancellationToken,System.String,System.Int32,System.Int32)">
|
||||
<summary>
|
||||
Get branches from a given stream
|
||||
</summary>
|
||||
<param name="limit">Max number of activity items to get</param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetBranchesWithLimitRetry(System.String,System.Int32)">
|
||||
<summary>
|
||||
Get branches from a given stream, first with a max of 500 and then with a max of 100.
|
||||
This ensures that if the server API is limiting to 100 branches, that any failure will try again at the lower value.
|
||||
</summary>
|
||||
<param name="streamId">Id of the stream to get the branches from</param>
|
||||
<param name="commitsLimit">Max number of commits to retrieve</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetBranches(System.String,System.Int32,System.Int32,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Get branches from a given stream
|
||||
</summary>
|
||||
<param name="streamId">Id of the stream to get the branches from</param>
|
||||
<param name="branchesLimit">Max number of branches to retrieve</param>
|
||||
<param name="commitsLimit">Max number of commits to retrieve</param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:System.Exception"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.BranchCreate(Speckle.Core.Api.BranchCreateInput)">
|
||||
<summary>
|
||||
Creates a branch on a stream.
|
||||
</summary>
|
||||
<param name="branchInput"></param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.BranchCreate(System.Threading.CancellationToken,Speckle.Core.Api.BranchCreateInput)">
|
||||
<member name="M:Speckle.Core.Api.Client.BranchCreate(Speckle.Core.Api.BranchCreateInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Creates a branch on a stream.
|
||||
</summary>
|
||||
<param name="branchInput"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns>The branch id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.BranchGet(System.String,System.String,System.Int32)">
|
||||
<member name="M:Speckle.Core.Api.Client.BranchGet(System.String,System.String,System.Int32,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets a given branch from a stream.
|
||||
</summary>
|
||||
<param name="streamId">Id of the stream to get the branch from</param>
|
||||
<param name="branchName">Name of the branch to get</param>
|
||||
<returns></returns>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns>The requested branch</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.BranchGet(System.Threading.CancellationToken,System.String,System.String,System.Int32)">
|
||||
<member name="M:Speckle.Core.Api.Client.ModelGet(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets a given branch from a stream.
|
||||
Gets a given model from a project.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="streamId">Id of the stream to get the branch from</param>
|
||||
<param name="branchName">Name of the branch to get</param>
|
||||
<param name="projectId">Id of the project to get the model from</param>
|
||||
<param name="modelId">Id of the model</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.BranchUpdate(Speckle.Core.Api.BranchUpdateInput)">
|
||||
<member name="M:Speckle.Core.Api.Client.BranchUpdate(Speckle.Core.Api.BranchUpdateInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Updates a branch.
|
||||
</summary>
|
||||
<param name="branchInput"></param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.BranchUpdate(System.Threading.CancellationToken,Speckle.Core.Api.BranchUpdateInput)">
|
||||
<summary>
|
||||
Updates a branch.
|
||||
</summary>
|
||||
<param name="branchInput"></param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.BranchDelete(Speckle.Core.Api.BranchDeleteInput)">
|
||||
<member name="M:Speckle.Core.Api.Client.BranchDelete(Speckle.Core.Api.BranchDeleteInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Deletes a stream.
|
||||
</summary>
|
||||
<param name="branchInput"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.BranchDelete(System.Threading.CancellationToken,Speckle.Core.Api.BranchDeleteInput)">
|
||||
<summary>
|
||||
Deletes a stream.
|
||||
</summary>
|
||||
<param name="branchInput"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetComments(System.String,System.Int32,System.String)">
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetComments(System.String,System.Int32,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets the comments on a Stream
|
||||
</summary>
|
||||
<param name="streamId">Id of the stream to get the comments from</param>
|
||||
<param name="limit">The number of comments to get</param>
|
||||
<param name="cursor">Time to filter the comments with</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetComments(System.Threading.CancellationToken,System.String,System.Int32,System.String)">
|
||||
<summary>
|
||||
Gets the comments on a Stream
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="streamId">Id of the stream to get the comments from</param>
|
||||
<param name="limit">The number of comments to get</param>
|
||||
<param name="cursor">Time to filter the comments with</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetCommentScreenshot(System.String,System.String)">
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetCommentScreenshot(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets the screenshot of a Comment
|
||||
Gets the screenshot of a Comment
|
||||
</summary>
|
||||
<param name="id">Id of the comment</param>
|
||||
<param name="streamId">Id of the stream to get the comment from</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetCommentScreenshot(System.Threading.CancellationToken,System.String,System.String)">
|
||||
<summary>
|
||||
Gets the screenshot of a Comment
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="id">Id of the comment</param>
|
||||
<param name="streamId">Id of the stream to get the comment from</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitGet(System.String,System.String)">
|
||||
<member name="M:Speckle.Core.Api.Client.CommitGet(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets a given commit from a stream.
|
||||
</summary>
|
||||
<param name="streamId">Id of the stream to get the commit from</param>
|
||||
<param name="commitId">Id of the commit to get</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitGet(System.Threading.CancellationToken,System.String,System.String)">
|
||||
<summary>
|
||||
Gets a given commit from a stream.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="streamId">Id of the stream to get the commit from</param>
|
||||
<param name="commitId">Id of the commit to get</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetCommits(System.String,System.Int32)">
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetCommits(System.String,System.Int32,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets the latest commits from a stream
|
||||
</summary>
|
||||
<param name="streamId">Id of the stream to get the commits from</param>
|
||||
<param name="limit">Max number of commits to get</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetCommits(System.Threading.CancellationToken,System.String,System.Int32)">
|
||||
<summary>
|
||||
Gets the latest commits from a stream
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="streamId">Id of the stream to get the commits from</param>
|
||||
<param name="limit">Max number of commits to get</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:System.Exception"></exception>
|
||||
<returns>The requested commits</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitCreate(Speckle.Core.Api.CommitCreateInput)">
|
||||
<member name="M:Speckle.Core.Api.Client.CommitCreate(Speckle.Core.Api.CommitCreateInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Creates a commit on a branch.
|
||||
</summary>
|
||||
<param name="commitInput"></param>
|
||||
<returns>The commit id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitCreate(System.Threading.CancellationToken,Speckle.Core.Api.CommitCreateInput)">
|
||||
<inheritdoc cref="M:Speckle.Core.Api.Client.CommitCreate(Speckle.Core.Api.CommitCreateInput)"/>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitUpdate(Speckle.Core.Api.CommitUpdateInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Updates a commit.
|
||||
</summary>
|
||||
<param name="commitInput"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitUpdate(Speckle.Core.Api.CommitUpdateInput)">
|
||||
<summary>
|
||||
Updates a commit.
|
||||
</summary>
|
||||
<param name="commitInput"></param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitUpdate(System.Threading.CancellationToken,Speckle.Core.Api.CommitUpdateInput)">
|
||||
<summary>
|
||||
Updates a commit.
|
||||
</summary>
|
||||
<param name="commitInput"></param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitDelete(Speckle.Core.Api.CommitDeleteInput)">
|
||||
<member name="M:Speckle.Core.Api.Client.CommitDelete(Speckle.Core.Api.CommitDeleteInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Deletes a commit.
|
||||
</summary>
|
||||
<param name="commitInput"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitDelete(System.Threading.CancellationToken,Speckle.Core.Api.CommitDeleteInput)">
|
||||
<summary>
|
||||
Deletes a commit.
|
||||
</summary>
|
||||
<param name="commitInput"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitReceived(Speckle.Core.Api.CommitReceivedInput)">
|
||||
<member name="M:Speckle.Core.Api.Client.CommitReceived(Speckle.Core.Api.CommitReceivedInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Sends a commitReceived mutation, affirming a commit has been received.
|
||||
</summary>
|
||||
<remarks>Used for read receipts</remarks>
|
||||
<param name="commitReceivedInput"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.CommitReceived(System.Threading.CancellationToken,Speckle.Core.Api.CommitReceivedInput)">
|
||||
<inheritdoc cref="M:Speckle.Core.Api.Client.CommitReceived(Speckle.Core.Api.CommitReceivedInput)"/>
|
||||
<param name="cancellationToken"></param>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.ObjectGet(System.String,System.String)">
|
||||
<member name="M:Speckle.Core.Api.Client.ObjectGet(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets a given object from a stream.
|
||||
Gets data about the requested Speckle object from a stream.
|
||||
</summary>
|
||||
<param name="streamId">Id of the stream to get the object from</param>
|
||||
<param name="objectId">Id of the object to get</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.ObjectGet(System.Threading.CancellationToken,System.String,System.String)">
|
||||
<summary>
|
||||
Gets a given object from a stream.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="streamId">Id of the stream to get the object from</param>
|
||||
<param name="objectId">Id of the object to get</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.ObjectCountGet(System.String,System.String)">
|
||||
<member name="M:Speckle.Core.Api.Client.ObjectCountGet(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets a given object from a stream.
|
||||
</summary>
|
||||
<param name="streamId"></param>
|
||||
<param name="objectId"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.ObjectCountGet(System.Threading.CancellationToken,System.String,System.String)">
|
||||
<member name="M:Speckle.Core.Api.Client._CheckStreamInvitesSupported(System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets a given object from a stream.
|
||||
Checks if Speckle Server version is at least v2.6.4 meaning stream invites are supported.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="streamId"></param>
|
||||
<param name="objectId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.GetServerVersion(System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets the version of the current server. Useful for guarding against unsupported api calls on newer or older servers.
|
||||
</summary>
|
||||
<param name="cancellationToken">[Optional] defaults to an empty cancellation token</param>
|
||||
<returns><see cref="T:Speckle.Core.Api.Version"/> object excluding any strings (eg "2.7.2-alpha.6995" becomes "2.7.2.6995")</returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException"></exception>
|
||||
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.IsStreamAccessible(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Cheks if a stream exists by id.
|
||||
</summary>
|
||||
<param name="id">Id of the stream to get</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGet(System.String,System.Int32)">
|
||||
<summary>
|
||||
Gets a stream by id including basic branch info (id, name, description, and total commit count).
|
||||
For detailed commit and branch info, use StreamGetCommits and StreamGetBranches respectively.
|
||||
</summary>
|
||||
<param name="id">Id of the stream to get</param>
|
||||
<param name="branchesLimit">Max number of branches to retrieve</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGet(System.Threading.CancellationToken,System.String,System.Int32)">
|
||||
<summary>
|
||||
Gets a stream by id including basic branch info (id, name, description, and total commit count).
|
||||
For detailed commit and branch info, use StreamGetCommits and StreamGetBranches respectively.
|
||||
</summary>
|
||||
<param name="id">Id of the stream to get</param>
|
||||
<param name="branchesLimit">Max number of branches to retrieve</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamsGet(System.Int32)">
|
||||
<summary>
|
||||
Gets all streams for the current user
|
||||
</summary>
|
||||
<param name="limit">Max number of streams to return</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamsGet(System.Threading.CancellationToken,System.Int32)">
|
||||
<summary>
|
||||
Gets all streams for the current user
|
||||
</summary>
|
||||
<param name="limit">Max number of streams to return</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.FavoriteStreamsGet(System.Threading.CancellationToken,System.Int32)">
|
||||
<summary>
|
||||
Gets all favorite streams for the current user
|
||||
</summary>
|
||||
<param name="limit">Max number of streams to return</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamSearch(System.String,System.Int32)">
|
||||
<summary>
|
||||
Searches the user's streams by name, description, and ID
|
||||
</summary>
|
||||
<param name="query">String query to search for</param>
|
||||
<param name="limit">Max number of streams to return</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamSearch(System.Threading.CancellationToken,System.String,System.Int32)">
|
||||
<summary>
|
||||
Searches the user's streams by name, description, and ID
|
||||
</summary>
|
||||
<param name="query">String query to search for</param>
|
||||
<param name="limit">Max number of streams to return</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamCreate(Speckle.Core.Api.StreamCreateInput)">
|
||||
<summary>
|
||||
Creates a stream.
|
||||
</summary>
|
||||
<param name="streamInput"></param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamCreate(System.Threading.CancellationToken,Speckle.Core.Api.StreamCreateInput)">
|
||||
<summary>
|
||||
Creates a stream.
|
||||
</summary>
|
||||
<param name="streamInput"></param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamUpdate(Speckle.Core.Api.StreamUpdateInput)">
|
||||
<summary>
|
||||
Updates a stream.
|
||||
</summary>
|
||||
<param name="streamInput">Note: the id field needs to be a valid stream id.</param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamUpdate(System.Threading.CancellationToken,Speckle.Core.Api.StreamUpdateInput)">
|
||||
<summary>
|
||||
Updates a stream.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="streamInput">Note: the id field needs to be a valid stream id.</param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamDelete(System.String)">
|
||||
<summary>
|
||||
Deletes a stream.
|
||||
</summary>
|
||||
<param name="id">Id of the stream to be deleted</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamDelete(System.Threading.CancellationToken,System.String)">
|
||||
<summary>
|
||||
Deletes a stream.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="id">Id of the stream to be deleted</param>
|
||||
<returns></returns>
|
||||
<returns>true if invites are supported</returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException">if Speckle Server version is less than v2.6.4</exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGrantPermission(Speckle.Core.Api.StreamPermissionInput)">
|
||||
<summary>
|
||||
@@ -409,19 +199,87 @@
|
||||
<param name="permissionInput"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamRevokePermission(Speckle.Core.Api.StreamRevokePermissionInput)">
|
||||
<member name="M:Speckle.Core.Api.Client.GetServerVersion(System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Revokes permissions of a user on a given stream.
|
||||
Gets the version of the current server. Useful for guarding against unsupported api calls on newer or older servers.
|
||||
</summary>
|
||||
<param name="permissionInput"></param>
|
||||
<param name="cancellationToken">[Optional] defaults to an empty cancellation token</param>
|
||||
<returns><see cref="T:Speckle.Core.Api.Version"/> object excluding any strings (eg "2.7.2-alpha.6995" becomes "2.7.2.6995")</returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.IsStreamAccessible(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Checks if a stream exists by id.
|
||||
</summary>
|
||||
<param name="id">Id of the stream to get</param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamRevokePermission(System.Threading.CancellationToken,Speckle.Core.Api.StreamRevokePermissionInput)">
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGet(System.String,System.Int32,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets a stream by id including basic branch info (id, name, description, and total commit count).
|
||||
For detailed commit and branch info, use <see cref="M:Speckle.Core.Api.Client.StreamGetCommits(System.String,System.Int32,System.Threading.CancellationToken)"/> and <see cref="M:Speckle.Core.Api.Client.StreamGetBranches(System.String,System.Int32,System.Int32,System.Threading.CancellationToken)"/> respectively.
|
||||
</summary>
|
||||
<param name="id">Id of the stream to get</param>
|
||||
<param name="branchesLimit">Max number of branches to retrieve</param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamsGet(System.Int32,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all streams for the current user
|
||||
</summary>
|
||||
<param name="limit">Max number of streams to return</param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.FavoriteStreamsGet(System.Int32,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets all favorite streams for the current user
|
||||
</summary>
|
||||
<param name="limit">Max number of streams to return</param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamSearch(System.String,System.Int32,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Searches the user's streams by name, description, and ID
|
||||
</summary>
|
||||
<param name="query">String query to search for</param>
|
||||
<param name="limit">Max number of streams to return</param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamCreate(Speckle.Core.Api.StreamCreateInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Creates a stream.
|
||||
</summary>
|
||||
<param name="streamInput"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamUpdate(Speckle.Core.Api.StreamUpdateInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Updates a stream.
|
||||
</summary>
|
||||
<param name="streamInput">Note: the id field needs to be a valid stream id.</param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns>The stream's id.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamDelete(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Deletes a stream.
|
||||
</summary>
|
||||
<param name="id">Id of the stream to be deleted</param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamRevokePermission(Speckle.Core.Api.StreamRevokePermissionInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Revokes permissions of a user on a given stream.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="permissionInput"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamUpdatePermission(Speckle.Core.Api.StreamPermissionInput,System.Threading.CancellationToken)">
|
||||
@@ -433,36 +291,21 @@
|
||||
<returns></returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetPendingCollaborators(System.String)">
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetPendingCollaborators(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets the pending collaborators of a stream by id.
|
||||
Requires the user to be an owner of the stream.
|
||||
</summary>
|
||||
<param name="id">Id of the stream to get</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamGetPendingCollaborators(System.Threading.CancellationToken,System.String)">
|
||||
<summary>
|
||||
Gets the pending collaborators of a stream by id.
|
||||
Requires the user to be an owner of the stream.
|
||||
</summary>
|
||||
<param name="id">Id of the stream to get</param>
|
||||
<param name="branchesLimit">Max number of branches to retrieve</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamInviteCreate(Speckle.Core.Api.StreamInviteCreateInput)">
|
||||
<summary>
|
||||
Sends an email invite to join a stream and assigns them a collaborator role.
|
||||
</summary>
|
||||
<param name="streamCreateInput"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamInviteCreate(System.Threading.CancellationToken,Speckle.Core.Api.StreamInviteCreateInput)">
|
||||
<summary>
|
||||
Sends an email invite to join a stream and assigns them a collaborator role.
|
||||
</summary>
|
||||
<param name="streamId"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamInviteCreate(Speckle.Core.Api.StreamInviteCreateInput,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Sends an email invite to join a stream and assigns them a collaborator role.
|
||||
</summary>
|
||||
<param name="inviteCreateInput"></param>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamInviteCancel(System.String,System.String,System.Threading.CancellationToken)">
|
||||
@@ -474,14 +317,6 @@
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client._CheckStreamInvitesSupported(System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Checks if Speckle Server version is at least v2.6.4 meaning stream invites are supported.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns>true if invites are supported</returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException">if Speckle Server version is less than v2.6.4</exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.StreamInviteUse(System.String,System.String,System.Boolean,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Accept or decline a stream invite.
|
||||
@@ -493,45 +328,22 @@
|
||||
<returns></returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.ActiveUserGet">
|
||||
<summary>
|
||||
Gets the currently active user profile.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.ActiveUserGet(System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Gets the currently active user profile.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.OtherUserGet(System.String)">
|
||||
<member name="M:Speckle.Core.Api.Client.OtherUserGet(System.String,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Get another user's profile by its user id.
|
||||
</summary>
|
||||
<param name="id">Id of the user you are looking for</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.OtherUserGet(System.Threading.CancellationToken,System.String)">
|
||||
<summary>
|
||||
Get another user's profile by its user id.
|
||||
</summary>
|
||||
<param name="cancellationToken"></param>
|
||||
<param name="id">Id of the user you are looking for</param>
|
||||
<returns></returns>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.UserSearch(System.String,System.Int32)">
|
||||
<summary>
|
||||
Searches for a user on the server.
|
||||
</summary>
|
||||
<param name="query">String to search for. Must be at least 3 characters</param>
|
||||
<param name="limit">Max number of users to return</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Client.UserSearch(System.Threading.CancellationToken,System.String,System.Int32)">
|
||||
<member name="M:Speckle.Core.Api.Client.UserSearch(System.String,System.Int32,System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
Searches for a user on the server.
|
||||
</summary>
|
||||
@@ -601,17 +413,17 @@
|
||||
</member>
|
||||
<member name="P:Speckle.Core.Api.Stream.branch">
|
||||
<summary>
|
||||
Set only in the case that you've requested this through <see cref="M:Speckle.Core.Api.Client.BranchGet(System.Threading.CancellationToken,System.String,System.String,System.Int32)"/>.
|
||||
Set only in the case that you've requested this through <see cref="M:Speckle.Core.Api.Client.BranchGet(System.String,System.String,System.Int32,System.Threading.CancellationToken)"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Speckle.Core.Api.Stream.commit">
|
||||
<summary>
|
||||
Set only in the case that you've requested this through <see cref="M:Speckle.Core.Api.Client.CommitGet(System.Threading.CancellationToken,System.String,System.String)"/>.
|
||||
Set only in the case that you've requested this through <see cref="M:Speckle.Core.Api.Client.CommitGet(System.String,System.String,System.Threading.CancellationToken)"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Speckle.Core.Api.Stream.commits">
|
||||
<summary>
|
||||
Set only in the case that you've requested this through <see cref="M:Speckle.Core.Api.Client.StreamGetCommits(System.Threading.CancellationToken,System.String,System.Int32)"/>
|
||||
Set only in the case that you've requested this through <see cref="M:Speckle.Core.Api.Client.StreamGetCommits(System.String,System.Int32,System.Threading.CancellationToken)"/>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Speckle.Core.Api.ActiveUserData">
|
||||
@@ -774,15 +586,25 @@
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Operations.Serialize(Speckle.Core.Models.Base)">
|
||||
<summary>
|
||||
Serializes a given object. Note: if you want to save and persist an object to a Speckle Transport or Server, please use any of the "Send" methods. See <see cref="!:Send(Base, System.Collections.Generic.List<Speckle.Core.Transports.ITransport>, bool, System.Action<System.Collections.Concurrent.ConcurrentDictionary<string,int>>(System.Collections.Concurrent.ConcurrentDictionary<string,int>), Action<string, Exception>)"/>.
|
||||
Serializes a given object.
|
||||
<remarks>
|
||||
if you want to save and persist an object to a Speckle Transport or Server,
|
||||
please use any of the "Send" methods.
|
||||
See <see cref="M:Speckle.Core.Api.Operations.Send(Speckle.Core.Models.Base,System.Collections.Generic.List{Speckle.Core.Transports.ITransport},System.Boolean,System.Action{System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Int32}},System.Action{System.String,System.Exception},System.Boolean,Speckle.Core.Api.SerializerVersion)"/>
|
||||
</remarks>
|
||||
</summary>
|
||||
<param name="object"></param>
|
||||
<returns>A json string representation of the object.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Operations.Serialize(Speckle.Core.Models.Base,System.Threading.CancellationToken,Speckle.Core.Api.SerializerVersion)">
|
||||
<summary>
|
||||
Serializes a given object. Note: if you want to save and persist an object to Speckle Transport or Server, please use any of the "Send" methods. See <see cref="!:Send(Base, System.Collections.Generic.List<Speckle.Core.Transports.ITransport>, bool, System.Action<System.Collections.Concurrent.ConcurrentDictionary<string,int>>(System.Collections.Concurrent.ConcurrentDictionary<string,int>), Action<string, Exception>)"/>.
|
||||
Serializes a given object.
|
||||
</summary>
|
||||
<remarks>
|
||||
If you want to save and persist an object to Speckle Transport or Server,
|
||||
please use any of the "Send" methods.
|
||||
<see cref="M:Speckle.Core.Api.Operations.Send(Speckle.Core.Models.Base,System.Collections.Generic.List{Speckle.Core.Transports.ITransport},System.Boolean,System.Action{System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Int32}},System.Action{System.String,System.Exception},System.Boolean,Speckle.Core.Api.SerializerVersion)"/>
|
||||
</remarks>
|
||||
<param name="object"></param>
|
||||
<param name="cancellationToken">Propagates notification that operations should be canceled.</param>
|
||||
<returns>A json string representation of the object.</returns>
|
||||
@@ -803,15 +625,24 @@
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Operations.Deserialize(System.String)">
|
||||
<summary>
|
||||
Deserializes a given object. Note: if you want to pull an object from a Speckle Transport or Server, please use any of the <see cref="!:Receive(string, Transports.ITransport, Transports.ITransport, System.Action<System.Collections.Concurrent.ConcurrentDictionary<string,int>>(System.Collections.Concurrent.ConcurrentDictionary<string,int>))"/>.
|
||||
Deserializes a given object.
|
||||
</summary>
|
||||
<remarks>
|
||||
Note: if you want to pull an object from a Speckle Transport or Server,
|
||||
please use any of the <see cref="M:Speckle.Core.Api.Operations.Receive(System.String,Speckle.Core.Transports.ITransport,Speckle.Core.Transports.ITransport,System.Action{System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Int32}},System.Action{System.String,System.Exception},System.Action{System.Int32},System.Boolean,Speckle.Core.Api.SerializerVersion)"/>
|
||||
</remarks>
|
||||
<param name="object">The json string representation of a speckle object that you want to deserialise.</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Api.Operations.Deserialize(System.String,System.Threading.CancellationToken,Speckle.Core.Api.SerializerVersion)">
|
||||
<summary>
|
||||
Deserializes a given object. Note: if you want to pull an object from a Speckle Transport or Server, please use any of the <see cref="!:Receive(string, Transports.ITransport, Transports.ITransport, System.Action<System.Collections.Concurrent.ConcurrentDictionary<string,int>>(System.Collections.Concurrent.ConcurrentDictionary<string,int>))"/>.
|
||||
Deserializes a given object.
|
||||
</summary>
|
||||
<remarks>
|
||||
Note: if you want to pull an object from a Speckle Transport or Server,
|
||||
please use any of the
|
||||
<see cref="M:Speckle.Core.Api.Operations.Receive(System.String,Speckle.Core.Transports.ITransport,Speckle.Core.Transports.ITransport,System.Action{System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Int32}},System.Action{System.String,System.Exception},System.Action{System.Int32},System.Boolean,Speckle.Core.Api.SerializerVersion)"/>.
|
||||
</remarks>
|
||||
<param name="object">The json string representation of a speckle object that you want to deserialise.</param>
|
||||
<param name="cancellationToken">Propagates notification that operations should be canceled.</param>
|
||||
<returns></returns>
|
||||
@@ -830,6 +661,15 @@
|
||||
<param name="dictionary"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:Speckle.Core.Api.ServerLimits">
|
||||
<summary>
|
||||
Defines the limits for specific API calls on the Speckle Server.
|
||||
These are magic numbers! Should be aligned with server always.
|
||||
</summary>
|
||||
<remarks>
|
||||
⚠️ Not all limits are reflected here!
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Speckle.Core.Credentials.AccountManager">
|
||||
<summary>
|
||||
Manage accounts locally for desktop applications.
|
||||
@@ -880,7 +720,8 @@
|
||||
<summary>
|
||||
Gets all the accounts present in this environment.
|
||||
</summary>
|
||||
<returns></returns>
|
||||
<remarks>This function does have potential side effects. Any invalid accounts found while enumerating will be removed</remarks>
|
||||
<returns>Un-enumerated enumerable of accounts</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Credentials.AccountManager.GetLocalAccounts">
|
||||
<summary>
|
||||
@@ -1125,16 +966,55 @@
|
||||
</member>
|
||||
<member name="T:Speckle.Core.Kits.ConversionException">
|
||||
<summary>
|
||||
Exception thrown when conversion of an object fails
|
||||
Exception thrown when conversion of an object was not successful
|
||||
</summary>
|
||||
<remarks>
|
||||
Ideally this exception contains a meaningful message, and reference to the object that failed to be converted.
|
||||
This exception can be used for both ToSpeckle and ToNative conversion
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Speckle.Core.Kits.ConversionNotSupportedException">
|
||||
<summary>
|
||||
Exception used when an object could not be converted, because we don't support a specific conversion.
|
||||
</summary>
|
||||
<remarks>
|
||||
This Exception should be thrown as part of a pre-emptive check in conversions (not as part reactive error handling)
|
||||
and usage (throwing) should not be dependent on external state:
|
||||
i.e. given the same object and converter state, the outcome (exception throw or not) should be the same.
|
||||
</remarks>
|
||||
<example>
|
||||
It can be used for:
|
||||
<ul>
|
||||
<li> objects who's <see cref="T:System.Type"/> we don't support (e.g. <c>"Walls are not supported"</c>)</li>
|
||||
<li> objects with a property who's value we don't support (e.g. <c>"Beams with shape type of Circular are not supported"</c>)</li>
|
||||
<li> complex object requirements (e.g. <c>"We don't support walls with zero width and no displayValue"</c>)</li>
|
||||
</ul>
|
||||
It should <b>NOT</b> be used for:
|
||||
<ul>
|
||||
<li> Invalid Speckle Objects (e.g. <c>"We don't support walls with null lines"</c>)</li>
|
||||
<li> Objects that we have already converted, and therefore now skip (e.g. <c>"A Wall with the same name was already converted"</c>)</li>
|
||||
<li> Reactive error handling (e.g. "Failed to convert wall, I guess it wasn't supported")</li>
|
||||
</ul>
|
||||
</example>
|
||||
</member>
|
||||
<member name="T:Speckle.Core.Kits.ConversionSkippedException">
|
||||
<summary>
|
||||
Exception thrown when an object was desirably skipped
|
||||
Exception thrown when an object was desirably skipped<br/>
|
||||
</summary>
|
||||
<remarks>
|
||||
<b>Avoid throwing this exception Type!</b><br/>
|
||||
As it introduces some bad patterns for exception handling.
|
||||
<br/>
|
||||
Namely, it encodes how the exception WILL be handled, Not simply what HAS happened.
|
||||
Exceptions shouldn't care how they are handled.
|
||||
<br/>
|
||||
We were also misusing this exception in Revit, to correct for ambiguity in the way certain objects should be traversed,
|
||||
by selectively skipping objects that were already converted by other means.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="T:Speckle.Core.Kits.ConversionNotReadyException">
|
||||
<summary>
|
||||
Exception thrown when an object was not ready to be baked into the document (i.e. the element's host doesn't exist yet)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Speckle.Core.Kits.ISpeckleConverter.Report">
|
||||
@@ -1182,6 +1062,23 @@
|
||||
<param name="objects"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Kits.ISpeckleConverter.ConvertToNativeDisplayable(Speckle.Core.Models.Base)">
|
||||
<summary>
|
||||
Converts a given speckle objects as a generic native object.
|
||||
This should assume <see cref="M:Speckle.Core.Kits.ISpeckleConverter.CanConvertToNativeDisplayable(Speckle.Core.Models.Base)"/> has been called and returned True,
|
||||
or call it within this method's implementation to ensure non-displayable objects are gracefully handled.
|
||||
</summary>
|
||||
<remarks>
|
||||
This method should not try to convert an object to it's native representation (i.e Speckle Wall -> Wall),
|
||||
but rather use the 'displayValue' of that wall to create a geometrically correct representation of that object
|
||||
in the native application.
|
||||
An object may be able to be converted both with <see cref="M:Speckle.Core.Kits.ISpeckleConverter.ConvertToNative(Speckle.Core.Models.Base)"/> and <see cref="M:Speckle.Core.Kits.ISpeckleConverter.ConvertToNativeDisplayable(Speckle.Core.Models.Base)"/>.
|
||||
In this case, deciding which to use is dependent on each connector developer.
|
||||
Preferably, <see cref="M:Speckle.Core.Kits.ISpeckleConverter.ConvertToNativeDisplayable(Speckle.Core.Models.Base)"/> should be used as a fallback to the <see cref="M:Speckle.Core.Kits.ISpeckleConverter.ConvertToNative(Speckle.Core.Models.Base)"/> logic.
|
||||
</remarks>
|
||||
<param name="object">Speckle object to convert</param>
|
||||
<returns>The native object that resulted after converting the input <paramref name="object"/></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Kits.ISpeckleConverter.CanConvertToNative(Speckle.Core.Models.Base)">
|
||||
<summary>
|
||||
Checks if it can convert a Speckle object to a native one
|
||||
@@ -1189,6 +1086,20 @@
|
||||
<param name="object">Speckle object to convert</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Kits.ISpeckleConverter.CanConvertToNativeDisplayable(Speckle.Core.Models.Base)">
|
||||
<summary>
|
||||
Checks to verify if a given object is: 1) displayable and 2) can be supported for conversion to the native application.
|
||||
An object is considered "displayable" if it has a 'displayValue' property (defined in its class or dynamically attached to it, detached or not).
|
||||
</summary>
|
||||
<remarks>
|
||||
An object may return "True" for both <see cref="M:Speckle.Core.Kits.ISpeckleConverter.CanConvertToNative(Speckle.Core.Models.Base)"/> and <see cref="M:Speckle.Core.Kits.ISpeckleConverter.CanConvertToNativeDisplayable(Speckle.Core.Models.Base)"/>
|
||||
In this case, deciding which to use is dependent on each connector developer.
|
||||
Preferably, <see cref="M:Speckle.Core.Kits.ISpeckleConverter.CanConvertToNativeDisplayable(Speckle.Core.Models.Base)"/> should be used as a fallback to the <see cref="M:Speckle.Core.Kits.ISpeckleConverter.CanConvertToNative(Speckle.Core.Models.Base)"/> logic.
|
||||
Objects found in the 'displayValue' property are assumed to be universally convertible by all converters and the viewer, but are not guaranteed to be so.
|
||||
</remarks>
|
||||
<param name="object">Speckle object to convert</param>
|
||||
<returns>True if the object is "displayable" and the converter supports native conversion of the given speckle object in particular.</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Kits.ISpeckleConverter.GetServicedApplications">
|
||||
<summary>
|
||||
Returns a list of applications serviced by this converter
|
||||
@@ -1650,7 +1561,7 @@
|
||||
<summary>
|
||||
Abstract Builder class for a root commit <see cref="T:Speckle.Core.Models.Base"/> object.
|
||||
</summary>
|
||||
<typeparam name="TNativeObjectData">The native object data type needed as input for building <see cref="F:Speckle.Core.Models.CommitObjectBuilder`1._parentInfos"/></typeparam>
|
||||
<typeparam name="TNativeObjectData">The native object data type needed as input for building <see cref="!:_parentInfos"/></typeparam>
|
||||
<remarks>
|
||||
It is designed to be inherited by a host app specific implementation,
|
||||
to give connectors flexibility in constructing their objects.
|
||||
@@ -1663,12 +1574,12 @@
|
||||
<member name="F:Speckle.Core.Models.CommitObjectBuilder`1.converted">
|
||||
<summary>app id -> base</summary>
|
||||
</member>
|
||||
<member name="F:Speckle.Core.Models.CommitObjectBuilder`1._parentInfos">
|
||||
<summary>Base -> Tuple{Parent App Id, propName} ordered by priority</summary>
|
||||
<member name="F:Speckle.Core.Models.CommitObjectBuilder`1._nestingInstructions">
|
||||
<summary>Base -> NestingInstructions ordered by priority</summary>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Models.CommitObjectBuilder`1.IncludeObject(Speckle.Core.Models.Base,`0)">
|
||||
<summary>
|
||||
Given the parameters, builds connector specific <see cref="F:Speckle.Core.Models.CommitObjectBuilder`1._parentInfos"/>
|
||||
Given the parameters, builds connector specific <see cref="!:_parentInfos"/>
|
||||
to be applied when <see cref="M:Speckle.Core.Models.CommitObjectBuilder`1.BuildCommitObject(Speckle.Core.Models.Base)"/> is called.
|
||||
</summary>
|
||||
<param name="conversionResult"></param>
|
||||
@@ -1684,7 +1595,7 @@
|
||||
</remarks>
|
||||
<param name="rootCommitObject"></param>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Models.CommitObjectBuilder`1.SetRelationship(Speckle.Core.Models.Base,System.ValueTuple{System.String,System.String}[])">
|
||||
<member name="M:Speckle.Core.Models.CommitObjectBuilder`1.SetRelationship(Speckle.Core.Models.Base,System.Collections.Generic.IList{Speckle.Core.Models.NestingInstructions})">
|
||||
<summary>
|
||||
Sets information on how a given object should be nested in the commit tree.
|
||||
<paramref name="parentInfo"/> encodes the order in which we should try and nest the given <paramref name="conversionResult"/>
|
||||
@@ -1704,18 +1615,18 @@
|
||||
<member name="M:Speckle.Core.Models.CommitObjectBuilder`1.ApplyRelationship(Speckle.Core.Models.Base,Speckle.Core.Models.Base)">
|
||||
<summary>
|
||||
Will attempt to find and nest the <paramref name="current"/> object
|
||||
under the first valid parent according to the <see cref="F:Speckle.Core.Models.CommitObjectBuilder`1._parentInfos"/> <see cref="F:Speckle.Core.Models.CommitObjectBuilder`1.converted"/> dictionary.
|
||||
under the first valid parent according to the <see cref="!:_parentInfos"/> <see cref="F:Speckle.Core.Models.CommitObjectBuilder`1.converted"/> dictionary.
|
||||
</summary>
|
||||
<remarks>
|
||||
A parent is considered valid if
|
||||
1. Is non null
|
||||
2. Is in the <see cref="F:Speckle.Core.Models.CommitObjectBuilder`1.converted"/> dictionary
|
||||
3. Has (or can dynamically accept) a <see cref="T:System.Collections.IList"/> typed property with the propName specified by the <see cref="F:Speckle.Core.Models.CommitObjectBuilder`1._parentInfos"/> item
|
||||
3. Has (or can dynamically accept) a <see cref="T:System.Collections.IList"/> typed property with the propName specified by the <see cref="!:_parentInfos"/> item
|
||||
4. Said <see cref="T:System.Collections.IList"/> can accept the <see cref="!:current"/> object's type
|
||||
</remarks>
|
||||
<param name="current"></param>
|
||||
<param name="rootCommitObject"></param>
|
||||
<exception cref="T:System.InvalidOperationException">Thrown when no valid parent was found for <see cref="!:current"/> given <see cref="F:Speckle.Core.Models.CommitObjectBuilder`1._parentInfos"/></exception>
|
||||
<exception cref="T:System.InvalidOperationException">Thrown when no valid parent was found for <see cref="!:current"/> given <see cref="!:_parentInfos"/></exception>
|
||||
</member>
|
||||
<member name="T:Speckle.Core.Models.DynamicBase">
|
||||
<summary>
|
||||
@@ -1885,6 +1796,15 @@
|
||||
<param name="value">Value to set</param>
|
||||
</member>
|
||||
<!-- Badly formed XML comment ignored for member "M:Speckle.Core.Models.Extensions.BaseExtensions.GetDetachedPropName(Speckle.Core.Models.Base,System.String)" -->
|
||||
<member name="M:Speckle.Core.Models.Extensions.BaseExtensions.IsDisplayableObject(Speckle.Core.Models.Base)">
|
||||
<summary>
|
||||
Checks if an object "is displayable" i.e. has a displayValue property that is a list of base.
|
||||
This is to mirror the selection logic of our viewer package, where any "displayable object" will become
|
||||
a single selectable entity.
|
||||
</summary>
|
||||
<param name="speckleObject">The Base object to check.</param>
|
||||
<returns>True if the object is displayable, false otherwise.</returns>
|
||||
</member>
|
||||
<member name="T:Speckle.Core.Models.Abstract">
|
||||
<summary>
|
||||
Wrapper around other, third party, classes that are not coming from a speckle kit.
|
||||
@@ -2105,14 +2025,20 @@
|
||||
<param name="membersToTraverse">Function returning the members that should be traversed for objects where this rule holds <see langword = "true"/></param>
|
||||
<returns>Traversal rule in a usable state</returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Models.Utilities.hashString(System.String,Speckle.Core.Models.Utilities.HashingFuctions)">
|
||||
<member name="T:Speckle.Core.Models.NestingInstructions">
|
||||
<summary>
|
||||
Wrapper method around hashing functions. Defaults to md5.
|
||||
Container for a reference to a parent's applicationId and an Action to
|
||||
execute in order to nest the child on the parent
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Models.Utilities.HashString(System.String,Speckle.Core.Models.Utilities.HashingFunctions)">
|
||||
<summary>
|
||||
Wrapper method around hashing functions..
|
||||
</summary>
|
||||
<param name="input"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Models.Utilities.GetApplicationProps(System.Object,System.Type,System.Boolean,System.Collections.Generic.List{System.String})">
|
||||
<member name="M:Speckle.Core.Models.Utilities.GetApplicationProps(System.Object,System.Type,System.Boolean,System.Collections.Generic.IReadOnlyList{System.String})">
|
||||
<summary>
|
||||
Retrieves the simple type properties of an object
|
||||
</summary>
|
||||
@@ -2152,7 +2078,7 @@
|
||||
<member name="M:Speckle.Core.Serialisation.BaseObjectDeserializerV2.Deserialize(System.String)">
|
||||
<param name="rootObjectJson">The JSON string of the object to be deserialized <see cref="T:Speckle.Core.Models.Base"/></param>
|
||||
<returns>A <see cref="T:Speckle.Core.Models.Base"/> typed object deserialized from the <paramref name="rootObjectJson"/></returns>
|
||||
<exception cref="T:System.InvalidOperationException">Thrown when <see cref="F:Speckle.Core.Serialisation.BaseObjectDeserializerV2.Busy"/></exception>
|
||||
<exception cref="T:System.InvalidOperationException">Thrown when <see cref="F:Speckle.Core.Serialisation.BaseObjectDeserializerV2._busy"/></exception>
|
||||
<exception cref="T:System.ArgumentException">Thrown when <paramref name="rootObjectJson"/> deserializes to a type other than <see cref="T:Speckle.Core.Models.Base"/></exception>
|
||||
</member>
|
||||
<!-- Badly formed XML comment ignored for member "T:Speckle.Core.Serialisation.BaseObjectSerializer" -->
|
||||
@@ -2278,11 +2204,9 @@
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Transports.ITransport.GetObject(System.String)">
|
||||
<summary>
|
||||
Gets an object.
|
||||
</summary>
|
||||
<param name="id">The object's hash.</param>
|
||||
<returns></returns>
|
||||
<returns>The serialized object data, or <see langword="null"/> if the transport cannot find the object</returns>
|
||||
<exception cref="T:System.OperationCanceledException"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Transports.ITransport.CopyObjectAndChildren(System.String,Speckle.Core.Transports.ITransport,System.Action{System.Int32})">
|
||||
<summary>
|
||||
@@ -2296,7 +2220,7 @@
|
||||
<exception cref="T:System.ArgumentException">The provided arguments are not valid</exception>
|
||||
<exception cref="T:System.OperationCanceledException"></exception>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Transports.ITransport.HasObjects(System.Collections.Generic.List{System.String})">
|
||||
<member name="M:Speckle.Core.Transports.ITransport.HasObjects(System.Collections.Generic.IReadOnlyList{System.String})">
|
||||
<summary>
|
||||
Checks if objects are present in the transport
|
||||
</summary>
|
||||
@@ -2329,7 +2253,7 @@
|
||||
Callback when sending batches. Parameters: object count, total bytes sent
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Speckle.Core.Transports.SQLiteTransport.WriteTimer">
|
||||
<member name="F:Speckle.Core.Transports.SQLiteTransport._writeTimer">
|
||||
<summary>
|
||||
Timer that ensures queue is consumed if less than MAX_TRANSACTION_SIZE objects are being sent.
|
||||
</summary>
|
||||
@@ -2369,7 +2293,7 @@
|
||||
<summary>
|
||||
Adds an object to the saving queue.
|
||||
</summary>
|
||||
<param name="hash"></param>
|
||||
<param name="id"></param>
|
||||
<param name="serializedObject"></param>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Transports.SQLiteTransport.SaveObjectSync(System.String,System.String)">
|
||||
@@ -2383,7 +2307,7 @@
|
||||
<summary>
|
||||
Gets an object.
|
||||
</summary>
|
||||
<param name="hash"></param>
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Speckle.Core.Transports.Utilities.WaitUntil(System.Func{System.Boolean},System.Int32,System.Int32)">
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a85708f21043b0c458a3a77c0e09e4b8
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 1
|
||||
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:
|
||||
@@ -14,7 +14,7 @@ namespace Speckle.ConnectorUnity.NativeCache
|
||||
[ExecuteAlways]
|
||||
public abstract class AbstractNativeCache : ScriptableObject
|
||||
{
|
||||
protected bool isWriting = false;
|
||||
protected bool isWriting;
|
||||
public abstract bool TryGetObject<T>(
|
||||
Base speckleObject,
|
||||
[NotNullWhen(true)] out T? nativeObject
|
||||
|
||||
@@ -429,6 +429,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.DoubleNumerics/3.1.3": {
|
||||
"dependencies": {
|
||||
"NETStandard.Library": "2.0.3"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard1.3/System.DoubleNumerics.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "1.0.0.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"System.Memory/4.5.4": {
|
||||
"dependencies": {
|
||||
"System.Buffers": "4.5.1",
|
||||
@@ -848,6 +859,13 @@
|
||||
"path": "system.collections.immutable/5.0.0",
|
||||
"hashPath": "system.collections.immutable.5.0.0.nupkg.sha512"
|
||||
},
|
||||
"System.DoubleNumerics/3.1.3": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-KRKEM/L3KBodjA9VOg3EifFVWUY6EOqaMB05UvPEDm7Zeby/kZW+4kdWUEPzW6xtkwf46p661L9NrbeeQhtLzw==",
|
||||
"path": "system.doublenumerics/3.1.3",
|
||||
"hashPath": "system.doublenumerics.3.1.3.nupkg.sha512"
|
||||
},
|
||||
"System.Memory/4.5.4": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -180,6 +180,12 @@
|
||||
<param name="baseGeometries">A list of base classes to represent the direct shape (only mesh and brep are allowed, anything else will be ignored.)</param>
|
||||
<param name="parameters">Optional Parameters for this instance.</param>
|
||||
</member>
|
||||
<member name="T:Objects.BuiltElements.Revit.RevitFamilyCategory">
|
||||
<summary>
|
||||
FamilyDocuments can only be assigned these categories
|
||||
This is a subset of the list above which was manually retrieved from Revit's UI
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.Revit.FreeformElement.baseGeometry">
|
||||
<summary>
|
||||
DEPRECATED. Sets the geometry contained in the FreeformElement. This field has been deprecated in favor of `baseGeometries`
|
||||
@@ -353,6 +359,112 @@
|
||||
Retrieves the elements for this link
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Objects.BuiltElements.RebarGroup`1">
|
||||
<summary>
|
||||
A reinforcement bar group comprised of reinforcing bars of the same type and shape.
|
||||
</summary>
|
||||
<remarks>
|
||||
This class is not suitable for freeform rebar, which can have multiple shapes.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarGroup`1.shape">
|
||||
<summary>
|
||||
The shape of the rebar group
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarGroup`1.number">
|
||||
<summary>
|
||||
The number of rebars in the rebar group
|
||||
</summary>
|
||||
<remarks>
|
||||
Excluded end bars are not included in the count
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarGroup`1.hasFirstBar">
|
||||
<summary>
|
||||
Indicates if rebar set includes the first bar
|
||||
</summary>
|
||||
<remarks>
|
||||
Only applicable to stirrup (transverse) rebar
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarGroup`1.hasLastBar">
|
||||
<summary>
|
||||
Indicates if rebar set includes the last bar
|
||||
</summary>
|
||||
<remarks>
|
||||
Only applicable to stirrup (transverse) rebar
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarGroup`1.startHook">
|
||||
<summary>
|
||||
The start hook of bars in the rebar group
|
||||
</summary>
|
||||
<remarks>
|
||||
Null indicates no start hook
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarGroup`1.endHook">
|
||||
<summary>
|
||||
The end hook of bars in the rebar group
|
||||
</summary>
|
||||
<remarks>
|
||||
Null indicates no end hook
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarGroup`1.displayValue">
|
||||
<summary>
|
||||
The display representation of the rebar group as centerline curves
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarGroup`1.volume">
|
||||
<summary>
|
||||
The total volume of the rebar group.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Objects.BuiltElements.RebarShape">
|
||||
<summary>
|
||||
The shape describing the geometry and geometry parameters of a reinforcing bar
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarShape.name">
|
||||
<summary>
|
||||
The name of the rebar shape
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarShape.rebarType">
|
||||
<summary>
|
||||
The type of the rebar shape
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarShape.curves">
|
||||
<summary>
|
||||
The curves of the rebar shape
|
||||
</summary>
|
||||
<remarks>
|
||||
Typically suppresses hooks and bend radius
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarShape.barDiameter">
|
||||
<summary>
|
||||
The diameter of the rebar bar
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarHook.angle">
|
||||
<summary>
|
||||
The angle of the hook in radians.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarHook.length">
|
||||
<summary>
|
||||
The length of the hook.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Objects.BuiltElements.RebarHook.radius">
|
||||
<summary>
|
||||
The radius of the bend of the hook.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Objects.BuiltElements.Room.#ctor(System.String,System.String,Objects.BuiltElements.Level,Objects.Geometry.Point)">
|
||||
<summary>
|
||||
SchemaBuilder constructor for a Room
|
||||
@@ -2154,7 +2266,7 @@
|
||||
<param name="units"></param>
|
||||
<exception cref="T:Speckle.Core.Logging.SpeckleException"></exception>
|
||||
</member>
|
||||
<member name="M:Objects.Other.Transform.#ctor(System.Numerics.Matrix4x4,System.String)">
|
||||
<member name="M:Objects.Other.Transform.#ctor(System.DoubleNumerics.Matrix4x4,System.String)">
|
||||
<summary>
|
||||
Construct a transform from a 4x4 matrix and translation units
|
||||
</summary>
|
||||
@@ -2184,7 +2296,7 @@
|
||||
Units for translation
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Objects.Other.Transform.Decompose(System.Numerics.Vector3@,System.Numerics.Quaternion@,System.Numerics.Vector4@)">
|
||||
<member name="M:Objects.Other.Transform.Decompose(System.DoubleNumerics.Vector3@,System.DoubleNumerics.Quaternion@,System.DoubleNumerics.Vector4@)">
|
||||
<summary>
|
||||
Decomposes matrix into its scaling, rotation, and translation components
|
||||
</summary>
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using Speckle.Core.Api;
|
||||
using Speckle.Core.Credentials;
|
||||
using Speckle.Core.Logging;
|
||||
|
||||
namespace Speckle.ConnectorUnity
|
||||
{
|
||||
|
||||
+8
-4
@@ -9,8 +9,12 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection
|
||||
[Serializable]
|
||||
public sealed class BranchSelection : OptionSelection<Branch>
|
||||
{
|
||||
[field: SerializeField, Range(1, 100), Tooltip("Number of branches to request")]
|
||||
public int BranchesLimit { get; set; } = 100;
|
||||
[field:
|
||||
SerializeField,
|
||||
Range(1, ServerLimits.BRANCH_GET_LIMIT),
|
||||
Tooltip("Number of branches to request")
|
||||
]
|
||||
public int BranchesLimit { get; set; } = ServerLimits.OLD_BRANCH_GET_LIMIT;
|
||||
|
||||
[field: SerializeField, Range(1, 100), Tooltip("Number of commits to request")]
|
||||
public int CommitsLimit { get; set; } = 25;
|
||||
@@ -30,14 +34,14 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection
|
||||
StreamSelection.OnSelectionChange = RefreshOptions;
|
||||
}
|
||||
|
||||
protected override string? KeyFunction(Branch? value) => value?.name;
|
||||
protected override string? KeyFunction(Branch? value) => value?.id;
|
||||
|
||||
public override void RefreshOptions()
|
||||
{
|
||||
Stream? stream = StreamSelection.Selected;
|
||||
if (stream == null)
|
||||
return;
|
||||
IList<Branch> branches;
|
||||
IReadOnlyList<Branch> branches;
|
||||
try
|
||||
{
|
||||
branches = Client!
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection
|
||||
|
||||
public override void RefreshOptions()
|
||||
{
|
||||
Branch? branch = BranchSelection!.Selected;
|
||||
Branch? branch = BranchSelection.Selected;
|
||||
if (branch == null)
|
||||
return;
|
||||
List<Commit> commits = branch.commits.items;
|
||||
|
||||
+44
-32
@@ -10,7 +10,7 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection
|
||||
/// <summary>
|
||||
/// Reusable <see langword="abstract"/> serializable type that abstracts
|
||||
/// the fetching of <typeparamref name="TOption"/> objects.
|
||||
/// And exposes an <see cref="Array"/> of <see cref="Options"/>
|
||||
/// And exposes an list of <see cref="Options"/>
|
||||
/// with serialised selection.
|
||||
/// </summary>
|
||||
/// <typeparam name="TOption"></typeparam>
|
||||
@@ -18,32 +18,42 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection
|
||||
public abstract class OptionSelection<TOption>
|
||||
where TOption : class
|
||||
{
|
||||
[SerializeField]
|
||||
private int selectedIndex = -1;
|
||||
public IReadOnlyList<TOption> Options { get; protected set; } = Array.Empty<TOption>();
|
||||
|
||||
public int SelectedIndex
|
||||
{
|
||||
get => selectedIndex;
|
||||
set
|
||||
{
|
||||
selectedIndex = value;
|
||||
OnSelectionChange?.Invoke();
|
||||
}
|
||||
}
|
||||
private Dictionary<string, int>? _indexMap;
|
||||
|
||||
[SerializeField]
|
||||
private string? selectedId;
|
||||
|
||||
public TOption? Selected
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Options is null)
|
||||
if (selectedId == null)
|
||||
return null;
|
||||
if (SelectedIndex < 0 || SelectedIndex >= Options.Length)
|
||||
return null;
|
||||
return Options[SelectedIndex];
|
||||
|
||||
TryGetOption(selectedId, out var value);
|
||||
return value;
|
||||
}
|
||||
set
|
||||
{
|
||||
selectedId = KeyFunction(value);
|
||||
OnSelectionChange?.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
public TOption[] Options { get; protected set; } = Array.Empty<TOption>();
|
||||
public bool TryGetOption(string key, [NotNullWhen(true)] out TOption? value)
|
||||
{
|
||||
if (_indexMap is not null && _indexMap.TryGetValue(key, out int index))
|
||||
{
|
||||
value = Options[index];
|
||||
return true;
|
||||
}
|
||||
|
||||
value = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public Action? OnSelectionChange { get; set; }
|
||||
|
||||
public abstract Client? Client { get; }
|
||||
@@ -53,36 +63,38 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection
|
||||
|
||||
public abstract void RefreshOptions();
|
||||
|
||||
protected void GenerateOptions(IList<TOption> source, Func<TOption, int, bool> isDefault)
|
||||
protected void GenerateOptions(
|
||||
IReadOnlyCollection<TOption?> source,
|
||||
Func<TOption, int, bool> isDefault
|
||||
)
|
||||
{
|
||||
List<TOption> optionsToAdd = new(source.Count);
|
||||
int defaultOption = -1;
|
||||
Dictionary<string, int> indexMap = new(source.Count);
|
||||
string? defaultOption = null;
|
||||
int index = 0;
|
||||
foreach (TOption? a in source)
|
||||
{
|
||||
if (a == null)
|
||||
continue;
|
||||
|
||||
var key = KeyFunction(a);
|
||||
optionsToAdd.Add(a);
|
||||
indexMap.Add(key, index);
|
||||
|
||||
if (isDefault(a, index))
|
||||
defaultOption = index;
|
||||
defaultOption = key;
|
||||
|
||||
index++;
|
||||
}
|
||||
|
||||
TOption? currentSelected = Selected;
|
||||
bool selectionOutOfRange = SelectedIndex < 0 || SelectedIndex >= optionsToAdd.Count;
|
||||
if (
|
||||
selectionOutOfRange
|
||||
|| (
|
||||
currentSelected != null
|
||||
&& KeyFunction(currentSelected) != KeyFunction(optionsToAdd[SelectedIndex])
|
||||
)
|
||||
)
|
||||
string? currentSelected = KeyFunction(Selected);
|
||||
if (currentSelected is null || !indexMap.ContainsKey(currentSelected))
|
||||
{
|
||||
selectedIndex = defaultOption;
|
||||
selectedId = defaultOption;
|
||||
}
|
||||
|
||||
Options = optionsToAdd.ToArray();
|
||||
//Debug.Log($"{this.GetType()} updated");
|
||||
Options = optionsToAdd;
|
||||
_indexMap = indexMap;
|
||||
OnSelectionChange?.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ namespace Speckle.ConnectorUnity.Wrappers.Selection
|
||||
{
|
||||
if (Client == null)
|
||||
return;
|
||||
IList<Stream> streams;
|
||||
IReadOnlyList<Stream> streams;
|
||||
try
|
||||
{
|
||||
streams = Client.StreamsGet(StreamsLimit).GetAwaiter().GetResult();
|
||||
|
||||
@@ -5,7 +5,6 @@ using System.Collections.Specialized;
|
||||
using Speckle.Core.Api;
|
||||
using Speckle.Core.Models;
|
||||
using Speckle.Core.Serialisation;
|
||||
using Speckle.Newtonsoft.Json;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Speckle.ConnectorUnity.Wrappers
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "systems.speckle.speckle-unity",
|
||||
"version": "2.15.3",
|
||||
"version": "2.17.0-rc",
|
||||
"displayName": "Speckle Unity Connector",
|
||||
"description": "AEC Interoperability for Unity through Speckle",
|
||||
"unity": "2021.1",
|
||||
@@ -21,4 +21,4 @@
|
||||
"email": "hello@speckle.systems",
|
||||
"url": "https://speckle.systems"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user