internal void Create(Vector3 wpos, Transformation RailTransformation, double StartingDistance, double EndingDistance, double Brightness) { double dz = TrackPosition - StartingDistance; if (ShowPost) { // post double dx = Position.X; wpos += dx * RailTransformation.X + dz * RailTransformation.Z; CompatibilityObjects.SignalPost.CreateObject(wpos, RailTransformation, Transformation.NullTransformation, -1, StartingDistance, EndingDistance, TrackPosition, Brightness); } if (ShowObject) { // signal object double dx = Position.X; double dy = Position.Y; wpos += dx * RailTransformation.X + dy * RailTransformation.Y + dz * RailTransformation.Z; SignalObject.Create(wpos, RailTransformation, new Transformation(Yaw, Pitch, Roll), SectionIndex, StartingDistance, EndingDistance, TrackPosition, Brightness); } }
internal void Create(Vector3 wpos, Transformation RailTransformation, double StartingDistance, double EndingDistance, double Brightness) { double dz = TrackPosition - StartingDistance; if (ShowPost) { /* * Post- * Need to clone a copy of the vector for transform * Do it in the post as this is the lesser used option */ Vector3 wpos2 = new Vector3(wpos); wpos2 += Position.X * RailTransformation.X + dz * RailTransformation.Z; CompatibilityObjects.SignalPost.CreateObject(wpos2, RailTransformation, Transformation.NullTransformation, -1, StartingDistance, EndingDistance, TrackPosition, Brightness); } if (ShowObject) { // signal object wpos += Position.X * RailTransformation.X + Position.Y * RailTransformation.Y + dz * RailTransformation.Z; SignalObject.Create(wpos, RailTransformation, new Transformation(Yaw, Pitch, Roll), SectionIndex, StartingDistance, EndingDistance, TrackPosition, Brightness); } }