/// <summary> /// Transform the position and orientation of the symbol. /// </summary> /// <param name="transform">affine transform</param> /// <returns>the transformed symbol (new instance)</returns> public AtomSymbol Transform(Transform transform) { List <TextOutline> transformedAdjuncts = new List <TextOutline>(adjuncts.Count); foreach (var adjunct in adjuncts) { transformedAdjuncts.Add(adjunct.Transform(transform)); } List <TextOutline> transformedAnnAdjuncts = new List <TextOutline>(adjuncts.Count); foreach (var adjunct in annotationAdjuncts) { transformedAnnAdjuncts.Add(adjunct.Transform(transform)); } return(new AtomSymbol(element.Transform(transform), transformedAdjuncts, transformedAnnAdjuncts, alignment, hull.Transform(transform))); }