private void initShow() { SetColX(_PalletColNums); SetRowY(_PalletRowNums); //clear old point. SeriesBurnOK.Points.Clear(); SeriesBurnNG.Points.Clear(); SeriesNotBurn.Points.Clear(); _AllPointStatus.Clear(); for (int y = 0; y < _PalletRowNums; y++) { for (int x = 0; x < _PalletColNums; x++) { PointStatus p = new PointStatus(); p.x = x; p.y = y; p.status = BURN_STATUS_NOT_BURN; _AllPointStatus.Add(p); } } ReFreshPoint(); }
/// <summary> /// CONSTRUCTOR, set the coordinates of the cell, and set status to Empty /// </summary> /// <param name="x">X position</param> /// <param name="y">Y position</param> public Point(int x, int y) { this.X = x; this.Y = y; //set all declarations of Point to "Empty" by default this.Status = PointStatus.Empty; }
private static void UpdatePointStatus(LinkedListNode <PointStatus> node) { PointStatus current = node.Value; PointStatus prev = node.Previous != null ? node.Previous.Value : node.List.Last.Value; PointStatus next = node.Next != null ? node.Next.Value : node.List.First.Value; if (!current.isConvex) { // 之前是凹点,则判断此次是否为凸点 if (Vec.Cross(current.point - prev.point, next.point - current.point) >= 0) { current.isConvex = true; } else { current.isSeparable = false; // 凹点一定不可分离 return; } } // 更新可分离状态 foreach (PointStatus pointStaus in node.List) { if (pointStaus != current && pointStaus != prev && pointStaus != next) { if (TestInTriangle(pointStaus.point, current.point, prev.point, next.point)) { // 有一个多边形的顶点在三角形內,则此三角形不可分离 current.isSeparable = false; return; } } } current.isSeparable = true; }
public void RemoveActiveEdge() { activeEdges--; if (activeEdges == 0) { status = PointStatus.FIXED; } }
/// <summary> /// Deserialization constructor /// </summary> /// <param name="serial"></param> public RemappingPoint(SerializableRemappingPoint serial) { m_attributes[(int)EveAttribute.Intelligence] = serial.Intelligence; m_attributes[(int)EveAttribute.Perception] = serial.Perception; m_attributes[(int)EveAttribute.Willpower] = serial.Willpower; m_attributes[(int)EveAttribute.Charisma] = serial.Charisma; m_attributes[(int)EveAttribute.Memory] = serial.Memory; m_status = serial.Status; }
public DeepPoint(PointF point, PointType pType, PointStatus pStatus) { p = point; type = pType; status = pStatus; intersections = new List <DeepPoint>(); }
/// <summary> /// Deserialization constructor /// </summary> /// <param name="serial"></param> public RemappingPoint(SerializableRemappingPoint serial) { m_attributes[(int)EveAttribute.Intelligence] = serial.Intelligence; m_attributes[(int)EveAttribute.Perception] = serial.Perception; m_attributes[(int)EveAttribute.Willpower] = serial.Willpower; m_attributes[(int)EveAttribute.Charisma] = serial.Charisma; m_attributes[(int)EveAttribute.Memory] = serial.Memory; m_description = serial.Description; m_status = serial.Status; }
private bool XXXXXXXFlag = true; //队列第一个位置点,跟设备相关时,对应设备的状态信息来表示true, false #endregion #region Unity生命周期 protected override void Awake() { base.Awake(); m_stepArray = new PointStatus[] { PointStatus.Train_Down_Birth, PointStatus.DownTrain_Down, PointStatus.ExitCheckTicket, PointStatus.ExitCheckTicketAfter, PointStatus.ExitStation }; m_npcActionStatus = NpcActionStatus.ExitStationTrainDown_NpcActionStatus; m_endStepIndex = m_stepArray.Length - 1; }
private bool XXXXXXXFlag = true; //队列第一个位置点,跟设备相关时,对应设备的状态信息来表示true, false #endregion #region Unity生命周期 protected override void Awake() { base.Awake(); m_areaMark = 1 + 2 + 4 + 16; m_navMeshAgent.areaMask = m_areaMark; m_stepArray = new PointStatus[] { PointStatus.Train_Up_Birth, PointStatus.DownTrain_Up, PointStatus.ExitCheckTicket, PointStatus.ExitCheckTicketAfter, PointStatus.ExitStation }; m_npcActionStatus = NpcActionStatus.ExitStationTrainUp_NpcActionStatus; m_endStepIndex = m_stepArray.Length - 1; }
private bool XXXXXXXFlag = true; //队列第一个位置点,跟设备相关时,对应设备的状态信息来表示true, false #endregion #region Unity生命周期 protected override void Awake() { base.Awake(); m_areaMark = 1 + 2 + 4 + 8; m_navMeshAgent.areaMask = m_areaMark; m_stepArray = new PointStatus[] { PointStatus.EnterStation, PointStatus.BuyTicket, PointStatus.EnterCheckTicket, PointStatus.EnterCheckTicketAfter, PointStatus.WaitTrain_Down, PointStatus.Train_Down }; m_npcActionStatus = NpcActionStatus.EnterStationTrainDown_NpcActionStatus; m_endStepIndex = m_stepArray.Length - 1; }
public override PointStatus GetPointStatus(Vertex3 vt) { if (faces.Any(x => x.Plane.Excludes(vt))) { return(PointStatus.Outside); } foreach (CH_Polygon f in faces) { PointStatus ps = f.GetPointStatus(vt); if (ps != PointStatus.Outside) { return(ps); } } return(PointStatus.Inside); }
/// <summary> /// Add new incident edge /// Update /// </summary> /// <param name="edge">The size of new edge</param> public void AddEdge(Edge edge) { if (edge.length > MaxEdge) { MaxEdge = edge.length; } if (edge.length < MinEdge) { MinEdge = edge.length; } activeEdges++; if (activeEdges > 0) { status = PointStatus.ACTIVE; } }
//获得指定必达位置点,这样的点通常是EnterCheckTicketAfter, ExitCheckTicketAfter, Train_Up等类型的位置点 public Point GetMustGotoPoint(int stepIndex) { Point point = null; PointStatus status = m_stepArray[stepIndex]; if ((status == PointStatus.EnterCheckTicketAfter || status == PointStatus.ExitCheckTicketAfter || status == PointStatus.Train_Up || status == PointStatus.Train_Down || status == PointStatus.Train_Up_Birth || status == PointStatus.Train_Down_Birth || status == PointStatus.DownTrain_Down || status == PointStatus.DownTrain_Up) && m_gotoPoint != null) { //下一个位置点,必须为特定位置点时, 跟该位置点当前状态没有任何关系,必须获取到该位置点 point = StationEngine.Instance.GetFirstPoint(m_stationIndex, (int)m_stepArray[stepIndex], m_gotoPoint.m_belongPointQueue.m_queueIndex); } return(point); }
/// <summary> /// Will set the provided character scratchpad's base attributes as the target values to remap. /// </summary> /// <param name="newScratchpad">The scratchpad with the target base values to assign to this point</param> /// <param name="oldScratchpad">The scratchpad before we remapped</param> internal void SetBaseAttributes(CharacterScratchpad newScratchpad, CharacterScratchpad oldScratchpad) { // Update the status this.m_status = PointStatus.UpToDate; // Initialize the string StringBuilder builder = new StringBuilder(); // Scroll through attributes for (int i = 0; i < 5; i++) { // Compute the new base attribute EveAttribute attrib = (EveAttribute)i; m_attributes[i] = newScratchpad[attrib].Base; // Update description builder.AppendLine().Append(GetStringForAttribute(attrib, oldScratchpad, newScratchpad)); } // Return the final string this.m_description = builder.ToString(); }
//define constructor public Point(int x, int y, PointStatus status) { this.X = x; this.Y = y; this.Status = status; }
public Point(int x, int y, PointStatus status) { this.x = x; this.y = y; this.status = status; }
//constructor public Point() { this.x = 0; this.y = 0; this.status = PointStatus.Empty; }
public Point(int x, int y, PointStatus s) { this.x = x; this.y = y; this.Status = s; }
private static PointQueue ZZZ(Transform queueTrans, int queueIndex) { if (queueTrans == null) { return(null); } PointQueue pointQueue = new PointQueue(); pointQueue.m_queueIndex = queueIndex; int pointCount = queueTrans.childCount; for (int i = 0; i < pointCount; i++) { Transform pointTrans = queueTrans.GetChild(i); string pointName = pointTrans.gameObject.name; pointName = pointName.Substring(0, pointName.Length - 6); PointStatus pointStatus = (PointStatus)System.Enum.Parse(typeof(PointStatus), pointName); bool isRestAreaPoint = false; if (pointName.Contains("RestArea")) { isRestAreaPoint = true; } bool isDeviceCtrl = false; if (i == 0 && (pointName == "EnterCheckTicket" || pointName == "ExitCheckTicket" || pointName == "WaitTrain_Up" || pointName == "WaitTrain_Down" || pointName == "Train_Up_Birth" || pointName == "Train_Down_Birth")) { isDeviceCtrl = true; } float posX = pointTrans.position.x; float posY = pointTrans.position.y; float posZ = pointTrans.position.z; float eulerAngleX = pointTrans.eulerAngles.x; float eulerAngleY = pointTrans.eulerAngles.y; float eulerAngleZ = pointTrans.eulerAngles.z; Point point = new Point() { m_belongPointQueue = pointQueue, m_queueIndex = queueIndex, m_pointStatus = pointStatus, m_isReservation = false, //未提前被预约 m_isEmpty = true, //为空 m_isRestAreaPoint = isRestAreaPoint, m_isDeviceCtrl = isDeviceCtrl, PosX = posX, PosY = posY, PosZ = posZ, EulerAngleX = eulerAngleX, EulerAngleY = eulerAngleY, EulerAngleZ = eulerAngleZ, }; pointQueue.AddPoint2Queue(point); // PointBehaviour pb = pointTrans.GetComponent<PointBehaviour>(); // point.m_pb = pb; // point.m_pb.IsRestArea = isRestAreaPoint; } return(pointQueue); }
public Point(int x, int y, PointStatus Status);
public void Update(PointStatus status) { UpdatedDate = DateTime.Now; Status = status; }
public PointStatusRelationship GetPointStatusRelationship(PointStatus curPointStatus) { return(m_pointStatusRelatioinshipDict[curPointStatus]); }
public DestinationPoint(PointStatus pointStatus, Address address, DestinationPoint previousPoint = null) { Status = pointStatus; Address = address; PreviousPoint = previousPoint; }
/// <summary> /// 分解多边形为三角形,返回分解后的三角形顶点在polygon中的索引 /// </summary> /// <param name="polygon">输入多边形</param> public static List <int> Resolve(List <Vec> polygon) { if (polygon.Count < 3) { return(null); } bool isCW = IsClockwise(polygon); List <int> tris = new List <int>(); LinkedList <PointStatus> pointStatuses = new LinkedList <PointStatus>(); for (int i = 0; i < polygon.Count; i++) { Vec point = polygon[i]; PointStatus pointStatus = new PointStatus { point = point, index = i }; // 确保顺序为顺时针,逆时针则反向插入 if (isCW) { pointStatuses.AddLast(pointStatus); } else { pointStatuses.AddFirst(pointStatus); } } // 可分离的点 LinkedList <LinkedListNode <PointStatus> > separablePointStatuses = new LinkedList <LinkedListNode <PointStatus> >(); for (LinkedListNode <PointStatus> node = pointStatuses.First; node != null; node = node.Next) { UpdatePointStatus(node); if (node.Value.isSeparable) { separablePointStatuses.AddFirst(node); } } // 开始分离 while (pointStatuses.Count >= 3) { if (separablePointStatuses.Count == 0) { return(null); // 分离失败,例如自身相交情况 } LinkedListNode <PointStatus> current = separablePointStatuses.First.Value; separablePointStatuses.RemoveFirst(); LinkedListNode <PointStatus> prev = current.Previous ?? current.List.Last; LinkedListNode <PointStatus> next = current.Next ?? current.List.First; pointStatuses.Remove(current); tris.Add(current.Value.index); tris.Add(prev.Value.index); tris.Add(next.Value.index); // 更新可分离点状态 if (prev.Value.isSeparable) { UpdatePointStatus(prev); if (!prev.Value.isSeparable) { separablePointStatuses.Remove(prev); } } else { UpdatePointStatus(prev); if (prev.Value.isSeparable) { separablePointStatuses.AddFirst(prev); } } if (next.Value.isSeparable) { UpdatePointStatus(next); if (!next.Value.isSeparable) { separablePointStatuses.Remove(next); } } else { UpdatePointStatus(next); if (next.Value.isSeparable) { separablePointStatuses.AddFirst(next); } } } return(tris); }
private void CreateNpc(NpcActionStatus npcActionStatus, PointStatus pointStatus) { NpcType npcType = NpcType.None; GameObject npcGo = m_npcFactory.CreateNpc(ref npcType); if (npcGo == null) { return; } Transform parentTrans = m_stationModule.GetNpcParentTransform(m_stationIndex, npcActionStatus); if (parentTrans == null) { return; } npcGo.transform.SetParent(parentTrans); Point point = null; if (pointStatus == PointStatus.Train_Up_Birth || pointStatus == PointStatus.Train_Down_Birth) { point = StationEngine.Instance.GetNoReservationPoint2RandomPointQueue(m_stationIndex, (int)pointStatus, 0, 16); } else { point = StationEngine.Instance.GetNoReservationPoint2RandomPointQueue(m_stationIndex, (int)pointStatus); } if (point == null) { return; } if (pointStatus != PointStatus.EnterStation) { point.IsReservation = true; } npcGo.transform.localPosition = new Vector3(point.PosX, point.PosY, point.PosZ); npcGo.transform.localEulerAngles = new Vector3(point.EulerAngleX, point.EulerAngleY, point.EulerAngleZ); npcGo.GetComponent <NavMeshAgent> ().enabled = true; NpcAction npcAction = null; switch (npcActionStatus) { case NpcActionStatus.EnterStationTrainUp_NpcActionStatus: { npcAction = npcGo.AddComponent <NpcEnterStationUpAction> (); npcAction.NpcActionStatus = NpcActionStatus.EnterStationTrainUp_NpcActionStatus; if (System.Object.ReferenceEquals(npcAction, null) == false) { npcAction.NpcType = npcType; npcAction.StationIndex = m_stationIndex; m_stationModule.AddNpcAction(m_stationIndex, npcAction); } break; } case NpcActionStatus.EnterStationTrainDown_NpcActionStatus: { npcAction = npcGo.AddComponent <NpcEnterStationDownAction> (); npcAction.NpcActionStatus = NpcActionStatus.EnterStationTrainDown_NpcActionStatus; if (System.Object.ReferenceEquals(npcAction, null) == false) { npcAction.NpcType = npcType; npcAction.StationIndex = m_stationIndex; m_stationModule.AddNpcAction(m_stationIndex, npcAction); } break; } case NpcActionStatus.ExitStationTrainUp_NpcActionStatus: { npcAction = npcGo.AddComponent <NpcExitStationUpAction_New> (); if (System.Object.ReferenceEquals(npcAction, null) == false) { npcAction.NpcType = npcType; npcAction.StationIndex = m_stationIndex; m_stationModule.AddNpcAction(m_stationIndex, npcAction); } ((NpcExitStationUpAction_New)npcAction).StartAction(point); break; } case NpcActionStatus.ExitStationTrainDown_NpcActionStatus: { npcAction = npcGo.AddComponent <NpcExitStationDownAction_New> (); if (System.Object.ReferenceEquals(npcAction, null) == false) { npcAction.NpcType = npcType; npcAction.StationIndex = m_stationIndex; m_stationModule.AddNpcAction(m_stationIndex, npcAction); } ((NpcExitStationDownAction_New)npcAction).StartAction(point); break; } default: break; } }
public Point(int x, int y, PointStatus pointStatus) { this.x = x; this.y = y; this.PointStatus = pointStatus; }
//Constructor that takes in x and y coordinates and sets status to Empty by default public Point(int x, int y) { this.X = x; this.Y = y; this.Status = PointStatus.Empty; }