示例#1
0
        private void RevealUnitVicinity(Topology.Face face)
        {
            _faceSeenStates[face]   = true;
            _faceSightCounts[face] += 1;
            _dynamicMesh.RebuildFace(face, _faceTriangulation);

            TopologyVisitor.VisitFacesInBreadthFirstOrder(face, (FaceVisitor visitor) =>
            {
                _faceSeenStates[visitor.face] = true;
                if (visitor.depth <= fullSightDistance)
                {
                    _faceSightCounts[visitor.face] += 1;
                }
                _dynamicMesh.RebuildFace(visitor.face, _faceTriangulation);
                if (visitor.depth < limitedSightDistance)
                {
                    visitor.VisitAllNeighbors();
                }
            });
        }
示例#2
0
 private void ClearPreviousPickState()
 {
     if (_startFace)
     {
         if (_path == null || _path.Count == 0)
         {
             _dynamicMesh.RebuildFace(_startFace, _triangulationNormal);
         }
         else
         {
             foreach (var face in _path.AsFacePath())
             {
                 _dynamicMesh.RebuildFace(face, _triangulationNormal);
             }
         }
     }
 }
示例#3
0
 private void Select(Topology.Face face)
 {
     _dynamicMesh.RebuildFace(face, _selectedFaceTriangulation);
     _dynamicMesh.RebuildMesh(DynamicMesh.VertexAttributes.Normal | DynamicMesh.VertexAttributes.UV);
 }