public static bool HasAnyUV(this MeshBuilderChannels channels)
 {
     foreach (var channel in channels.AsEnumerable())
     {
         if ((int)channel >= (int)MeshBuilderChannel.UV)
         {
             return(true);
         }
     }
     return(false);
 }
Exemple #2
0
        /// <summary>
        /// Starts the mesh building process.
        /// This method must be called before adding vertex data or geometry.
        ///
        /// <see cref="AddVertex(ref VertexData)"/>
        /// <see cref="AddGeometry{T}(T)"/>
        ///
        /// When done building the mesh, you can write it via <see cref="WriteMeshData(Mesh)"/>.
        /// To reuse the mesh builder, call <see cref="Stop"/>.
        /// </summary>
        /// <param name="channels"></param>
        /// <param name="topology"></param>
        public void Start(MeshBuilderChannels channels, MeshTopology topology = MeshTopology.Triangles)
        {
            if (this.channels != MeshBuilderChannels.INVALID)
            {
                return;
            }

            this.channels = channels;
            this.topology = topology;
            Setup();
        }
        public void TestChannelEnumerator()
        {
            MeshBuilderChannels channels = MeshBuilderChannels.NORMALS | MeshBuilderChannels.TANGENTS | MeshBuilderChannels.COLORS;

            MeshBuilderChannel[] channelsArr = new MeshBuilderChannel[] { MeshBuilderChannel.NORMALS, MeshBuilderChannel.TANGENTS, MeshBuilderChannel.COLORS };

            CollectionAssert.AreEquivalent(channelsArr, channels.AsEnumerable());

            channels    = MeshBuilderChannels.NORMALS | MeshBuilderChannels.TANGENTS | MeshBuilderChannels.UV | MeshBuilderChannels.UV8;
            channelsArr = new MeshBuilderChannel[] { MeshBuilderChannel.NORMALS, MeshBuilderChannel.TANGENTS, MeshBuilderChannel.UV, MeshBuilderChannel.UV8 };

            CollectionAssert.AreEquivalent(channelsArr, channels.AsEnumerable());
        }
 public Enumerator(MeshBuilderChannels channels)
 {
     this.channels = channels;
     this.current  = MeshBuilderChannel.INVALID;
 }
 public ChannelsEnumerable(MeshBuilderChannels channels)
 {
     this.channels = channels;
 }
 public static ChannelsEnumerable AsEnumerable(this MeshBuilderChannels channels)
 {
     return(new ChannelsEnumerable(channels));
 }
Exemple #7
0
 /// <summary>
 /// Immediately stops a previously started mesh build process.
 /// <see cref="Start(MeshBuilderChannels, MeshTopology)"/>
 ///
 /// This will drop all data currently in this mesh builder.
 /// After calling this, you can again call <see cref="Start(MeshBuilderChannels, MeshTopology)"/>
 /// </summary>
 public void Stop()
 {
     this.channels = MeshBuilderChannels.INVALID;
     this.bounds   = null;
 }