public void PopState() { TurtleState lastPushedState = _turtleStatesStack.Pop(); currentOrientation = lastPushedState.GetOrientation(); currentPosition = lastPushedState.GetPosition(); currentStepLength = lastPushedState.GetStepLength(); currentThickness = lastPushedState.GetThickness(); currentProfile = lastPushedState.GetProfile(); //add the branch to the list of branches branchesStack.Pop(); //branches.Add(branchesStack.Pop()); }
public void PushState() { //clone the object Point3d position = new Point3d(currentPosition.X, currentPosition.Y, currentPosition.Z); Plane orientation = new Plane(currentOrientation.Origin, currentOrientation.XAxis, currentOrientation.YAxis); TurtleState turtleState = new TurtleState(position, orientation, currentStepLength, currentThickness, currentProfile); _turtleStatesStack.Push(turtleState); Branch newBranch = new Branch(-1); branchesStack.Push(newBranch); branches.Add(newBranch); newBranch.AddProfile(currentProfile); //newBranch.AddState(turtleState); }
private void AddState(TurtleState state) { states.Add(state); //profiles.Add(state.GetProfile()); }