当前位置: 首页>>代码示例>>C#>>正文


C# ParameterSet.FindOneBool方法代码示例

本文整理汇总了C#中ParameterSet.FindOneBool方法的典型用法代码示例。如果您正苦于以下问题:C# ParameterSet.FindOneBool方法的具体用法?C# ParameterSet.FindOneBool怎么用?C# ParameterSet.FindOneBool使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ParameterSet的用法示例。


在下文中一共展示了ParameterSet.FindOneBool方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CreateAccelerator

 public static IAggregate CreateAccelerator(List<IPrimitive> primitives, ParameterSet parameters)
 {
     bool refineImmediately = parameters.FindOneBool ("refineimmediately", false);
     return new Grid (primitives, refineImmediately);
 }
开发者ID:Kintaro,项目名称:Hyperion,代码行数:5,代码来源:Grid.cs

示例2: CreateShape

        public static IShape CreateShape(Transform o2w, Transform w2o, bool reverseOrientation, ParameterSet parameters, Dictionary<string, ITexture<double>> floatTextures, Dictionary<string, ITexture<Spectrum>> spectrumTextures)
        {
            int nvi = 0, npi = 0, nuvi = 0, nsi = 0, nni = 0;
            int[] vi = parameters.FindInt ("indices", ref nvi);
            Point[] P = parameters.FindPoint ("P", ref npi);
            double[] uvs = parameters.FindDouble ("uv", ref nuvi);
            if (uvs == null)
                uvs = parameters.FindDouble ("st", ref nuvi);
            bool discardDegnerateUVs = parameters.FindOneBool ("discarddegenerateUVs", false);
            // XXX should complain if uvs aren't an array of 2...
            if (uvs != null)
            {
                if (nuvi < 2 * npi)
                {
                    uvs = null;
                }
            }
            if (vi == null || P == null)
                return null;
            Vector[] S = parameters.FindVector ("S", ref nsi);
            if (S != null && nsi != npi)
            {

                S = null;
            }
            Normal[] N = parameters.FindNormal ("N", ref nni);
            if (N != null && nni != npi)
            {
                N = null;
            }
            if (discardDegnerateUVs && uvs != null && N != null)
            {
                // if there are normals, check for bad uv's that
                // give degenerate mappings; discard them if so
                int vp = 0;
                for (int i = 0; i < nvi; i += 3,vp += 3)
                {
                    double area = 0.5 * ((P[vi[vp + 0]] - P[vi[vp + 1]]) % (P[vi[vp + 2]] - P[vi[vp + 1]])).Length;
                    if (area < 1E-07)
                        continue;
                    // ignore degenerate tris.
                    if ((uvs[2 * vi[vp + 0]] == uvs[2 * vi[vp + 1]] && uvs[2 * vi[vp + 0] + 1] == uvs[2 * vi[vp + 1] + 1]) || (uvs[2 * vi[vp + 1]] == uvs[2 * vi[vp + 2]] && uvs[2 * vi[vp + 1] + 1] == uvs[2 * vi[vp + 2] + 1]) || (uvs[2 * vi[vp + 2]] == uvs[2 * vi[vp + 0]] && uvs[2 * vi[vp + 2] + 1] == uvs[2 * vi[vp + 0] + 1]))
                    {
                        uvs = null;
                        break;
                    }
                }
            }
            for (int i = 0; i < nvi; ++i)
                if (vi[i] >= npi)
                {
                    return null;
                }

            ITexture<double> alphaTex = null;
            string alphaTexName = parameters.FindTexture ("alpha");
            if (alphaTexName != "")
            {
                if (floatTextures.ContainsKey (alphaTexName))
                    alphaTex = floatTextures[alphaTexName];
            } else if (parameters.FindOneDouble ("alpha", 1.0) == 0.0)
                alphaTex = new ConstantTexture<double> (0.0);
            return new TriangleMesh (o2w, w2o, reverseOrientation, nvi / 3, npi, vi, P, N, S, uvs,
            alphaTex);
        }
开发者ID:Kintaro,项目名称:Hyperion,代码行数:65,代码来源:TriangleMesh.cs


注:本文中的ParameterSet.FindOneBool方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。