|
|
@@ -72,11 +72,16 @@ namespace SharpGLTF.Scenes
|
|
|
}
|
|
|
|
|
|
public InstanceBuilder AddRigidMesh(MESHBUILDER mesh, Matrix4x4 meshWorldMatrix)
|
|
|
+ {
|
|
|
+ return AddRigidMesh(mesh, null, meshWorldMatrix);
|
|
|
+ }
|
|
|
+
|
|
|
+ public InstanceBuilder AddRigidMesh(MESHBUILDER mesh, String name, Matrix4x4 meshWorldMatrix)
|
|
|
{
|
|
|
Guard.NotNull(mesh, nameof(mesh));
|
|
|
|
|
|
var instance = new InstanceBuilder(this);
|
|
|
- instance.Content = new FixedTransformer(mesh, meshWorldMatrix);
|
|
|
+ instance.Content = new FixedTransformer(mesh, meshWorldMatrix, name);
|
|
|
|
|
|
_Instances.Add(instance);
|
|
|
|
|
|
@@ -97,12 +102,17 @@ namespace SharpGLTF.Scenes
|
|
|
}
|
|
|
|
|
|
public InstanceBuilder AddSkinnedMesh(MESHBUILDER mesh, Matrix4x4 meshWorldMatrix, params NodeBuilder[] joints)
|
|
|
+ {
|
|
|
+ return AddSkinnedMesh(mesh, null, meshWorldMatrix, joints);
|
|
|
+ }
|
|
|
+
|
|
|
+ public InstanceBuilder AddSkinnedMesh(MESHBUILDER mesh, String name, Matrix4x4 meshWorldMatrix, params NodeBuilder[] joints)
|
|
|
{
|
|
|
Guard.NotNull(mesh, nameof(mesh));
|
|
|
GuardAll.NotNull(joints, nameof(joints));
|
|
|
|
|
|
var instance = new InstanceBuilder(this);
|
|
|
- instance.Content = new SkinnedTransformer(mesh, meshWorldMatrix, joints);
|
|
|
+ instance.Content = new SkinnedTransformer(mesh, meshWorldMatrix, joints, name);
|
|
|
|
|
|
_Instances.Add(instance);
|
|
|
|
|
|
@@ -110,12 +120,17 @@ namespace SharpGLTF.Scenes
|
|
|
}
|
|
|
|
|
|
public InstanceBuilder AddSkinnedMesh(MESHBUILDER mesh, params (NodeBuilder Joint, Matrix4x4 InverseBindMatrix)[] joints)
|
|
|
+ {
|
|
|
+ return AddSkinnedMesh(mesh, null, joints);
|
|
|
+ }
|
|
|
+
|
|
|
+ public InstanceBuilder AddSkinnedMesh(MESHBUILDER mesh, String name, params (NodeBuilder Joint, Matrix4x4 InverseBindMatrix)[] joints)
|
|
|
{
|
|
|
Guard.NotNull(mesh, nameof(mesh));
|
|
|
GuardAll.NotNull(joints.Select(item => item.Joint), nameof(joints));
|
|
|
|
|
|
var instance = new InstanceBuilder(this);
|
|
|
- instance.Content = new SkinnedTransformer(mesh, joints);
|
|
|
+ instance.Content = new SkinnedTransformer(mesh, joints, name);
|
|
|
|
|
|
_Instances.Add(instance);
|
|
|
|
|
|
@@ -135,33 +150,48 @@ namespace SharpGLTF.Scenes
|
|
|
}
|
|
|
|
|
|
public InstanceBuilder AddCamera(CameraBuilder camera, Vector3 cameraPosition, Vector3 targetPosition)
|
|
|
+ {
|
|
|
+ return AddCamera(camera, null, cameraPosition, targetPosition);
|
|
|
+ }
|
|
|
+
|
|
|
+ public InstanceBuilder AddCamera(CameraBuilder camera, String name, Vector3 cameraPosition, Vector3 targetPosition)
|
|
|
{
|
|
|
Guard.NotNull(camera, nameof(camera));
|
|
|
Guard.IsTrue(cameraPosition._IsFinite(), nameof(cameraPosition));
|
|
|
Guard.IsTrue(targetPosition._IsFinite(), nameof(targetPosition));
|
|
|
|
|
|
var xform = Matrix4x4.CreateWorld(cameraPosition, Vector3.Normalize(targetPosition - cameraPosition), Vector3.UnitY);
|
|
|
- return AddCamera(camera, xform);
|
|
|
+ return AddCamera(camera, name, xform);
|
|
|
}
|
|
|
|
|
|
public InstanceBuilder AddCamera(CameraBuilder camera, Matrix4x4 cameraWorldMatrix)
|
|
|
+ {
|
|
|
+ return AddCamera(camera, null, cameraWorldMatrix);
|
|
|
+ }
|
|
|
+
|
|
|
+ public InstanceBuilder AddCamera(CameraBuilder camera, String name, Matrix4x4 cameraWorldMatrix)
|
|
|
{
|
|
|
Guard.NotNull(camera, nameof(camera));
|
|
|
|
|
|
var content = new CameraContent(camera);
|
|
|
var instance = new InstanceBuilder(this);
|
|
|
- instance.Content = new FixedTransformer(content, cameraWorldMatrix);
|
|
|
+ instance.Content = new FixedTransformer(content, cameraWorldMatrix, name);
|
|
|
_Instances.Add(instance);
|
|
|
return instance;
|
|
|
}
|
|
|
|
|
|
public InstanceBuilder AddLight(LightBuilder light, Matrix4x4 lightWorldMatrix)
|
|
|
+ {
|
|
|
+ return AddLight(light, null, lightWorldMatrix);
|
|
|
+ }
|
|
|
+
|
|
|
+ public InstanceBuilder AddLight(LightBuilder light, String name, Matrix4x4 lightWorldMatrix)
|
|
|
{
|
|
|
Guard.NotNull(light, nameof(light));
|
|
|
|
|
|
var content = new LightContent(light);
|
|
|
var instance = new InstanceBuilder(this);
|
|
|
- instance.Content = new FixedTransformer(content, lightWorldMatrix);
|
|
|
+ instance.Content = new FixedTransformer(content, lightWorldMatrix, name);
|
|
|
_Instances.Add(instance);
|
|
|
return instance;
|
|
|
}
|