├── .gitignore
├── ManagedFbx.Samples
├── FbxForm.Designer.cs
├── FbxForm.cs
├── FbxForm.resx
├── ManagedFbx.Samples.csproj
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
└── app.config
├── ManagedFbx.sln
├── ManagedFbx
├── AssemblyInfo.cpp
├── ConversionTypes.h
├── FbxException.h
├── Light.cpp
├── Light.h
├── ManagedFbx.vcxproj
├── ManagedFbx.vcxproj.filters
├── Manager.cpp
├── Manager.h
├── Mesh.cpp
├── Mesh.h
├── NativeString.h
├── NodeAttribute.cpp
├── NodeAttribute.h
├── Polygon.cpp
├── Polygon.h
├── Properties.h
├── Scene.cpp
├── Scene.h
├── SceneNode.cpp
├── SceneNode.h
├── Vector.h
├── stdafx.cpp
└── stdafx.h
├── licence.md
└── readme.md
/.gitignore:
--------------------------------------------------------------------------------
1 | #ignore thumbnails created by windows
2 | Thumbs.db
3 | #Ignore files build by Visual Studio
4 | *.obj
5 | *.exe
6 | *.pdb
7 | *.user
8 | *.aps
9 | *.pch
10 | *.vspscc
11 | *_i.c
12 | *_p.c
13 | *.ncb
14 | *.suo
15 | *.tlb
16 | *.tlh
17 | *.bak
18 | *.cache
19 | *.ilk
20 | *.log
21 | [Bb]in
22 | [Dd]ebug*/
23 | *.lib
24 | *.sbr
25 | obj/
26 | [Rr]elease*/
27 | _ReSharper*/
28 | [Tt]est[Rr]esult*
29 | Build/
--------------------------------------------------------------------------------
/ManagedFbx.Samples/FbxForm.Designer.cs:
--------------------------------------------------------------------------------
1 | partial class FbxForm
2 | {
3 | ///
4 | /// Required designer variable.
5 | ///
6 | private System.ComponentModel.IContainer components = null;
7 |
8 | ///
9 | /// Clean up any resources being used.
10 | ///
11 | /// true if managed resources should be disposed; otherwise, false.
12 | protected override void Dispose(bool disposing)
13 | {
14 | if(disposing && (components != null))
15 | {
16 | components.Dispose();
17 | }
18 | base.Dispose(disposing);
19 | }
20 |
21 | #region Windows Form Designer generated code
22 |
23 | ///
24 | /// Required method for Designer support - do not modify
25 | /// the contents of this method with the code editor.
26 | ///
27 | private void InitializeComponent()
28 | {
29 | this.uxFbxTree = new System.Windows.Forms.TreeView();
30 | this.uxNodeInfo = new System.Windows.Forms.TextBox();
31 | this.menuStrip1 = new System.Windows.Forms.MenuStrip();
32 | this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
33 | this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
34 | this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
35 | this.menuStrip1.SuspendLayout();
36 | this.SuspendLayout();
37 | //
38 | // uxFbxTree
39 | //
40 | this.uxFbxTree.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
41 | | System.Windows.Forms.AnchorStyles.Left)));
42 | this.uxFbxTree.Location = new System.Drawing.Point(12, 27);
43 | this.uxFbxTree.Name = "uxFbxTree";
44 | this.uxFbxTree.Size = new System.Drawing.Size(285, 427);
45 | this.uxFbxTree.TabIndex = 0;
46 | this.uxFbxTree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.OnTreeSelect);
47 | //
48 | // uxNodeInfo
49 | //
50 | this.uxNodeInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
51 | | System.Windows.Forms.AnchorStyles.Left)
52 | | System.Windows.Forms.AnchorStyles.Right)));
53 | this.uxNodeInfo.Location = new System.Drawing.Point(303, 27);
54 | this.uxNodeInfo.Multiline = true;
55 | this.uxNodeInfo.Name = "uxNodeInfo";
56 | this.uxNodeInfo.ReadOnly = true;
57 | this.uxNodeInfo.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
58 | this.uxNodeInfo.Size = new System.Drawing.Size(484, 427);
59 | this.uxNodeInfo.TabIndex = 3;
60 | this.uxNodeInfo.WordWrap = false;
61 | //
62 | // menuStrip1
63 | //
64 | this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
65 | this.fileToolStripMenuItem});
66 | this.menuStrip1.Location = new System.Drawing.Point(0, 0);
67 | this.menuStrip1.Name = "menuStrip1";
68 | this.menuStrip1.Size = new System.Drawing.Size(799, 24);
69 | this.menuStrip1.TabIndex = 4;
70 | this.menuStrip1.Text = "menuStrip1";
71 | //
72 | // fileToolStripMenuItem
73 | //
74 | this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
75 | this.openToolStripMenuItem,
76 | this.saveToolStripMenuItem});
77 | this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
78 | this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
79 | this.fileToolStripMenuItem.Text = "File";
80 | //
81 | // openToolStripMenuItem
82 | //
83 | this.openToolStripMenuItem.Name = "openToolStripMenuItem";
84 | this.openToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
85 | this.openToolStripMenuItem.Text = "Open";
86 | this.openToolStripMenuItem.Click += new System.EventHandler(this.LoadFile);
87 | //
88 | // saveToolStripMenuItem
89 | //
90 | this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
91 | this.saveToolStripMenuItem.Size = new System.Drawing.Size(103, 22);
92 | this.saveToolStripMenuItem.Text = "Save";
93 | this.saveToolStripMenuItem.Click += new System.EventHandler(this.SaveFile);
94 | //
95 | // FbxForm
96 | //
97 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
98 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
99 | this.ClientSize = new System.Drawing.Size(799, 466);
100 | this.Controls.Add(this.uxNodeInfo);
101 | this.Controls.Add(this.uxFbxTree);
102 | this.Controls.Add(this.menuStrip1);
103 | this.MainMenuStrip = this.menuStrip1;
104 | this.Name = "FbxForm";
105 | this.Text = "FbxForm";
106 | this.menuStrip1.ResumeLayout(false);
107 | this.menuStrip1.PerformLayout();
108 | this.ResumeLayout(false);
109 | this.PerformLayout();
110 |
111 | }
112 |
113 | #endregion
114 |
115 | private System.Windows.Forms.TreeView uxFbxTree;
116 | private System.Windows.Forms.TextBox uxNodeInfo;
117 | private System.Windows.Forms.MenuStrip menuStrip1;
118 | private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
119 | private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem;
120 | private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
121 |
122 | }
--------------------------------------------------------------------------------
/ManagedFbx.Samples/FbxForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Linq;
3 | using System.Text;
4 | using System.Windows.Forms;
5 | using ManagedFbx;
6 |
7 | public partial class FbxForm : Form
8 | {
9 | public FbxForm()
10 | {
11 | InitializeComponent();
12 | SetTitle("Untitled");
13 | }
14 |
15 | public void Add(SceneNode node, TreeNode parentNode)
16 | {
17 | var item = new TreeNode(node.Name) { Tag = node };
18 |
19 | if(parentNode == null)
20 | uxFbxTree.Nodes.Add(item);
21 | else
22 | parentNode.Nodes.Add(item);
23 |
24 | foreach(var sub in node.ChildNodes)
25 | {
26 | var subitem = new TreeNode(sub.Name) { Tag = sub };
27 | Add(sub, item);
28 | }
29 | }
30 |
31 | private void OnTreeSelect(object sender, TreeViewEventArgs e)
32 | {
33 | var node = e.Node.Tag as SceneNode;
34 |
35 | if(node == null)
36 | return;
37 |
38 | var builder = new StringBuilder();
39 |
40 | Action NewLine = () => builder.Append(Environment.NewLine);
41 |
42 | builder.Append("Position:\t{0}", node.Position);
43 | builder.Append("Rotation:\t{0}", node.Rotation);
44 | builder.Append("Scale:\t{0}", node.Scale);
45 |
46 | NewLine();
47 |
48 | builder.Append("Found {0} attribute(s)", node.Attributes.Count());
49 |
50 | foreach(var attr in node.Attributes)
51 | {
52 | NewLine();
53 | builder.Append("Attribute type: {0}", attr.Type.ToString());
54 |
55 | switch(attr.Type)
56 | {
57 | case NodeAttributeType.Mesh:
58 | {
59 | var mesh = node.Mesh;
60 |
61 | if(!mesh.Triangulated)
62 | {
63 | builder.Append("Quads/ngons found in list of total {0} polygons, triangulating", mesh.Polygons.Length);
64 | NewLine();
65 | mesh = mesh.Triangulate();
66 | }
67 |
68 | builder.Append("Found {0} triangles", mesh.Polygons.Length);
69 | NewLine();
70 |
71 | for(var i = 0; i < mesh.Polygons.Length; i++)
72 | {
73 | var str = string.Empty;
74 | foreach(var index in mesh.Polygons[i].Indices)
75 | str += "\t" + index;
76 |
77 | builder.Append("{0}:{1}\t(UVs: {2}, {3}, {4}, Mat ID: {5})", i, str, mesh.GetUVIndex(i, 0), mesh.GetUVIndex(i, 1), mesh.GetUVIndex(i, 2), mesh.GetMaterialId(i));
78 | }
79 |
80 | NewLine();
81 | builder.Append("Found {0} vertices", mesh.Vertices.Length);
82 | NewLine();
83 |
84 | for(var i = 0; i < mesh.Vertices.Length; i++)
85 | {
86 | var vertex = mesh.Vertices[i];
87 | builder.Append("{0}:\t{1}\t{2}\t{3}", i, Math.Round(vertex.X, 2), Math.Round(vertex.Y, 2), Math.Round(vertex.Z, 2));
88 | }
89 |
90 | NewLine();
91 | builder.Append("Found {0} vertex normals", mesh.Normals.Length);
92 | NewLine();
93 |
94 | for(var i = 0; i < mesh.Normals.Length; i++)
95 | {
96 | var normal = mesh.Normals[i];
97 | builder.Append("{0}:\t{1}\t{2}\t{3}", i, Math.Round(normal.X, 2), Math.Round(normal.Y, 2), Math.Round(normal.Z, 2));
98 | }
99 |
100 | NewLine();
101 | builder.Append("Found {0} UV coords", mesh.TextureCoords.Length);
102 | NewLine();
103 |
104 | for(var i = 0; i < mesh.TextureCoords.Length; i++)
105 | {
106 | var coord = mesh.TextureCoords[i];
107 | builder.Append("{0}:\t{1}\t{2}", i, Math.Round(coord.X, 2), Math.Round(coord.Y, 2));
108 | }
109 |
110 | NewLine();
111 | builder.Append("Found {0} vertex colours", mesh.VertexColours.Length);
112 | NewLine();
113 |
114 | for(var i = 0; i < mesh.VertexColours.Length; i++)
115 | {
116 | var colour = mesh.VertexColours[i];
117 | builder.Append("{0}:\t{1}\t{2}\t{3}\t{4}", i, Math.Round(colour.R, 2), Math.Round(colour.G, 2), Math.Round(colour.B, 2), Math.Round(colour.A, 2));
118 | }
119 |
120 | NewLine();
121 | builder.Append("Found {0} material IDs", mesh.MaterialIDs.Length);
122 | NewLine();
123 |
124 | for(var i = 0; i < mesh.MaterialIDs.Length; i++)
125 | {
126 | var id = mesh.MaterialIDs[i];
127 | builder.Append("{0}:\t{1}", i.ToString(), id.ToString());
128 | }
129 | }
130 | break;
131 |
132 | case NodeAttributeType.Light:
133 | {
134 | var light = node.Light;
135 | builder.Append("Found light of type {0}", light.Type);
136 | builder.Append("Colour is {0}", light.Colour);
137 | }
138 | break;
139 | }
140 | }
141 |
142 | uxNodeInfo.Text = builder.ToString();
143 | }
144 |
145 | private void LoadFile(object sender, EventArgs e)
146 | {
147 | var dialog = new OpenFileDialog();
148 | dialog.Filter = "FBX files (*.fbx)|*.fbx";
149 |
150 | if(dialog.ShowDialog() == DialogResult.OK)
151 | {
152 | var scenePath = dialog.FileName;
153 | m_scene = Scene.Import(scenePath);
154 | uxFbxTree.Nodes.Clear();
155 | Add(m_scene.RootNode, null);
156 | SetTitle(scenePath);
157 | }
158 | }
159 |
160 | private void SaveFile(object sender, EventArgs e)
161 | {
162 | var dialog = new SaveFileDialog();
163 | dialog.Filter = "FBX file (*.fbx)|*.fbx";
164 |
165 | if(dialog.ShowDialog() == DialogResult.OK)
166 | {
167 | var filePath = dialog.FileName;
168 | m_scene.Save(filePath);
169 | }
170 | }
171 |
172 | private void SetTitle(string filename)
173 | {
174 | Text = "FBX Viewer - " + filename;
175 | }
176 |
177 | private Scene m_scene;
178 | }
179 |
180 | public static class StringBuilderExtensions
181 | {
182 | public static void Append(this StringBuilder builder, string format, params object[] args)
183 | {
184 | builder.AppendLine(string.Format(format, args));
185 | }
186 | }
--------------------------------------------------------------------------------
/ManagedFbx.Samples/FbxForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/ManagedFbx.Samples/ManagedFbx.Samples.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}
8 | WinExe
9 | Properties
10 | ManagedFbx.Samples
11 | ManagedFbx.Samples
12 | v4.0
13 | 512
14 |
15 |
16 |
17 | AnyCPU
18 | true
19 | full
20 | false
21 | bin\Debug\
22 | DEBUG;TRACE
23 | prompt
24 | 4
25 | false
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 | false
36 |
37 |
38 | true
39 | ..\Build\
40 | DEBUG;TRACE
41 | full
42 | x86
43 | prompt
44 | MinimumRecommendedRules.ruleset
45 |
46 |
47 | ..\Build\
48 | TRACE
49 | true
50 | pdbonly
51 | x86
52 | prompt
53 | MinimumRecommendedRules.ruleset
54 | false
55 |
56 |
57 | Program
58 |
59 |
60 |
61 | ..\Build\ManagedFbx.dll
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | Form
75 |
76 |
77 | FbxForm.cs
78 |
79 |
80 |
81 |
82 |
83 |
84 | FbxForm.cs
85 |
86 |
87 |
88 |
89 |
90 |
91 |
98 |
--------------------------------------------------------------------------------
/ManagedFbx.Samples/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 | using ManagedFbx;
4 |
5 | public class Program
6 | {
7 | [STAThread]
8 | public static void Main()
9 | {
10 | Application.EnableVisualStyles();
11 | Application.Run(new FbxForm());
12 | }
13 | }
--------------------------------------------------------------------------------
/ManagedFbx.Samples/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Managed")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("Managed")]
13 | [assembly: AssemblyCopyright("Copyright © 2012")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("e43b02f2-c8e6-4d25-ad63-b4a812fe2bec")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/ManagedFbx.Samples/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/ManagedFbx.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ManagedFbx", "ManagedFbx\ManagedFbx.vcxproj", "{163D9B5E-1A69-4821-89DE-298736F2C14E}"
5 | EndProject
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ManagedFbx.Samples", "ManagedFbx.Samples\ManagedFbx.Samples.csproj", "{78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}"
7 | ProjectSection(ProjectDependencies) = postProject
8 | {163D9B5E-1A69-4821-89DE-298736F2C14E} = {163D9B5E-1A69-4821-89DE-298736F2C14E}
9 | EndProjectSection
10 | EndProject
11 | Global
12 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
13 | Debug|Any CPU = Debug|Any CPU
14 | Debug|Mixed Platforms = Debug|Mixed Platforms
15 | Debug|Win32 = Debug|Win32
16 | Debug|x86 = Debug|x86
17 | Release|Any CPU = Release|Any CPU
18 | Release|Mixed Platforms = Release|Mixed Platforms
19 | Release|Win32 = Release|Win32
20 | Release|x86 = Release|x86
21 | EndGlobalSection
22 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
23 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Debug|Any CPU.ActiveCfg = Debug|Win32
24 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
25 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Debug|Mixed Platforms.Build.0 = Debug|Win32
26 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Debug|Win32.ActiveCfg = Debug|Win32
27 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Debug|Win32.Build.0 = Debug|Win32
28 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Debug|x86.ActiveCfg = Debug|Win32
29 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Debug|x86.Build.0 = Debug|Win32
30 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Release|Any CPU.ActiveCfg = Release|Win32
31 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Release|Mixed Platforms.ActiveCfg = Release|Win32
32 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Release|Mixed Platforms.Build.0 = Release|Win32
33 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Release|Win32.ActiveCfg = Release|Win32
34 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Release|Win32.Build.0 = Release|Win32
35 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Release|x86.ActiveCfg = Release|Win32
36 | {163D9B5E-1A69-4821-89DE-298736F2C14E}.Release|x86.Build.0 = Release|Win32
37 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
38 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Debug|Any CPU.Build.0 = Debug|Any CPU
39 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
40 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Debug|Mixed Platforms.Build.0 = Debug|x86
41 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Debug|Win32.ActiveCfg = Debug|x86
42 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Debug|Win32.Build.0 = Debug|x86
43 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Debug|x86.ActiveCfg = Debug|x86
44 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Debug|x86.Build.0 = Debug|x86
45 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Release|Any CPU.ActiveCfg = Release|Any CPU
46 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Release|Any CPU.Build.0 = Release|Any CPU
47 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Release|Mixed Platforms.ActiveCfg = Release|x86
48 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Release|Mixed Platforms.Build.0 = Release|x86
49 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Release|Win32.ActiveCfg = Release|x86
50 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Release|Win32.Build.0 = Release|x86
51 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Release|x86.ActiveCfg = Release|x86
52 | {78BA3050-B035-46F5-AAC2-4B9B8A3CFDDC}.Release|x86.Build.0 = Release|x86
53 | EndGlobalSection
54 | GlobalSection(SolutionProperties) = preSolution
55 | HideSolutionNode = FALSE
56 | EndGlobalSection
57 | EndGlobal
58 |
--------------------------------------------------------------------------------
/ManagedFbx/AssemblyInfo.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | using namespace System;
3 |
4 | [assembly: CLSCompliant(true)];
--------------------------------------------------------------------------------
/ManagedFbx/ConversionTypes.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | namespace ManagedFbx
4 | {
5 | public enum class Unit
6 | {
7 | Metres,
8 | Centimetres
9 | };
10 |
11 | public enum class AxisSystem
12 | {
13 | Max,
14 | MayaYUp,
15 | MayaZUp
16 | };
17 | }
--------------------------------------------------------------------------------
/ManagedFbx/FbxException.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | namespace ManagedFbx
4 | {
5 | public ref class FbxException : public System::Exception
6 | {
7 | public:
8 | FbxException(System::String ^message, ...array