mirror of
https://github.com/Gericom/EveryFileExplorer.git
synced 2025-06-18 17:05:33 -04:00
136 lines
2.8 KiB
C#
136 lines
2.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.IO;
|
|
|
|
namespace CommonFiles.Maya
|
|
{
|
|
public class MayaASCIIWriter
|
|
{
|
|
private StringWriter mWriter;
|
|
|
|
public MayaASCIIWriter()
|
|
{
|
|
mWriter = new StringWriter();
|
|
WriteComment("Maya ASCII 3.0 scene");
|
|
WriteComment("Created by Every File Explorer");
|
|
mWriter.WriteLine();
|
|
BeginStatement("requires");
|
|
{
|
|
WriteArgument("maya", "\"3.0\"");
|
|
}
|
|
EndStatement();
|
|
BeginStatement("currentUnit");
|
|
{
|
|
WriteArgument("-l", "centimeter");
|
|
WriteArgument("-a", "degree");
|
|
WriteArgument("-t", "film");
|
|
}
|
|
EndStatement();
|
|
}
|
|
|
|
public void WriteComment(String comment)
|
|
{
|
|
mWriter.WriteLine("//" + comment);
|
|
}
|
|
|
|
public void BeginStatement(String keyword)
|
|
{
|
|
mWriter.Write(keyword);
|
|
}
|
|
|
|
public void WriteArgument(int val)
|
|
{
|
|
WriteArgument(val.ToString());
|
|
}
|
|
|
|
public void WriteArgument(float val)
|
|
{
|
|
WriteArgument(val.ToString().Replace(",", "."));
|
|
}
|
|
|
|
public void WriteArgument(String arg)
|
|
{
|
|
mWriter.Write(" " + arg);
|
|
}
|
|
|
|
public void WriteArgument(String arg, int val)
|
|
{
|
|
WriteArgument(arg, val.ToString());
|
|
}
|
|
|
|
public void WriteArgument(String arg, float val)
|
|
{
|
|
WriteArgument(arg, val.ToString().Replace(",", "."));
|
|
}
|
|
|
|
public void WriteArgument(String arg, String val)
|
|
{
|
|
mWriter.Write(" " + arg + " " + val);
|
|
}
|
|
|
|
public void EndStatement()
|
|
{
|
|
mWriter.WriteLine(";");
|
|
}
|
|
|
|
public void CreateNode(String Type, String Name)
|
|
{
|
|
CreateNode(Type, Name, null, false, false);
|
|
}
|
|
|
|
public void CreateNode(String Type, String Name, bool Shared)
|
|
{
|
|
CreateNode(Type, Name, null, Shared, false);
|
|
}
|
|
|
|
public void CreateNode(String Type, String Name, String Parent)
|
|
{
|
|
CreateNode(Type, Name, Parent, false, false);
|
|
}
|
|
|
|
public void CreateNode(String Type, String Name, String Parent, bool Shared)
|
|
{
|
|
CreateNode(Type, Name, Parent, Shared, false);
|
|
}
|
|
|
|
public void CreateNode(String Type, String Name, String Parent, bool Shared, bool SkipSelect)
|
|
{
|
|
BeginStatement("createNode");
|
|
{
|
|
WriteArgument(Type);
|
|
WriteArgument("-n", "\"" + Name + "\"");
|
|
if (Parent != null) WriteArgument("-p", "\"" + Parent + "\"");
|
|
if (Shared) WriteArgument("-s");
|
|
if (SkipSelect) WriteArgument("-ss");
|
|
}
|
|
EndStatement();
|
|
}
|
|
|
|
public void ConnectAttribute(String FirstNode, String SecondNode)
|
|
{
|
|
ConnectAttribute(FirstNode, SecondNode, false);
|
|
}
|
|
|
|
public void ConnectAttribute(String FirstNode, String SecondNode, bool NextAvailable)
|
|
{
|
|
BeginStatement("connectAttr");
|
|
{
|
|
WriteArgument("\"" + FirstNode + "\"");
|
|
WriteArgument("\"" + SecondNode + "\"");
|
|
if (NextAvailable) WriteArgument("-na");
|
|
}
|
|
EndStatement();
|
|
}
|
|
|
|
public String Close()
|
|
{
|
|
mWriter.Flush();
|
|
String result = mWriter.ToString();
|
|
mWriter.Close();
|
|
return result;
|
|
}
|
|
}
|
|
}
|