-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathCyclesMesh.cs
67 lines (60 loc) · 1.87 KB
/
CyclesMesh.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
Copyright 2014-2024 Robert McNeel and Associates
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
**/
using System;
using System.Collections.Generic;
namespace RhinoCyclesCore
{
/// <summary>
/// Simple wrapper object to hold mesh related data to be pushed to Cycles.
/// </summary>
public class CyclesMesh
{
/// <summary>
/// Mesh Guid and mesh index
/// </summary>
public Tuple<Guid, int> MeshId { get; set; }
/// <summary>
/// Material renderhash
/// </summary>
public uint MatId { get; set; }
/// <summary>
/// float array with vertex data. Stride 3.
/// </summary>
public float[] Verts { get; set; }
/// <summary>
/// int array with face indices. Indices are into Verts
/// </summary>
public int[] Faces { get; set; }
/// <summary>
/// List of tuples of channel indices and float arrays with UV coordinates. Stride 2.
/// </summary>
public List<Tuple<int, float[]>> Uvs { get; set; }
/// <summary>
/// Float array with vertex normal data. Stride 3.
/// </summary>
public float[] VertexNormals { get; set; }
/// <summary>
/// Float array with vertex color data or null. Stride 3.
/// </summary>
public float[] VertexColors { get; set; }
public ccl.Transform OcsFrame { get; set; } = ccl.Transform.Identity();
public void Clear()
{
this.Verts = null;
this.Faces = null;
this.Uvs = null;
this.VertexNormals = null;
this.VertexColors = null;
}
}
}