本文整理汇总了C#中Operations.GenerateOccluder方法的典型用法代码示例。如果您正苦于以下问题:C# Operations.GenerateOccluder方法的具体用法?C# Operations.GenerateOccluder怎么用?C# Operations.GenerateOccluder使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Operations
的用法示例。
在下文中一共展示了Operations.GenerateOccluder方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
public static void Run(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ProgramOptions options = new ProgramOptions();
string settingPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Oxel.Settings.xml");
VoxelizationInput input = VoxelizationInput.Load(settingPath);
if (input == null)
input = new VoxelizationInput();
if (args.Contains("-c"))
{
// Make sure user can see console output
AttachConsole(PARENT_PROCESS_ID);
input.Clone(options);
if (!CommandLineParser.Parse<ProgramOptions>(args, ref options))
return;
options.Clone(input);
}
else
{
CommandLineParser.Parse<VoxelizationInput>(args, ref input);
}
if (options.UseCommandLine)
{
Logger.IsCommandLine = true;
Operations operations = new Operations();
operations.Initialize(input);
operations.Open(options.InputMesh, input.WindingOrder);
WaitHandle waitHandle = operations.GenerateOccluder((VoxelizationProgress vp) => {
string coverage =
String.Format("Volume Coverage : {0,5:0.##}%", (100 * vp.VolumeCoverage)) + " " +
String.Format("Silhouette Coverage : {0,5:0.##}%", (100 * vp.SilhouetteCoverage));
if (!String.IsNullOrEmpty(vp.Status))
Console.WriteLine(vp.Status + "\r\n");
Console.WriteLine(coverage);
}, new Action(() => { }));
waitHandle.WaitOne();
operations.Save(options.OutputMesh);
}
else
{
using (MainWindow window = new MainWindow(input))
{
window.ShowDialog();
}
}
}