예제 #1
0
        private void StopRenderingSegment(PathVertexType type)
        {
            var lineRenderer = m_lineRendererByEffectType[type];

#if UNITY_5_5
            lineRenderer.numPositions = 0;
#else
            lineRenderer.positionCount = 0;
#endif
        }
예제 #2
0
 public static bool Contains( UInt64 PathExpressionData, int depth, PathVertexType tt )
 {
     const uint mask = 7u;
     for (int i = 0, offs = 0; i < depth; i++, offs += 3)
     {
         var pt = (PathVertexType)((PathExpressionData >> offs) & mask);
         if (pt == tt)
             return true;
     }
     return false;
 }
예제 #3
0
        public bool Get(PathVertexType type)
        {
            switch (type)
            {
            case PathVertexType.Source: return(SourceRendered);

            case PathVertexType.Receiver: return(ReceiverRendered);

            case PathVertexType.Reflection: return(ReflectionRendered);

            case PathVertexType.Scattering: return(ScatteringRendered);

            case PathVertexType.Transmission: return(TransmissionRendered);

            case PathVertexType.Diffraction: return(DiffractionRendered);

            default:
                SoundToolKitDebug.Assert(false, "This enum case is not handled");
                return(SourceRendered);
            }
        }
예제 #4
0
        private void RenderSegment(PathVertexType type)
        {
            var points = new List <Vector3>();

            foreach (var path in m_soundPaths)
            {
                for (int i = 0; i < path.vertices.Count - 1; ++i)
                {
                    if (path.vertices[i].Type == type)
                    {
                        points.Add(Vector3Extensions.ToUnityEngine(path.vertices[i].Position));
                        points.Add(Vector3Extensions.ToUnityEngine(path.vertices[i + 1].Position));
                    }
                }
            }

            if (points.Count > 1)
            {
                var lineRenderer = m_lineRendererByEffectType[type];

                lineRenderer.material.color = SegmentsColors.Get(type);
#if UNITY_5_5
                lineRenderer.numPositions = points.Count;
#else
                lineRenderer.positionCount = points.Count;
#endif
                lineRenderer.startWidth = m_lineWidth;
                lineRenderer.endWidth   = m_lineWidth;

                lineRenderer.SetPositions(points.ToArray());
            }
            else
            {
                StopRenderingSegment(type);
            }
        }