simetri.graphics.all_enums
All enumerations.
1"""All enumerations.""" 2 3from typing import Union 4from typing_extensions import TypeAlias 5from strenum import StrEnum 6 7 8def get_enum_value(enum_class: StrEnum, value: str) -> str: 9 """Get the value of an enumeration.""" 10 if isinstance(value, enum_class): 11 res = value.value 12 else: 13 res = enum_class[value.upper()].value 14 15 return res 16 17 18class Align(StrEnum): 19 """Align is used to set the alignment of the text in tags. 20 Used for Tag and Text objects. This is based on TikZ. 21 22 Valid values are: NONE, CENTER, FLUSH_CENTER, FLUSH_LEFT, FLUSH_RIGHT, JUSTIFY, LEFT, RIGHT. 23 """ 24 25 NONE = "" 26 CENTER = "center" 27 FLUSH_CENTER = "flush center" 28 FLUSH_LEFT = "flush left" 29 FLUSH_RIGHT = "flush right" 30 JUSTIFY = "justify" 31 LEFT = "left" 32 RIGHT = "right" 33 34 35# Anchor points 36# Used for TikZ. VaLUeS are case sensitive. 37class Anchor(StrEnum): 38 """Anchor is used to set the anchor point of the shapes 39 relative to the boundary box of shapes/batches or 40 frames of tag objects. 41 42 Valid values are: BASE, BASE_EAST, BASE_WEST, BOTTOM, CENTER, EAST, LEFT, MID, MIDEAST, MIDWEST, NORTH, 43 NORTHEAST, NORTHWEST, RIGHT, SOUTH, SOUTHEAST, SOUTHWEST, TEXT, TOP, WEST. 44 """ 45 46 BASE = "base" # FOR TAGS ONLY 47 BASE_EAST = "base east" # FOR TAGS ONLY 48 BASE_WEST = "base west" # FOR TAGS ONLY 49 BOTTOM = "bottom" 50 MIDPOINT = "midpoint" 51 EAST = "east" 52 LEFT = "left" 53 CENTER = "center" 54 MID = "mid" 55 MIDEAST = "mid east" 56 MIDWEST = "mid west" 57 NORTH = "north" 58 NORTHEAST = "north east" 59 NORTHWEST = "north west" 60 RIGHT = "right" 61 SOUTH = "south" 62 SOUTHEAST = "south east" 63 SOUTHWEST = "south west" 64 TEXT = "text" 65 TOP = "top" 66 WEST = "west" 67 68 69class ArrowLine(StrEnum): 70 """ArrowLine is used to set the type of arrow line. 71 72 Valid values are: FLATBASE_END, FLATBASE_MIDDLE, FLATBASE_START, FLATBOTH_END, FLATBOTH_MIDDLE, 73 FLATBOTH_START, FLATTOP_END, FLATTOP_MIDDLE, FLATTOP_START, STRAIGHT_END, STRAIGHT_MIDDLE, STRAIGHT_START. 74 """ 75 76 FLATBASE_END = "flatbase end" # FLAT BASE, ARROW AT THE END 77 FLATBASE_MIDDLE = "flatbase middle" # FLAT BASE, ARROW AT THE MIDDLE 78 FLATBASE_START = "flatbase start" # FLAT BASE, ARROW AT THE START 79 FLATBOTH_END = "flatboth end" 80 FLATBOTH_MIDDLE = "flatboth middle" 81 FLATBOTH_START = "flatboth start" 82 FLATTOP_END = "flattop end" # FLAT TOP, ARROW AT THE END 83 FLATTOP_MIDDLE = "flattop middle" 84 FLATTOP_START = "flattop start" 85 STRAIGHT_END = "straight end" # DEFAULT, STRAIGHT LINE, ARROW AT THE END 86 STRAIGHT_MIDDLE = "straight middle" # STRAIGHT LINE, ARROW AT THE MIDDLE 87 STRAIGHT_START = "straight start" # STRAIGHT LINE, ARROW AT THE START 88 89 90class Axis(StrEnum): 91 """Cartesian coordinate system axes. 92 93 Valid values are: X, Y. 94 """ 95 96 X = "x" 97 Y = "y" 98 99 100# Used for shapes, canvas, and tags 101class BackStyle(StrEnum): 102 """BackStyle is used to set the background style of a shape or tag. 103 If shape.fill is True, then background will be drawn according to 104 the shape.back_style value. 105 106 Valid values are: COLOR, COLOR_AND_GRID, EMPTY, GRIDLINES, PATTERN, SHADING, SHADING_AND_GRID. 107 """ 108 109 COLOR = "COLOR" 110 COLOR_AND_GRID = "COLOR_AND_GRID" 111 EMPTY = "EMPTY" 112 GRIDLINES = "GRIDLINES" 113 PATTERN = "PATTERN" 114 SHADING = "SHADING" 115 SHADING_AND_GRID = "SHADING_AND_GRID" 116 117 118class BlendMode(StrEnum): 119 """BlendMode is used to set the blend mode of the colors. 120 121 Valid values are: COLOR, COLORBURN, COLORDODGE, DARKEN, DIFFERENCE, EXCLUSION, HARDLIGHT, HUE, LIGHTEN, 122 LUMINOSITY, MULTIPLY, NORMAL, OVERLAY, SATURATION, SCREEN, SOFTLIGHT. 123 """ 124 125 COLOR = "color" 126 COLORBURN = "colorburn" 127 COLORDODGE = "colordodge" 128 DARKEN = "darken" 129 DIFFERENCE = "difference" 130 EXCLUSION = "exclusion" 131 HARDLIGHT = "hardlight" 132 HUE = "hue" 133 LIGHTEN = "lighten" 134 LUMINOSITY = "luminosity" 135 MULTIPLY = "multiply" 136 NORMAL = "normal" 137 OVERLAY = "overlay" 138 SATURATION = "saturation" 139 SCREEN = "screen" 140 SOFTLIGHT = "softlight" 141 142 143class ColorSpace(StrEnum): 144 """ColorSpace is used to set the color space of the colors. 145 146 Valid values are: CMYK, GRAY, HCL, HLS, HSV, LAB, RGB, YIQ. 147 """ 148 149 CMYK = "CMYK" 150 GRAY = "GRAY" 151 HCL = "HCL" 152 HLS = "HLS" 153 HSV = "HSV" 154 LAB = "LAB" 155 RGB = "RGB" 156 YIQ = "YIQ" 157 158 159class Connection(StrEnum): 160 """Connection is used for identifying how two line segments are related 161 to each other. Intersection check uses some of these values. 162 163 Valid values are: CHAIN, COINCIDENT, COLL_CHAIN, CONGRUENT, CONTAINS, COVERS, DISJOINT, END_END, END_START, 164 FLIPPED, INTERSECT, NONE, OVERLAPS, PARALLEL, START_END, START_START, TOUCHES, WITHIN, YJOINT. 165 """ 166 167 CHAIN = "CHAIN" 168 COINCIDENT = "COINCIDENT" 169 COLL_CHAIN = "COLL_CHAIN" 170 CONGRUENT = "CONGRUENT" 171 CONTAINS = "CONTAINS" 172 COVERS = "COVERS" 173 DISJOINT = "DISJOINT" 174 END_END = "END_END" 175 END_START = "END_START" 176 FLIPPED = "FLIPPED" 177 INTERSECT = "INTERSECT" 178 NONE = "NONE" 179 OVERLAPS = "OVERLAPS" 180 PARALLEL = "PARALLEL" 181 START_END = "START_END" 182 START_START = "START_START" 183 TOUCHES = "TOUCHES" 184 WITHIN = "WITHIN" 185 YJOINT = "YJOINT" 186 187 188class Connector(StrEnum): 189 """Connector is used to set the way connecting lines are drawn. 190 This is not used yet. 191 192 Valid values are: ARC, ARROW_LINE, CURVE, LINE, DOUBLE_LINE, SQUIGLY, ZIGZAG, SQUIGLY_ARROW, ZIGZAG_ARROW, 193 DOUBLE_ARROW, DOUBLE_SQUIGLY. 194 """ 195 196 ARC = "ARC" 197 ARROW_LINE = "ARROW_LINE" 198 CURVE = "CURVE" 199 LINE = "LINE" 200 DOUBLE_LINE = "DOUBLE_LINE" 201 SQUIGLY = "squigly" 202 ZIGZAG = "zigzag" 203 SQUIGLY_ARROW = "squigly_arrow" 204 ZIGZAG_ARROW = "zigzag_arrow" 205 DOUBLE_ARROW = "double_arrow" 206 DOUBLE_SQUIGLY = "double_squigly" 207 208 209class ConstraintType(StrEnum): 210 """Constraint types are used with the 2D geometric constraint solver. 211 212 Valid values are: COLLINEAR, DISTANCE, LINE_ANGLE, PARALLEL, PERPENDICULAR, EQUAL_SIZE, EQUAL_VALUE, 213 INNER_TANGENT, OUTER_TANGENT. 214 """ 215 216 COLLINEAR = "COLLINEAR" 217 DISTANCE = "DISTANCE" 218 LINE_ANGLE = "LINE_ANGLE" 219 PARALLEL = "PARALLEL" 220 PERPENDICULAR = "PERPENDICULAR" 221 EQUAL_SIZE = "EQUAL_SIZE" 222 EQUAL_VALUE = "EQUAL_VALUE" 223 INNER_TANGENT = "INNER_TANGENT" 224 OUTER_TANGENT = "OUTER_TANGENT" 225 226 227class Compiler(StrEnum): 228 """Used for the LaTeX compiler. 229 Currently, only XELATEX is used. 230 231 Valid values are: LATEX, PDFLATEX, XELATEX, LUALATEX. 232 """ 233 234 LATEX = "LATEX" 235 PDFLATEX = "PDFLATEX" 236 XELATEX = "XELATEX" 237 LUALATEX = "LUALATEX" 238 239 240class Control(StrEnum): 241 """Used with the modifiers. 242 243 Valid values are: INITIAL, PAUSE, RESTART, RESUME, STOP. 244 """ 245 246 INITIAL = "INITIAL" 247 PAUSE = "PAUSE" 248 RESTART = "RESTART" 249 RESUME = "RESUME" 250 STOP = "STOP" 251 252 253class Conway(StrEnum): 254 """Frieze groups in Conway notation. 255 256 Valid values are: HOP, JUMP, SIDLE, SPINNING_HOP, SPINNING_JUMP, SPINNING_SIDLE, STEP. 257 """ 258 259 HOP = "HOP" 260 JUMP = "JUMP" 261 SIDLE = "SIDLE" 262 SPINNING_HOP = "SPINNING_HOP" 263 SPINNING_JUMP = "SPINNING_JUMP" 264 SPINNING_SIDLE = "SPINNING_SIDLE" 265 STEP = "STEP" 266 267 268class CurveMode(StrEnum): 269 """CurveMode is used to set how arc objects are drawn. 270 271 Valid values are: OPEN, CHORD, PIE. 272 """ 273 274 OPEN = "OPEN" 275 CHORD = "CHORD" 276 PIE = "PIE" 277 278 279class Dep(StrEnum): 280 """Depend may be used in the future to set the dependency of the shapes 281 when they are copied. Dependent copies share the same underlying data. 282 283 Valid values are: FALSE, TRUE, GEOM, STYLE. 284 """ 285 286 FALSE = "FALSE" # Independent 287 TRUE = "TRUE" # Both geometry and style are dependent 288 GEOM = "GEOM" # Only geometry is dependent 289 STYLE = "STYLE" # Only style is dependent 290 291 292class DocumentClass(StrEnum): 293 """DocumentClass is used to set the class of the LaTeX document. 294 295 Valid values are: ARTICLE, BEAMER, BOOK, IEEETRAN, LETTER, REPORT, SCRARTCL, SLIDES, STANDALONE. 296 """ 297 298 ARTICLE = "article" 299 BEAMER = "beamer" 300 BOOK = "book" 301 IEEETRAN = "ieeetran" 302 LETTER = "letter" 303 REPORT = "report" 304 SCRARTCL = "scrartcl" 305 SLIDES = "slides" 306 STANDALONE = "standalone" 307 308 309class FillMode(StrEnum): 310 """FillMode is used to set the fill mode of the shape. 311 312 Valid values are: EVENODD, NONZERO. 313 """ 314 315 EVENODD = "even odd" 316 NONZERO = "non zero" 317 318 319class FontFamily(StrEnum): 320 """FontFamily is used to set the family of the font. 321 322 Valid values are: MONOSPACE, SERIF, SANSSERIF. 323 """ 324 325 MONOSPACE = "monospace" # \ttfamily, \texttt 326 SERIF = "serif" # serif \rmfamily, \textrm 327 SANSSERIF = "sansserif" # \sffamily, \textsf 328 329 330class FontSize(StrEnum): 331 """FontSize is used to set the size of the font. 332 333 Valid values are: FOOTNOTESIZE, HUGE, HUGE2, LARGE, LARGE2, LARGE3, NORMAL, SCRIPTSIZE, SMALL, TINY. 334 """ 335 336 FOOTNOTESIZE = "footnotesize" 337 HUGE = "huge" # \huge 338 HUGE2 = "Huge" # \Huge 339 LARGE = "large" # \large 340 LARGE2 = "Large" # \Large 341 LARGE3 = "LARGE" # \LARGE 342 NORMAL = "normalsize" # \normalsize 343 SCRIPTSIZE = "scriptsize" # \scriptsize 344 SMALL = "small" # \small 345 TINY = "tiny" # \tiny 346 347 348class FontStretch(StrEnum): 349 """FontStretch is used to set the stretch of the font. 350 These come from LaTeX. 351 352 Valid values are: CONDENSED, EXPANDED, EXTRA_CONDENSED, EXTRA_EXPANDED, NORMAL, SEMI_CONDENSED, 353 SEMI_EXPANDED, ULTRA_CONDENSED, ULTRA_EXPANDED. 354 """ 355 356 CONDENSED = "condensed" 357 EXPANDED = "expanded" 358 EXTRA_CONDENSED = "extracondensed" 359 EXTRA_EXPANDED = "extraexpanded" 360 NORMAL = "normal" 361 SEMI_CONDENSED = "semicondensed" 362 SEMI_EXPANDED = "semiexpanded" 363 ULTRA_CONDENSED = "ultracondensed" 364 ULTRA_EXPANDED = "ultraexpanded" 365 366 367class FontStrike(StrEnum): 368 """FontStrike is used to set the strike of the font. 369 370 Valid values are: OVERLINE, THROUGH, UNDERLINE. 371 """ 372 373 OVERLINE = "overline" 374 THROUGH = "through" 375 UNDERLINE = "underline" 376 377 378class FontWeight(StrEnum): 379 """FontWeight is used to set the weight of the font. 380 381 Valid values are: BOLD, MEDIUM, NORMAL. 382 """ 383 384 BOLD = "bold" 385 MEDIUM = "medium" 386 NORMAL = "normal" 387 388 389class FrameShape(StrEnum): 390 """FrameShape is used to set the shape of the frame. 391 Frames are used for the tags. 392 393 Valid values are: CIRCLE, DIAMOND, ELLIPSE, FORBIDDEN, PARALLELOGRAM, POLYGON, RECTANGLE, RHOMBUS, 394 SPLITCIRCLE, SQUARE, STAR, TRAPEZOID. 395 """ 396 397 CIRCLE = "circle" 398 DIAMOND = "diamond" 399 ELLIPSE = "ellipse" 400 FORBIDDEN = "forbidden" 401 PARALLELOGRAM = "parallelogram" 402 POLYGON = "polygon" 403 RECTANGLE = "rectangle" 404 RHOMBUS = "rhombus" 405 SPLITCIRCLE = "split circle" 406 SQUARE = "square" 407 STAR = "star" 408 TRAPEZOID = "trapezoid" 409 410 411class Graph(StrEnum): 412 """Graph is used to set the type of graph. 413 414 Valid values are: DIRECTED, DIRECTEDWEIGHTED, UNDIRECTED, UNDIRECTEDWEIGHTED. 415 """ 416 417 DIRECTED = "DIRECTED" 418 DIRECTEDWEIGHTED = "DIRECTEDWEIGHTED" 419 UNDIRECTED = "UNDIRECTED" 420 UNDIRECTEDWEIGHTED = "UNDIRECTEDWEIGHTED" 421 422 423class GridType(StrEnum): 424 """GridType is used to set the type of grid. 425 Grids are used for creating star patterns. 426 427 Valid values are: CIRCULAR, SQUARE, HEXAGONAL, MIXED. 428 """ 429 430 CIRCULAR = "CIRCULAR" 431 SQUARE = "SQUARE" 432 HEXAGONAL = "HEXAGONAL" 433 MIXED = "MIXED" # CIRCULAR + SQUARE 434 435 436# arrow head positions 437class HeadPos(StrEnum): 438 """Arrow head positions. 439 440 Valid values are: BOTH, END, MIDDLE, START, NONE. 441 """ 442 443 BOTH = "BOTH" 444 END = "END" 445 MIDDLE = "MIDDLE" 446 START = "START" 447 NONE = "NONE" 448 449 450class IUC(StrEnum): 451 """IUC notation for frieze groups. 452 453 Valid values are: P1, P11G, P11M, P1M1, P2, P2MG, P2MM. 454 """ 455 456 P1 = "P1" 457 P11G = "P11G" 458 P11M = "P11M" 459 P1M1 = "P1M1" 460 P2 = "P2" 461 P2MG = "P2MG" 462 P2MM = "P2MM" 463 464 465class LineCap(StrEnum): 466 """LineCap is used to set the type of line cap. 467 468 Valid values are: BUTT, ROUND, SQUARE. 469 """ 470 471 BUTT = "butt" 472 ROUND = "round" 473 SQUARE = "square" 474 475 476class LineDashArray(StrEnum): 477 """LineDashArray is used to set the type of dashed-line. 478 479 Valid values are: DASHDOT, DASHDOTDOT, DASHED, DENSELY_DASHED, DENSELY_DOTTED, DOTTED, LOOSELY_DASHED, 480 LOOSELY_DOTTED, SOLID. 481 """ 482 483 DASHDOT = "dash dot" 484 DASHDOTDOT = "dash dot dot" 485 DASHED = "dashed" 486 DENSELY_DASHED = "densely dashed" 487 DENSELY_DOTTED = "densely dotted" 488 DOTTED = "dotted" 489 LOOSELY_DASHED = "loosely dashed" 490 LOOSELY_DOTTED = "loosely dotted" 491 SOLID = "solid" 492 493 494class LineJoin(StrEnum): 495 """LineJoin is used to set the type of line join. 496 497 Valid values are: BEVEL, MITER, ROUND. 498 """ 499 500 BEVEL = "bevel" 501 MITER = "miter" 502 ROUND = "round" 503 504 505class LineWidth(StrEnum): 506 """LineWidth is used to set the width of the line. 507 508 Valid values are: SEMITHICK, THICK, THIN, ULTRA_THICK, ULTRA_THIN, VERY_THICK, VERY_THIN. 509 """ 510 511 SEMITHICK = "semithick" 512 THICK = "thick" 513 THIN = "thin" 514 ULTRA_THICK = "ultra thick" 515 ULTRA_THIN = "ultra thin" 516 VERY_THICK = "very thick" 517 VERY_THIN = "very thin" 518 519 520class MarkerPos(StrEnum): 521 """MarkerPos is used to set the position of the marker. 522 523 Valid values are: CONCAVEHULL, CONVEXHULL, MAINX, OFFSETX. 524 """ 525 526 CONCAVEHULL = "CONCAVEHULL" 527 CONVEXHULL = "CONVEXHULL" 528 MAINX = "MAINX" 529 OFFSETX = "OFFSETX" 530 531 532class MarkerType(StrEnum): 533 """MarkerType is used to set the type of marker. 534 535 Valid values are: ASTERISK, BAR, CIRCLE, CROSS, DIAMOND, DIAMOND_F, EMPTY, FCIRCLE, HALF_CIRCLE, 536 HALF_CIRCLE_F, HALF_DIAMOND, HALF_DIAMOND_F, HALF_SQUARE, HALF_SQUARE_F, HEXAGON, HEXAGON_F, INDICES, 537 MINUS, OPLUS, OPLUS_F, O_TIMES, O_TIMES_F, PENTAGON, PENTAGON_F, PLUS, SQUARE, SQUARE_F, STAR, STAR2, 538 STAR3, TEXT, TRIANGLE, TRIANGLE_F. 539 """ 540 541 ASTERISK = "asterisk" 542 BAR = "|" 543 CIRCLE = "o" 544 CROSS = "x" 545 DIAMOND = "diamond" 546 DIAMOND_F = "diamond*" 547 EMPTY = "" 548 FCIRCLE = "*" 549 HALF_CIRCLE = "halfcircle" 550 HALF_CIRCLE_F = "halfcircle*" 551 HALF_DIAMOND = "halfdiamond" 552 HALF_DIAMOND_F = "halfdiamond*" 553 HALF_SQUARE = "halfsquare" 554 HALF_SQUARE_F = "halfsquare*" 555 HEXAGON = "hexagon" 556 HEXAGON_F = "hexagon*" 557 INDICES = "indices" 558 MINUS = "-" 559 OPLUS = "oplus" 560 OPLUS_F = "oplus*" 561 O_TIMES = "otimes" 562 O_TIMES_F = "otimes*" 563 PENTAGON = "pentagon" 564 PENTAGON_F = "pentagon*" 565 PLUS = "+" 566 SQUARE = "square" 567 SQUARE_F = "square*" 568 STAR = "star" 569 STAR2 = "star2" 570 STAR3 = "star3" 571 TEXT = "text" 572 TRIANGLE = "triangle" 573 TRIANGLE_F = "triangle*" 574 575 576class MusicScale(StrEnum): 577 """MusicScale is used for musical note scales. 578 This is used for audio generation for animations. 579 Not implemented yet!!! 580 581 Valid values are: MAJOR, MINOR, CHROMATIC, PENTATONIC, IONIC, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, 582 AEOLIAN, LOCRIAN. 583 """ 584 585 MAJOR = "major" 586 MINOR = "minor" 587 CHROMATIC = "chromatic" 588 PENTATONIC = "pentatonic" 589 IONIC = "ionic" 590 DORIAN = "dorian" 591 PHRYGIAN = "phrygian" 592 LYDIAN = "lydian" 593 MIXOLYDIAN = "mixolydian" 594 AEOLIAN = "aeolian" 595 LOCRIAN = "locrian" 596 597 598class Orientation(StrEnum): 599 """Orientation is used to set the orientation of the dimension 600 lines. 601 602 Valid values are: ANGLED, HORIZONTAL, VERTICAL. 603 """ 604 605 ANGLED = "ANGLED" 606 HORIZONTAL = "HORIZONTAL" 607 VERTICAL = "VERTICAL" 608 609 610class PageMargins(StrEnum): 611 """Page margins for the LaTeX documents. 612 Used in Page class. 613 614 Valid values are: CUSTOM, NARROW, STANDARD, WIDE. 615 """ 616 617 CUSTOM = "custom" 618 NARROW = "narrow" 619 STANDARD = "standard" 620 WIDE = "wide" 621 622 623class PageNumbering(StrEnum): 624 """Page numbering style for the LaTeX documents. 625 Used in Page class. 626 627 Valid values are: ALPH, ALPHUPPER, ARABIC, NONE, ROMAN, ROMAN_UPPER. 628 """ 629 630 ALPH = "alph" 631 ALPHUPPER = "ALPH" 632 ARABIC = "arabic" 633 NONE = "none" 634 ROMAN = "roman" 635 ROMAN_UPPER = "ROMAN" 636 637 638class PageNumberPosition(StrEnum): 639 """Page number positions for the LaTeX documents. 640 Used in Page class. 641 642 Valid values are: BOTTOM_CENTER, BOTTOM_LEFT, BOTTOM_RIGHT, CUSTOM, TOP_CENTER, TOP_LEFT, TOP_RIGHT. 643 """ 644 645 BOTTOM_CENTER = "bottom" 646 BOTTOM_LEFT = "bottom left" 647 BOTTOM_RIGHT = "bottom right" 648 CUSTOM = "custom" 649 TOP_CENTER = "top" 650 TOP_LEFT = "top left" 651 TOP_RIGHT = "top right" 652 653 654class PageOrientation(StrEnum): 655 """Page orientations for the LaTeX documents. 656 Used in Page class. 657 658 Valid values are: LANDSCAPE, PORTRAIT. 659 """ 660 661 LANDSCAPE = "landscape" 662 PORTRAIT = "portrait" 663 664 665class PageSize(StrEnum): 666 """Page sizes for the LaTeX documents. 667 Used in Page class. 668 669 Valid values are: LETTER, LEGAL, EXECUTIVE, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, 670 A0, A1, A2, A3, A4, A5, A6. 671 """ 672 673 LETTER = "letterpaper" 674 LEGAL = "legalpaper" 675 EXECUTIVE = "executivepaper" 676 B0 = "b0paper" 677 B1 = "b1paper" 678 B2 = "b2paper" 679 B3 = "b3paper" 680 B4 = "b4paper" 681 B5 = "b5paper" 682 B6 = "b6paper" 683 B7 = "b7paper" 684 B8 = "b8paper" 685 B9 = "b9paper" 686 B10 = "b10paper" 687 B11 = "b11paper" 688 B12 = "b12paper" 689 B13 = "b13paper" 690 A0 = "a0paper" 691 A1 = "a1paper" 692 A2 = "a2paper" 693 A3 = "a3paper" 694 A4 = "a4paper" 695 A5 = "a5paper" 696 A6 = "a6paper" 697 698 699class PathOperation(StrEnum): 700 """PathOperation is used to set the type of path operation. 701 Used with LinPath objects. 702 703 Valid values are: ARC, ARC_TO, BLEND_ARC, BLEND_CUBIC, BLEND_QUAD, BLEND_SINE, CLOSE, CUBIC_TO, FORWARD, 704 HOBBY_TO, H_LINE, LINE_TO, MOVE_TO, QUAD_TO, R_LINE, R_MOVE, SEGMENTS, SINE, V_LINE. 705 """ 706 707 ARC = "ARC" 708 ARC_TO = "ARC_TO" 709 BLEND_ARC = "BLEND_ARC" 710 BLEND_CUBIC = "BLEND_CUBIC" 711 BLEND_QUAD = "BLEND_QUAD" 712 BLEND_SINE = "BLEND_SINE" 713 CLOSE = "CLOSE" 714 CUBIC_TO = "CUBIC_TO" 715 FORWARD = "FORWARD" 716 HOBBY_TO = "HOBBY_TO" 717 H_LINE = "H_LINE" 718 LINE_TO = "LINE_TO" 719 MOVE_TO = "MOVE_TO" 720 QUAD_TO = "QUAD_TO" 721 R_LINE = "RLINE" 722 R_MOVE = "RMOVE" 723 SEGMENTS = "SEGMENTS" 724 SINE = "SINE" 725 V_LINE = "V_LINE" 726 727 728class PatternType(StrEnum): 729 """PatternType is used to set the type of pattern. 730 Used with closed shapes and Tag objects. 731 732 Valid values are: BRICKS, CHECKERBOARD, CROSSHATCH, CROSSHATCH_DOTS, DOTS, FIVE_POINTED_STARS, GRID, 733 HORIZONTAL_LINES, NORTHEAST, NORTHWEST, SIX_POINTED_STARS, VERTICAL_LINES. 734 """ 735 736 BRICKS = "bricks" 737 CHECKERBOARD = "checkerboard" 738 CROSSHATCH = "crosshatch" 739 CROSSHATCH_DOTS = "crosshatch dots" 740 DOTS = "dots" 741 FIVE_POINTED_STARS = "fivepointed stars" 742 GRID = "grid" 743 HORIZONTAL_LINES = "horizontal lines" 744 NORTHEAST = "north east lines" 745 NORTHWEST = "north west lines" 746 SIX_POINTED_STARS = "sixpointed stars" 747 VERTICAL_LINES = "vertical lines" 748 749 750class Placement(StrEnum): 751 """Placement is used to set the placement of the tags 752 relative to another object. 753 754 Valid values are: ABOVE, ABOVE_LEFT, ABOVE_RIGHT, BELOW, BELOW_LEFT, BELOW_RIGHT, CENTERED, INSIDE, 755 LEFT, OUTSIDE, RIGHT. 756 """ 757 758 ABOVE = "above" 759 ABOVE_LEFT = "above left" 760 ABOVE_RIGHT = "above right" 761 BELOW = "below" 762 BELOW_LEFT = "below left" 763 BELOW_RIGHT = "below right" 764 CENTERED = "centered" 765 INSIDE = "inside" 766 LEFT = "left" 767 OUTSIDE = "outside" 768 RIGHT = "right" 769 770 771class Render(StrEnum): 772 """Render is used to set the type of rendering. 773 774 Valid values are: EPS, PDF, SVG, TEX. 775 """ 776 777 EPS = "EPS" 778 PDF = "PDF" 779 SVG = "SVG" 780 TEX = "TEX" 781 782 783class Result(StrEnum): 784 """Result is used for the return values of the functions. 785 786 Valid values are: FAILURE, GO, NOPAGES, OVERWRITE, SAVED, STOP, SUCCESS. 787 """ 788 789 FAILURE = "FAILURE" 790 GO = "GO" 791 NOPAGES = "NO_PAGES" 792 OVERWRITE = "OVERWRITE" 793 SAVED = "SAVED" 794 STOP = "STOP" 795 SUCCESS = "SUCCESS" 796 797 798class ShadeType(StrEnum): 799 """ShadeType is used to set the type of shading. 800 801 Valid values are: AXIS_LEFT_RIGHT, AXIS_TOP_BOTTOM, AXIS_LEFT_MIDDLE, AXIS_RIGHT_MIDDLE, AXIS_TOP_MIDDLE, 802 AXIS_BOTTOM_MIDDLE, BALL, BILINEAR, COLORWHEEL, COLORWHEEL_BLACK, COLORWHEEL_WHITE, RADIAL_INNER, 803 RADIAL_OUTER, RADIAL_INNER_OUTER. 804 """ 805 806 AXIS_LEFT_RIGHT = "axis left right" 807 AXIS_TOP_BOTTOM = "axis top bottom" 808 AXIS_LEFT_MIDDLE = "axis left middle" 809 AXIS_RIGHT_MIDDLE = "axis right middle" 810 AXIS_TOP_MIDDLE = "axis top middle" 811 AXIS_BOTTOM_MIDDLE = "axis bottom middle" 812 BALL = "ball" 813 BILINEAR = "bilinear" 814 COLORWHEEL = "color wheel" 815 COLORWHEEL_BLACK = "color wheel black center" 816 COLORWHEEL_WHITE = "color wheel white center" 817 RADIAL_INNER = "radial inner" 818 RADIAL_OUTER = "radial outer" 819 RADIAL_INNER_OUTER = "radial inner outer" 820 821 822# Anchor lines are called sides. 823class Side(StrEnum): 824 """Side is used to with boundary box offset lines. 825 They determine the position of the offset lines. 826 827 Valid values are: BASE, BOTTOM, DIAGONAL1, DIAGONAL2, H_CENTERLINE, LEFT, MID, RIGHT, TOP, V_CENTERLINE. 828 """ 829 830 BASE = "BASE" 831 BOTTOM = "BOTTOM" 832 DIAGONAL1 = "DIAGONAL1" 833 DIAGONAL2 = "DIAGONAL2" 834 H_CENTERLINE = "H_CENTERLINE" 835 LEFT = "LEFT" 836 MID = "MID" 837 RIGHT = "RIGHT" 838 TOP = "TOP" 839 V_CENTERLINE = "V_CENTERLINE" 840 841 842class State(StrEnum): 843 """State is used for modifiers. 844 Not implemented yet. 845 846 Valid values are: INITIAL, PAUSED, RESTARTING, RUNNING, STOPPED. 847 """ 848 849 INITIAL = "INITIAL" 850 PAUSED = "PAUSED" 851 RESTARTING = "RESTARTING" 852 RUNNING = "RUNNING" 853 STOPPED = "STOPPED" 854 855 856class TexLoc(StrEnum): 857 """TexLoc is used to set the location of the TeX related 858 objects. 859 860 Valid values are: DOCUMENT, PICTURE, PREAMBLE, NONE. 861 """ 862 863 DOCUMENT = "DOCUMENT" # BETWEEN \BEGIN{DOCUMENT} AND \BEGIN{TIKZPICTURE} 864 PICTURE = "PICTURE" # AFTER \BEGIN{PICTURE} 865 PREAMBLE = "PREAMBLE" # BEFORE \BEGIN{DOCUMENT} 866 NONE = "NONE" # Anywhere in the picture. 867 868 869class Topology(StrEnum): 870 """Topology is used for geometry classification. 871 872 Valid values are: CLOSED, COLLINEAR, CONGRUENT, FOLDED, INTERSECTING, OPEN, SELF_INTERSECTING, SIMPLE, 873 YJOINT. 874 """ 875 876 CLOSED = "CLOSED" 877 COLLINEAR = "COLLINEAR" 878 CONGRUENT = "CONGRUENT" 879 FOLDED = "FOLDED" 880 INTERSECTING = "INTERSECTING" 881 OPEN = "OPEN" 882 SELF_INTERSECTING = "SELF_INTERSECTING" 883 SIMPLE = "SIMPLE" 884 YJOINT = "YJOINT" 885 886 887class Transformation(StrEnum): 888 """Transformation is used to set the type of a transformation. 889 890 Valid values are: GLIDE, MIRROR, ROTATE, SCALE, SHEAR, TRANSFORM, TRANSLATE. 891 """ 892 893 GLIDE = "GLIDE" 894 MIRROR = "MIRROR" 895 ROTATE = "ROTATE" 896 SCALE = "SCALE" 897 SHEAR = "SHEAR" 898 TRANSFORM = "TRANSFORM" 899 TRANSLATE = "TRANSLATE" 900 901 902class Types(StrEnum): 903 """All objects in simetri.graphics has type and subtype properties. 904 Types are mostly Batch and Shape, and subtypes are listed here. 905 """ 906 907 ANGULAR_DIMENSION = "ANGULAR DIMENSION" 908 ANNOTATION = "ANNOTATION" 909 ARC = "ARC" 910 ARC_ARROW = "ARC_ARROW" 911 ARC_SKETCH = "ARC_SKETCH" 912 ARROW = "ARROW" 913 ARROW_HEAD = "ARROW_HEAD" 914 AXIS = "AXIS" 915 BATCH = "BATCH" 916 BATCH_SKETCH = "BATCH_SKETCH" 917 BEZIER = "BEZIER" 918 BEZIER_SKETCH = "BEZIER_SKETCH" 919 BBOX_SKETCH = "BBOX_SKETCH" 920 BOUNDING_BOX = "BOUNDING_BOX" 921 BRACE = "BRACE" 922 CANVAS = "CANVAS" 923 CIRCLE = "CIRCLE" 924 CIRCLE_SKETCH = "CIRCLE_SKETCH" 925 CIRCULAR_GRID = "CIRCULAR_GRID" 926 COLOR = "COLOR" 927 CS = "CS" 928 CURVE = "CURVE" 929 CURVE_SKETCH = "CURVE_SKETCH" 930 DIMENSION = "DIMENSION" 931 DIRECTED = "DIRECTED_GRAPH" 932 DIVISION = "DIVISION" 933 DOT = "DOT" 934 DOTS = "DOTS" 935 EDGE = "EDGE" 936 ELLIPSE = "ELLIPSE" 937 ELLIPSE_SKETCH = "ELLIPSE_SKETCH" 938 ELLIPTIC_ARC = "ELLIPTIC_ARC" 939 FILL_STYLE = "FILL_STYLE" 940 FONT = "FONT" 941 FONT_SKETCH = "FONT_SKETCH" 942 FONT_STYLE = "FONT_STYLE" 943 FRAGMENT = "FRAGMENT" 944 FRAGMENT_SKETCH = "FRAGMENT_SKETCH" 945 FRAME = "FRAME" 946 FRAME_SKETCH = "FRAME_SKETCH" 947 FRAME_STYLE = "FRAME_STYLE" 948 GRADIENT = "GRADIENT" 949 GRID = "GRID" 950 GRID_STYLE = "GRID_STYLE" 951 HANDLE = "HANDLE" 952 HEXAGONAL = "HEXAGONAL" 953 HEX_GRID = "HEX_GRID" 954 ICANVAS = "ICANVAS" 955 INTERSECTION = "INTERSECTION" 956 LABEL = "LABEL" 957 LACE = "LACE" 958 LACESKETCH = "LACE_SKETCH" 959 LINE = "LINE" 960 LINEAR = "LINEAR" 961 LINE_SKETCH = "LINE_SKETCH" 962 LINE_STYLE = "LINE_STYLE" 963 LINPATH = "LINPATH" 964 LOOM = "LOOM" 965 MARKER = "MARKER" 966 MARKER_STYLE = "MARKER_STYLE" 967 MASK = "MASK" 968 MIXED_GRID = "MIXED_GRID" 969 NONE = "NONE" 970 OBLIQUE = "OBLIQUE" 971 OUTLINE = "OUTLINE" 972 OVERLAP = "OVERLAP" 973 PAGE = "PAGE" 974 PAGE_GRID = "PAGE_GRID" 975 PARALLEL_POLYLINE = "PARALLEL_POLYLINE" 976 PART = "PART" 977 PATH_OPERATION = "PATH_OPERATION" 978 PATH_SKETCH = "PATH_SKETCH" 979 PATTERN = "PATTERN" 980 PATTERN_SKETCH = "PATTERN_SKETCH" 981 PATTERN_STYLE = "PATTERN_STYLE" 982 PETAL = "PETAL" 983 PLAIT = "PLAIT" 984 PLAIT_SKETCH = "PLAIT_SKETCH" 985 POINT = "POINT" 986 POINTS = "POINTS" 987 POLYLINE = "POLYLINE" 988 Q_BEZIER = "Q_BEZIER" 989 RADIAL = "RADIAL" 990 RECT_SKETCH = "RECT_SKETCH" 991 RECTANGLE = "RECTANGLE" 992 RECTANGULAR = "RECTANGULAR" 993 REG_POLY = "REGPOLY" 994 REG_POLY_SKETCH = "REGPOLY_SKETCH" 995 REGULAR_POLYGON = "REGULAR_POLYGON" 996 RHOMBIC = "RHOMBIC" 997 SECTION = "SECTION" 998 SEGMENT = "SEGMENT" 999 SEGMENTS = "SEGMENTS" 1000 SHADE_STYLE = "SHADE_STYLE" 1001 SHAPE = "SHAPE" 1002 SHAPE_SKETCH = "SHAPE_SKETCH" 1003 SHAPE_STYLE = "SHAPE_STYLE" 1004 SINE_WAVE = "SINE_WAVE" 1005 SKETCH = "SKETCH" 1006 SKETCH_STYLE = "SKETCH_STYLE" 1007 SQUARE = "SQUARE" 1008 SQUARE_GRID = "SQUARE_GRID" 1009 STAR = "STAR" 1010 STYLE = "STYLE" 1011 SVG_PATH = "SVG_PATH" 1012 SVG_PATH_SKETCH = "SVG_PATH_SKETCH" 1013 TAG = "TAG" 1014 TAG_SKETCH = "TAG_SKETCH" 1015 TAG_STYLE = "TAG_STYLE" 1016 TEX = "TEX" # USED FOR GENERATING OUTPUTFILE.TEX 1017 TEX_SKETCH = "TEX_SKETCH" 1018 TEXT = "TEXT" 1019 TEXTANCHOR = "TEXT_ANCHOR" 1020 TEXT_ANCHOR_LINE = "TEXT_ANCHORLINE" 1021 TEXT_ANCHOR_POINT = "TEXT_ANCHORPOINT" 1022 THREAD = "THREAD" 1023 TRANSFORM = "TRANSFORM" 1024 TRANSFORMATION = "TRANSFORMATION" 1025 TRIANGLE = "TRIANGLE" 1026 TURTLE = "TURTLE" 1027 UNDIRECTED = "UNDIRECTED_GRAPH" 1028 VERTEX = "VERTEX" 1029 WARP = "WARP" 1030 WEFT = "WEFT" 1031 WEIGHTED = "WEIGHTED_GRAPH" 1032 1033 1034drawable_types = [ 1035 Types.ARC, 1036 Types.ARC_ARROW, 1037 Types.ARROW, 1038 Types.ARROW_HEAD, 1039 Types.BATCH, 1040 Types.BEZIER, 1041 Types.BOUNDING_BOX, 1042 Types.CIRCLE, 1043 Types.CIRCULAR_GRID, 1044 Types.DIMENSION, 1045 Types.DIVISION, 1046 Types.DOT, 1047 Types.DOTS, 1048 Types.EDGE, 1049 Types.ELLIPSE, 1050 Types.FRAGMENT, 1051 Types.HEX_GRID, 1052 Types.INTERSECTION, 1053 Types.LACE, 1054 Types.LINPATH, 1055 Types.MIXED_GRID, 1056 Types.OUTLINE, 1057 Types.OVERLAP, 1058 Types.PARALLEL_POLYLINE, 1059 Types.PATTERN, 1060 Types.PLAIT, 1061 Types.POLYLINE, 1062 Types.Q_BEZIER, 1063 Types.RECTANGLE, 1064 Types.SECTION, 1065 Types.SEGMENT, 1066 Types.SHAPE, 1067 Types.SINE_WAVE, 1068 Types.SQUARE_GRID, 1069 Types.STAR, 1070 Types.SVG_PATH, 1071 Types.TAG, 1072 Types.TURTLE, 1073] 1074 1075shape_types = [ 1076 Types.ARC, 1077 Types.ARROW_HEAD, 1078 Types.BEZIER, 1079 Types.BRACE, 1080 Types.CIRCLE, 1081 Types.CURVE, 1082 Types.DIVISION, 1083 Types.ELLIPSE, 1084 Types.FRAME, 1085 Types.INTERSECTION, 1086 Types.LINE, 1087 Types.POLYLINE, 1088 Types.Q_BEZIER, 1089 Types.SECTION, 1090 Types.SHAPE, 1091 Types.SINE_WAVE, 1092] 1093 1094batch_types = [ 1095 Types.ANGULAR_DIMENSION, 1096 Types.ANNOTATION, 1097 Types.ARC_ARROW, 1098 Types.ARROW, 1099 Types.BATCH, 1100 Types.CIRCULAR_GRID, 1101 Types.DIMENSION, 1102 Types.DOTS, 1103 Types.HEX_GRID, 1104 Types.LACE, 1105 Types.LINPATH, 1106 Types.MARKER, 1107 Types.MIXED_GRID, 1108 Types.OVERLAP, 1109 Types.PARALLEL_POLYLINE, 1110 Types.PATTERN, 1111 Types.SQUARE_GRID, 1112 Types.STAR, 1113 Types.SVG_PATH, 1114 Types.TURTLE, 1115] 1116 1117# Python Version 3.9 cannot handle Union[*drawable_types] 1118Drawable: TypeAlias = Union[ 1119 Types.ARC, 1120 Types.ARC_ARROW, 1121 Types.ARROW, 1122 Types.ARROW_HEAD, 1123 Types.BATCH, 1124 Types.CIRCLE, 1125 Types.CIRCULAR_GRID, 1126 Types.DIMENSION, 1127 Types.DOT, 1128 Types.DOTS, 1129 Types.EDGE, 1130 Types.ELLIPSE, 1131 Types.FRAGMENT, 1132 Types.HEX_GRID, 1133 Types.INTERSECTION, 1134 Types.LACE, 1135 Types.LINPATH, 1136 Types.MIXED_GRID, 1137 Types.OUTLINE, 1138 Types.OVERLAP, 1139 Types.PARALLEL_POLYLINE, 1140 Types.PATTERN, 1141 Types.PLAIT, 1142 Types.POLYLINE, 1143 Types.RECTANGLE, 1144 Types.SECTION, 1145 Types.SEGMENT, 1146 Types.SHAPE, 1147 Types.SINE_WAVE, 1148 Types.SQUARE_GRID, 1149 Types.STAR, 1150 Types.SVG_PATH, 1151 Types.TAG, 1152 Types.TURTLE, 1153] 1154 1155 1156anchors = [ 1157 "southeast", 1158 "southwest", 1159 "northeast", 1160 "northwest", 1161 "south", 1162 "north", 1163 "east", 1164 "west", 1165 "center", 1166 "midpoint", 1167 "left", 1168 "right", 1169 "top", 1170 "bottom", 1171 "diagonal1", 1172 "diagonal2", 1173 "horiz_centerline", 1174 "vert_centerline", 1175 "left_of", 1176 "right_of", 1177 "above", 1178 "below", 1179 "above_left", 1180 "above_right", 1181 "below_left", 1182 "below_right", 1183 "centered", 1184 "polar_pos", 1185 "s", 1186 "n", 1187 "e", 1188 "w", 1189 "sw", 1190 "se", 1191 "nw", 1192 "ne", 1193 "c", 1194 "d1", 1195 "d", 1196 "corners", 1197 "all_anchors", 1198 "width", 1199 "height", 1200]
9def get_enum_value(enum_class: StrEnum, value: str) -> str: 10 """Get the value of an enumeration.""" 11 if isinstance(value, enum_class): 12 res = value.value 13 else: 14 res = enum_class[value.upper()].value 15 16 return res
Get the value of an enumeration.
19class Align(StrEnum): 20 """Align is used to set the alignment of the text in tags. 21 Used for Tag and Text objects. This is based on TikZ. 22 23 Valid values are: NONE, CENTER, FLUSH_CENTER, FLUSH_LEFT, FLUSH_RIGHT, JUSTIFY, LEFT, RIGHT. 24 """ 25 26 NONE = "" 27 CENTER = "center" 28 FLUSH_CENTER = "flush center" 29 FLUSH_LEFT = "flush left" 30 FLUSH_RIGHT = "flush right" 31 JUSTIFY = "justify" 32 LEFT = "left" 33 RIGHT = "right"
Align is used to set the alignment of the text in tags. Used for Tag and Text objects. This is based on TikZ.
Valid values are: NONE, CENTER, FLUSH_CENTER, FLUSH_LEFT, FLUSH_RIGHT, JUSTIFY, LEFT, RIGHT.
38class Anchor(StrEnum): 39 """Anchor is used to set the anchor point of the shapes 40 relative to the boundary box of shapes/batches or 41 frames of tag objects. 42 43 Valid values are: BASE, BASE_EAST, BASE_WEST, BOTTOM, CENTER, EAST, LEFT, MID, MIDEAST, MIDWEST, NORTH, 44 NORTHEAST, NORTHWEST, RIGHT, SOUTH, SOUTHEAST, SOUTHWEST, TEXT, TOP, WEST. 45 """ 46 47 BASE = "base" # FOR TAGS ONLY 48 BASE_EAST = "base east" # FOR TAGS ONLY 49 BASE_WEST = "base west" # FOR TAGS ONLY 50 BOTTOM = "bottom" 51 MIDPOINT = "midpoint" 52 EAST = "east" 53 LEFT = "left" 54 CENTER = "center" 55 MID = "mid" 56 MIDEAST = "mid east" 57 MIDWEST = "mid west" 58 NORTH = "north" 59 NORTHEAST = "north east" 60 NORTHWEST = "north west" 61 RIGHT = "right" 62 SOUTH = "south" 63 SOUTHEAST = "south east" 64 SOUTHWEST = "south west" 65 TEXT = "text" 66 TOP = "top" 67 WEST = "west"
Anchor is used to set the anchor point of the shapes relative to the boundary box of shapes/batches or frames of tag objects.
Valid values are: BASE, BASE_EAST, BASE_WEST, BOTTOM, CENTER, EAST, LEFT, MID, MIDEAST, MIDWEST, NORTH, NORTHEAST, NORTHWEST, RIGHT, SOUTH, SOUTHEAST, SOUTHWEST, TEXT, TOP, WEST.
70class ArrowLine(StrEnum): 71 """ArrowLine is used to set the type of arrow line. 72 73 Valid values are: FLATBASE_END, FLATBASE_MIDDLE, FLATBASE_START, FLATBOTH_END, FLATBOTH_MIDDLE, 74 FLATBOTH_START, FLATTOP_END, FLATTOP_MIDDLE, FLATTOP_START, STRAIGHT_END, STRAIGHT_MIDDLE, STRAIGHT_START. 75 """ 76 77 FLATBASE_END = "flatbase end" # FLAT BASE, ARROW AT THE END 78 FLATBASE_MIDDLE = "flatbase middle" # FLAT BASE, ARROW AT THE MIDDLE 79 FLATBASE_START = "flatbase start" # FLAT BASE, ARROW AT THE START 80 FLATBOTH_END = "flatboth end" 81 FLATBOTH_MIDDLE = "flatboth middle" 82 FLATBOTH_START = "flatboth start" 83 FLATTOP_END = "flattop end" # FLAT TOP, ARROW AT THE END 84 FLATTOP_MIDDLE = "flattop middle" 85 FLATTOP_START = "flattop start" 86 STRAIGHT_END = "straight end" # DEFAULT, STRAIGHT LINE, ARROW AT THE END 87 STRAIGHT_MIDDLE = "straight middle" # STRAIGHT LINE, ARROW AT THE MIDDLE 88 STRAIGHT_START = "straight start" # STRAIGHT LINE, ARROW AT THE START
ArrowLine is used to set the type of arrow line.
Valid values are: FLATBASE_END, FLATBASE_MIDDLE, FLATBASE_START, FLATBOTH_END, FLATBOTH_MIDDLE, FLATBOTH_START, FLATTOP_END, FLATTOP_MIDDLE, FLATTOP_START, STRAIGHT_END, STRAIGHT_MIDDLE, STRAIGHT_START.
91class Axis(StrEnum): 92 """Cartesian coordinate system axes. 93 94 Valid values are: X, Y. 95 """ 96 97 X = "x" 98 Y = "y"
Cartesian coordinate system axes.
Valid values are: X, Y.
102class BackStyle(StrEnum): 103 """BackStyle is used to set the background style of a shape or tag. 104 If shape.fill is True, then background will be drawn according to 105 the shape.back_style value. 106 107 Valid values are: COLOR, COLOR_AND_GRID, EMPTY, GRIDLINES, PATTERN, SHADING, SHADING_AND_GRID. 108 """ 109 110 COLOR = "COLOR" 111 COLOR_AND_GRID = "COLOR_AND_GRID" 112 EMPTY = "EMPTY" 113 GRIDLINES = "GRIDLINES" 114 PATTERN = "PATTERN" 115 SHADING = "SHADING" 116 SHADING_AND_GRID = "SHADING_AND_GRID"
BackStyle is used to set the background style of a shape or tag. If shape.fill is True, then background will be drawn according to the shape.back_style value.
Valid values are: COLOR, COLOR_AND_GRID, EMPTY, GRIDLINES, PATTERN, SHADING, SHADING_AND_GRID.
119class BlendMode(StrEnum): 120 """BlendMode is used to set the blend mode of the colors. 121 122 Valid values are: COLOR, COLORBURN, COLORDODGE, DARKEN, DIFFERENCE, EXCLUSION, HARDLIGHT, HUE, LIGHTEN, 123 LUMINOSITY, MULTIPLY, NORMAL, OVERLAY, SATURATION, SCREEN, SOFTLIGHT. 124 """ 125 126 COLOR = "color" 127 COLORBURN = "colorburn" 128 COLORDODGE = "colordodge" 129 DARKEN = "darken" 130 DIFFERENCE = "difference" 131 EXCLUSION = "exclusion" 132 HARDLIGHT = "hardlight" 133 HUE = "hue" 134 LIGHTEN = "lighten" 135 LUMINOSITY = "luminosity" 136 MULTIPLY = "multiply" 137 NORMAL = "normal" 138 OVERLAY = "overlay" 139 SATURATION = "saturation" 140 SCREEN = "screen" 141 SOFTLIGHT = "softlight"
BlendMode is used to set the blend mode of the colors.
Valid values are: COLOR, COLORBURN, COLORDODGE, DARKEN, DIFFERENCE, EXCLUSION, HARDLIGHT, HUE, LIGHTEN, LUMINOSITY, MULTIPLY, NORMAL, OVERLAY, SATURATION, SCREEN, SOFTLIGHT.
144class ColorSpace(StrEnum): 145 """ColorSpace is used to set the color space of the colors. 146 147 Valid values are: CMYK, GRAY, HCL, HLS, HSV, LAB, RGB, YIQ. 148 """ 149 150 CMYK = "CMYK" 151 GRAY = "GRAY" 152 HCL = "HCL" 153 HLS = "HLS" 154 HSV = "HSV" 155 LAB = "LAB" 156 RGB = "RGB" 157 YIQ = "YIQ"
ColorSpace is used to set the color space of the colors.
Valid values are: CMYK, GRAY, HCL, HLS, HSV, LAB, RGB, YIQ.
160class Connection(StrEnum): 161 """Connection is used for identifying how two line segments are related 162 to each other. Intersection check uses some of these values. 163 164 Valid values are: CHAIN, COINCIDENT, COLL_CHAIN, CONGRUENT, CONTAINS, COVERS, DISJOINT, END_END, END_START, 165 FLIPPED, INTERSECT, NONE, OVERLAPS, PARALLEL, START_END, START_START, TOUCHES, WITHIN, YJOINT. 166 """ 167 168 CHAIN = "CHAIN" 169 COINCIDENT = "COINCIDENT" 170 COLL_CHAIN = "COLL_CHAIN" 171 CONGRUENT = "CONGRUENT" 172 CONTAINS = "CONTAINS" 173 COVERS = "COVERS" 174 DISJOINT = "DISJOINT" 175 END_END = "END_END" 176 END_START = "END_START" 177 FLIPPED = "FLIPPED" 178 INTERSECT = "INTERSECT" 179 NONE = "NONE" 180 OVERLAPS = "OVERLAPS" 181 PARALLEL = "PARALLEL" 182 START_END = "START_END" 183 START_START = "START_START" 184 TOUCHES = "TOUCHES" 185 WITHIN = "WITHIN" 186 YJOINT = "YJOINT"
Connection is used for identifying how two line segments are related to each other. Intersection check uses some of these values.
Valid values are: CHAIN, COINCIDENT, COLL_CHAIN, CONGRUENT, CONTAINS, COVERS, DISJOINT, END_END, END_START, FLIPPED, INTERSECT, NONE, OVERLAPS, PARALLEL, START_END, START_START, TOUCHES, WITHIN, YJOINT.
189class Connector(StrEnum): 190 """Connector is used to set the way connecting lines are drawn. 191 This is not used yet. 192 193 Valid values are: ARC, ARROW_LINE, CURVE, LINE, DOUBLE_LINE, SQUIGLY, ZIGZAG, SQUIGLY_ARROW, ZIGZAG_ARROW, 194 DOUBLE_ARROW, DOUBLE_SQUIGLY. 195 """ 196 197 ARC = "ARC" 198 ARROW_LINE = "ARROW_LINE" 199 CURVE = "CURVE" 200 LINE = "LINE" 201 DOUBLE_LINE = "DOUBLE_LINE" 202 SQUIGLY = "squigly" 203 ZIGZAG = "zigzag" 204 SQUIGLY_ARROW = "squigly_arrow" 205 ZIGZAG_ARROW = "zigzag_arrow" 206 DOUBLE_ARROW = "double_arrow" 207 DOUBLE_SQUIGLY = "double_squigly"
Connector is used to set the way connecting lines are drawn. This is not used yet.
Valid values are: ARC, ARROW_LINE, CURVE, LINE, DOUBLE_LINE, SQUIGLY, ZIGZAG, SQUIGLY_ARROW, ZIGZAG_ARROW, DOUBLE_ARROW, DOUBLE_SQUIGLY.
210class ConstraintType(StrEnum): 211 """Constraint types are used with the 2D geometric constraint solver. 212 213 Valid values are: COLLINEAR, DISTANCE, LINE_ANGLE, PARALLEL, PERPENDICULAR, EQUAL_SIZE, EQUAL_VALUE, 214 INNER_TANGENT, OUTER_TANGENT. 215 """ 216 217 COLLINEAR = "COLLINEAR" 218 DISTANCE = "DISTANCE" 219 LINE_ANGLE = "LINE_ANGLE" 220 PARALLEL = "PARALLEL" 221 PERPENDICULAR = "PERPENDICULAR" 222 EQUAL_SIZE = "EQUAL_SIZE" 223 EQUAL_VALUE = "EQUAL_VALUE" 224 INNER_TANGENT = "INNER_TANGENT" 225 OUTER_TANGENT = "OUTER_TANGENT"
Constraint types are used with the 2D geometric constraint solver.
Valid values are: COLLINEAR, DISTANCE, LINE_ANGLE, PARALLEL, PERPENDICULAR, EQUAL_SIZE, EQUAL_VALUE, INNER_TANGENT, OUTER_TANGENT.
228class Compiler(StrEnum): 229 """Used for the LaTeX compiler. 230 Currently, only XELATEX is used. 231 232 Valid values are: LATEX, PDFLATEX, XELATEX, LUALATEX. 233 """ 234 235 LATEX = "LATEX" 236 PDFLATEX = "PDFLATEX" 237 XELATEX = "XELATEX" 238 LUALATEX = "LUALATEX"
Used for the LaTeX compiler. Currently, only XELATEX is used.
Valid values are: LATEX, PDFLATEX, XELATEX, LUALATEX.
241class Control(StrEnum): 242 """Used with the modifiers. 243 244 Valid values are: INITIAL, PAUSE, RESTART, RESUME, STOP. 245 """ 246 247 INITIAL = "INITIAL" 248 PAUSE = "PAUSE" 249 RESTART = "RESTART" 250 RESUME = "RESUME" 251 STOP = "STOP"
Used with the modifiers.
Valid values are: INITIAL, PAUSE, RESTART, RESUME, STOP.
254class Conway(StrEnum): 255 """Frieze groups in Conway notation. 256 257 Valid values are: HOP, JUMP, SIDLE, SPINNING_HOP, SPINNING_JUMP, SPINNING_SIDLE, STEP. 258 """ 259 260 HOP = "HOP" 261 JUMP = "JUMP" 262 SIDLE = "SIDLE" 263 SPINNING_HOP = "SPINNING_HOP" 264 SPINNING_JUMP = "SPINNING_JUMP" 265 SPINNING_SIDLE = "SPINNING_SIDLE" 266 STEP = "STEP"
Frieze groups in Conway notation.
Valid values are: HOP, JUMP, SIDLE, SPINNING_HOP, SPINNING_JUMP, SPINNING_SIDLE, STEP.
269class CurveMode(StrEnum): 270 """CurveMode is used to set how arc objects are drawn. 271 272 Valid values are: OPEN, CHORD, PIE. 273 """ 274 275 OPEN = "OPEN" 276 CHORD = "CHORD" 277 PIE = "PIE"
CurveMode is used to set how arc objects are drawn.
Valid values are: OPEN, CHORD, PIE.
280class Dep(StrEnum): 281 """Depend may be used in the future to set the dependency of the shapes 282 when they are copied. Dependent copies share the same underlying data. 283 284 Valid values are: FALSE, TRUE, GEOM, STYLE. 285 """ 286 287 FALSE = "FALSE" # Independent 288 TRUE = "TRUE" # Both geometry and style are dependent 289 GEOM = "GEOM" # Only geometry is dependent 290 STYLE = "STYLE" # Only style is dependent
Depend may be used in the future to set the dependency of the shapes when they are copied. Dependent copies share the same underlying data.
Valid values are: FALSE, TRUE, GEOM, STYLE.
293class DocumentClass(StrEnum): 294 """DocumentClass is used to set the class of the LaTeX document. 295 296 Valid values are: ARTICLE, BEAMER, BOOK, IEEETRAN, LETTER, REPORT, SCRARTCL, SLIDES, STANDALONE. 297 """ 298 299 ARTICLE = "article" 300 BEAMER = "beamer" 301 BOOK = "book" 302 IEEETRAN = "ieeetran" 303 LETTER = "letter" 304 REPORT = "report" 305 SCRARTCL = "scrartcl" 306 SLIDES = "slides" 307 STANDALONE = "standalone"
DocumentClass is used to set the class of the LaTeX document.
Valid values are: ARTICLE, BEAMER, BOOK, IEEETRAN, LETTER, REPORT, SCRARTCL, SLIDES, STANDALONE.
310class FillMode(StrEnum): 311 """FillMode is used to set the fill mode of the shape. 312 313 Valid values are: EVENODD, NONZERO. 314 """ 315 316 EVENODD = "even odd" 317 NONZERO = "non zero"
FillMode is used to set the fill mode of the shape.
Valid values are: EVENODD, NONZERO.
320class FontFamily(StrEnum): 321 """FontFamily is used to set the family of the font. 322 323 Valid values are: MONOSPACE, SERIF, SANSSERIF. 324 """ 325 326 MONOSPACE = "monospace" # \ttfamily, \texttt 327 SERIF = "serif" # serif \rmfamily, \textrm 328 SANSSERIF = "sansserif" # \sffamily, \textsf
FontFamily is used to set the family of the font.
Valid values are: MONOSPACE, SERIF, SANSSERIF.
331class FontSize(StrEnum): 332 """FontSize is used to set the size of the font. 333 334 Valid values are: FOOTNOTESIZE, HUGE, HUGE2, LARGE, LARGE2, LARGE3, NORMAL, SCRIPTSIZE, SMALL, TINY. 335 """ 336 337 FOOTNOTESIZE = "footnotesize" 338 HUGE = "huge" # \huge 339 HUGE2 = "Huge" # \Huge 340 LARGE = "large" # \large 341 LARGE2 = "Large" # \Large 342 LARGE3 = "LARGE" # \LARGE 343 NORMAL = "normalsize" # \normalsize 344 SCRIPTSIZE = "scriptsize" # \scriptsize 345 SMALL = "small" # \small 346 TINY = "tiny" # \tiny
FontSize is used to set the size of the font.
Valid values are: FOOTNOTESIZE, HUGE, HUGE2, LARGE, LARGE2, LARGE3, NORMAL, SCRIPTSIZE, SMALL, TINY.
349class FontStretch(StrEnum): 350 """FontStretch is used to set the stretch of the font. 351 These come from LaTeX. 352 353 Valid values are: CONDENSED, EXPANDED, EXTRA_CONDENSED, EXTRA_EXPANDED, NORMAL, SEMI_CONDENSED, 354 SEMI_EXPANDED, ULTRA_CONDENSED, ULTRA_EXPANDED. 355 """ 356 357 CONDENSED = "condensed" 358 EXPANDED = "expanded" 359 EXTRA_CONDENSED = "extracondensed" 360 EXTRA_EXPANDED = "extraexpanded" 361 NORMAL = "normal" 362 SEMI_CONDENSED = "semicondensed" 363 SEMI_EXPANDED = "semiexpanded" 364 ULTRA_CONDENSED = "ultracondensed" 365 ULTRA_EXPANDED = "ultraexpanded"
FontStretch is used to set the stretch of the font. These come from LaTeX.
Valid values are: CONDENSED, EXPANDED, EXTRA_CONDENSED, EXTRA_EXPANDED, NORMAL, SEMI_CONDENSED, SEMI_EXPANDED, ULTRA_CONDENSED, ULTRA_EXPANDED.
368class FontStrike(StrEnum): 369 """FontStrike is used to set the strike of the font. 370 371 Valid values are: OVERLINE, THROUGH, UNDERLINE. 372 """ 373 374 OVERLINE = "overline" 375 THROUGH = "through" 376 UNDERLINE = "underline"
FontStrike is used to set the strike of the font.
Valid values are: OVERLINE, THROUGH, UNDERLINE.
379class FontWeight(StrEnum): 380 """FontWeight is used to set the weight of the font. 381 382 Valid values are: BOLD, MEDIUM, NORMAL. 383 """ 384 385 BOLD = "bold" 386 MEDIUM = "medium" 387 NORMAL = "normal"
FontWeight is used to set the weight of the font.
Valid values are: BOLD, MEDIUM, NORMAL.
390class FrameShape(StrEnum): 391 """FrameShape is used to set the shape of the frame. 392 Frames are used for the tags. 393 394 Valid values are: CIRCLE, DIAMOND, ELLIPSE, FORBIDDEN, PARALLELOGRAM, POLYGON, RECTANGLE, RHOMBUS, 395 SPLITCIRCLE, SQUARE, STAR, TRAPEZOID. 396 """ 397 398 CIRCLE = "circle" 399 DIAMOND = "diamond" 400 ELLIPSE = "ellipse" 401 FORBIDDEN = "forbidden" 402 PARALLELOGRAM = "parallelogram" 403 POLYGON = "polygon" 404 RECTANGLE = "rectangle" 405 RHOMBUS = "rhombus" 406 SPLITCIRCLE = "split circle" 407 SQUARE = "square" 408 STAR = "star" 409 TRAPEZOID = "trapezoid"
FrameShape is used to set the shape of the frame. Frames are used for the tags.
Valid values are: CIRCLE, DIAMOND, ELLIPSE, FORBIDDEN, PARALLELOGRAM, POLYGON, RECTANGLE, RHOMBUS, SPLITCIRCLE, SQUARE, STAR, TRAPEZOID.
412class Graph(StrEnum): 413 """Graph is used to set the type of graph. 414 415 Valid values are: DIRECTED, DIRECTEDWEIGHTED, UNDIRECTED, UNDIRECTEDWEIGHTED. 416 """ 417 418 DIRECTED = "DIRECTED" 419 DIRECTEDWEIGHTED = "DIRECTEDWEIGHTED" 420 UNDIRECTED = "UNDIRECTED" 421 UNDIRECTEDWEIGHTED = "UNDIRECTEDWEIGHTED"
Graph is used to set the type of graph.
Valid values are: DIRECTED, DIRECTEDWEIGHTED, UNDIRECTED, UNDIRECTEDWEIGHTED.
424class GridType(StrEnum): 425 """GridType is used to set the type of grid. 426 Grids are used for creating star patterns. 427 428 Valid values are: CIRCULAR, SQUARE, HEXAGONAL, MIXED. 429 """ 430 431 CIRCULAR = "CIRCULAR" 432 SQUARE = "SQUARE" 433 HEXAGONAL = "HEXAGONAL" 434 MIXED = "MIXED" # CIRCULAR + SQUARE
GridType is used to set the type of grid. Grids are used for creating star patterns.
Valid values are: CIRCULAR, SQUARE, HEXAGONAL, MIXED.
438class HeadPos(StrEnum): 439 """Arrow head positions. 440 441 Valid values are: BOTH, END, MIDDLE, START, NONE. 442 """ 443 444 BOTH = "BOTH" 445 END = "END" 446 MIDDLE = "MIDDLE" 447 START = "START" 448 NONE = "NONE"
Arrow head positions.
Valid values are: BOTH, END, MIDDLE, START, NONE.
451class IUC(StrEnum): 452 """IUC notation for frieze groups. 453 454 Valid values are: P1, P11G, P11M, P1M1, P2, P2MG, P2MM. 455 """ 456 457 P1 = "P1" 458 P11G = "P11G" 459 P11M = "P11M" 460 P1M1 = "P1M1" 461 P2 = "P2" 462 P2MG = "P2MG" 463 P2MM = "P2MM"
IUC notation for frieze groups.
Valid values are: P1, P11G, P11M, P1M1, P2, P2MG, P2MM.
466class LineCap(StrEnum): 467 """LineCap is used to set the type of line cap. 468 469 Valid values are: BUTT, ROUND, SQUARE. 470 """ 471 472 BUTT = "butt" 473 ROUND = "round" 474 SQUARE = "square"
LineCap is used to set the type of line cap.
Valid values are: BUTT, ROUND, SQUARE.
477class LineDashArray(StrEnum): 478 """LineDashArray is used to set the type of dashed-line. 479 480 Valid values are: DASHDOT, DASHDOTDOT, DASHED, DENSELY_DASHED, DENSELY_DOTTED, DOTTED, LOOSELY_DASHED, 481 LOOSELY_DOTTED, SOLID. 482 """ 483 484 DASHDOT = "dash dot" 485 DASHDOTDOT = "dash dot dot" 486 DASHED = "dashed" 487 DENSELY_DASHED = "densely dashed" 488 DENSELY_DOTTED = "densely dotted" 489 DOTTED = "dotted" 490 LOOSELY_DASHED = "loosely dashed" 491 LOOSELY_DOTTED = "loosely dotted" 492 SOLID = "solid"
LineDashArray is used to set the type of dashed-line.
Valid values are: DASHDOT, DASHDOTDOT, DASHED, DENSELY_DASHED, DENSELY_DOTTED, DOTTED, LOOSELY_DASHED, LOOSELY_DOTTED, SOLID.
495class LineJoin(StrEnum): 496 """LineJoin is used to set the type of line join. 497 498 Valid values are: BEVEL, MITER, ROUND. 499 """ 500 501 BEVEL = "bevel" 502 MITER = "miter" 503 ROUND = "round"
LineJoin is used to set the type of line join.
Valid values are: BEVEL, MITER, ROUND.
506class LineWidth(StrEnum): 507 """LineWidth is used to set the width of the line. 508 509 Valid values are: SEMITHICK, THICK, THIN, ULTRA_THICK, ULTRA_THIN, VERY_THICK, VERY_THIN. 510 """ 511 512 SEMITHICK = "semithick" 513 THICK = "thick" 514 THIN = "thin" 515 ULTRA_THICK = "ultra thick" 516 ULTRA_THIN = "ultra thin" 517 VERY_THICK = "very thick" 518 VERY_THIN = "very thin"
LineWidth is used to set the width of the line.
Valid values are: SEMITHICK, THICK, THIN, ULTRA_THICK, ULTRA_THIN, VERY_THICK, VERY_THIN.
521class MarkerPos(StrEnum): 522 """MarkerPos is used to set the position of the marker. 523 524 Valid values are: CONCAVEHULL, CONVEXHULL, MAINX, OFFSETX. 525 """ 526 527 CONCAVEHULL = "CONCAVEHULL" 528 CONVEXHULL = "CONVEXHULL" 529 MAINX = "MAINX" 530 OFFSETX = "OFFSETX"
MarkerPos is used to set the position of the marker.
Valid values are: CONCAVEHULL, CONVEXHULL, MAINX, OFFSETX.
533class MarkerType(StrEnum): 534 """MarkerType is used to set the type of marker. 535 536 Valid values are: ASTERISK, BAR, CIRCLE, CROSS, DIAMOND, DIAMOND_F, EMPTY, FCIRCLE, HALF_CIRCLE, 537 HALF_CIRCLE_F, HALF_DIAMOND, HALF_DIAMOND_F, HALF_SQUARE, HALF_SQUARE_F, HEXAGON, HEXAGON_F, INDICES, 538 MINUS, OPLUS, OPLUS_F, O_TIMES, O_TIMES_F, PENTAGON, PENTAGON_F, PLUS, SQUARE, SQUARE_F, STAR, STAR2, 539 STAR3, TEXT, TRIANGLE, TRIANGLE_F. 540 """ 541 542 ASTERISK = "asterisk" 543 BAR = "|" 544 CIRCLE = "o" 545 CROSS = "x" 546 DIAMOND = "diamond" 547 DIAMOND_F = "diamond*" 548 EMPTY = "" 549 FCIRCLE = "*" 550 HALF_CIRCLE = "halfcircle" 551 HALF_CIRCLE_F = "halfcircle*" 552 HALF_DIAMOND = "halfdiamond" 553 HALF_DIAMOND_F = "halfdiamond*" 554 HALF_SQUARE = "halfsquare" 555 HALF_SQUARE_F = "halfsquare*" 556 HEXAGON = "hexagon" 557 HEXAGON_F = "hexagon*" 558 INDICES = "indices" 559 MINUS = "-" 560 OPLUS = "oplus" 561 OPLUS_F = "oplus*" 562 O_TIMES = "otimes" 563 O_TIMES_F = "otimes*" 564 PENTAGON = "pentagon" 565 PENTAGON_F = "pentagon*" 566 PLUS = "+" 567 SQUARE = "square" 568 SQUARE_F = "square*" 569 STAR = "star" 570 STAR2 = "star2" 571 STAR3 = "star3" 572 TEXT = "text" 573 TRIANGLE = "triangle" 574 TRIANGLE_F = "triangle*"
MarkerType is used to set the type of marker.
Valid values are: ASTERISK, BAR, CIRCLE, CROSS, DIAMOND, DIAMOND_F, EMPTY, FCIRCLE, HALF_CIRCLE, HALF_CIRCLE_F, HALF_DIAMOND, HALF_DIAMOND_F, HALF_SQUARE, HALF_SQUARE_F, HEXAGON, HEXAGON_F, INDICES, MINUS, OPLUS, OPLUS_F, O_TIMES, O_TIMES_F, PENTAGON, PENTAGON_F, PLUS, SQUARE, SQUARE_F, STAR, STAR2, STAR3, TEXT, TRIANGLE, TRIANGLE_F.
577class MusicScale(StrEnum): 578 """MusicScale is used for musical note scales. 579 This is used for audio generation for animations. 580 Not implemented yet!!! 581 582 Valid values are: MAJOR, MINOR, CHROMATIC, PENTATONIC, IONIC, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, 583 AEOLIAN, LOCRIAN. 584 """ 585 586 MAJOR = "major" 587 MINOR = "minor" 588 CHROMATIC = "chromatic" 589 PENTATONIC = "pentatonic" 590 IONIC = "ionic" 591 DORIAN = "dorian" 592 PHRYGIAN = "phrygian" 593 LYDIAN = "lydian" 594 MIXOLYDIAN = "mixolydian" 595 AEOLIAN = "aeolian" 596 LOCRIAN = "locrian"
MusicScale is used for musical note scales. This is used for audio generation for animations. Not implemented yet!!!
Valid values are: MAJOR, MINOR, CHROMATIC, PENTATONIC, IONIC, DORIAN, PHRYGIAN, LYDIAN, MIXOLYDIAN, AEOLIAN, LOCRIAN.
599class Orientation(StrEnum): 600 """Orientation is used to set the orientation of the dimension 601 lines. 602 603 Valid values are: ANGLED, HORIZONTAL, VERTICAL. 604 """ 605 606 ANGLED = "ANGLED" 607 HORIZONTAL = "HORIZONTAL" 608 VERTICAL = "VERTICAL"
Orientation is used to set the orientation of the dimension lines.
Valid values are: ANGLED, HORIZONTAL, VERTICAL.
611class PageMargins(StrEnum): 612 """Page margins for the LaTeX documents. 613 Used in Page class. 614 615 Valid values are: CUSTOM, NARROW, STANDARD, WIDE. 616 """ 617 618 CUSTOM = "custom" 619 NARROW = "narrow" 620 STANDARD = "standard" 621 WIDE = "wide"
Page margins for the LaTeX documents. Used in Page class.
Valid values are: CUSTOM, NARROW, STANDARD, WIDE.
624class PageNumbering(StrEnum): 625 """Page numbering style for the LaTeX documents. 626 Used in Page class. 627 628 Valid values are: ALPH, ALPHUPPER, ARABIC, NONE, ROMAN, ROMAN_UPPER. 629 """ 630 631 ALPH = "alph" 632 ALPHUPPER = "ALPH" 633 ARABIC = "arabic" 634 NONE = "none" 635 ROMAN = "roman" 636 ROMAN_UPPER = "ROMAN"
Page numbering style for the LaTeX documents. Used in Page class.
Valid values are: ALPH, ALPHUPPER, ARABIC, NONE, ROMAN, ROMAN_UPPER.
639class PageNumberPosition(StrEnum): 640 """Page number positions for the LaTeX documents. 641 Used in Page class. 642 643 Valid values are: BOTTOM_CENTER, BOTTOM_LEFT, BOTTOM_RIGHT, CUSTOM, TOP_CENTER, TOP_LEFT, TOP_RIGHT. 644 """ 645 646 BOTTOM_CENTER = "bottom" 647 BOTTOM_LEFT = "bottom left" 648 BOTTOM_RIGHT = "bottom right" 649 CUSTOM = "custom" 650 TOP_CENTER = "top" 651 TOP_LEFT = "top left" 652 TOP_RIGHT = "top right"
Page number positions for the LaTeX documents. Used in Page class.
Valid values are: BOTTOM_CENTER, BOTTOM_LEFT, BOTTOM_RIGHT, CUSTOM, TOP_CENTER, TOP_LEFT, TOP_RIGHT.
655class PageOrientation(StrEnum): 656 """Page orientations for the LaTeX documents. 657 Used in Page class. 658 659 Valid values are: LANDSCAPE, PORTRAIT. 660 """ 661 662 LANDSCAPE = "landscape" 663 PORTRAIT = "portrait"
Page orientations for the LaTeX documents. Used in Page class.
Valid values are: LANDSCAPE, PORTRAIT.
666class PageSize(StrEnum): 667 """Page sizes for the LaTeX documents. 668 Used in Page class. 669 670 Valid values are: LETTER, LEGAL, EXECUTIVE, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, 671 A0, A1, A2, A3, A4, A5, A6. 672 """ 673 674 LETTER = "letterpaper" 675 LEGAL = "legalpaper" 676 EXECUTIVE = "executivepaper" 677 B0 = "b0paper" 678 B1 = "b1paper" 679 B2 = "b2paper" 680 B3 = "b3paper" 681 B4 = "b4paper" 682 B5 = "b5paper" 683 B6 = "b6paper" 684 B7 = "b7paper" 685 B8 = "b8paper" 686 B9 = "b9paper" 687 B10 = "b10paper" 688 B11 = "b11paper" 689 B12 = "b12paper" 690 B13 = "b13paper" 691 A0 = "a0paper" 692 A1 = "a1paper" 693 A2 = "a2paper" 694 A3 = "a3paper" 695 A4 = "a4paper" 696 A5 = "a5paper" 697 A6 = "a6paper"
Page sizes for the LaTeX documents. Used in Page class.
Valid values are: LETTER, LEGAL, EXECUTIVE, B0, B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, A0, A1, A2, A3, A4, A5, A6.
700class PathOperation(StrEnum): 701 """PathOperation is used to set the type of path operation. 702 Used with LinPath objects. 703 704 Valid values are: ARC, ARC_TO, BLEND_ARC, BLEND_CUBIC, BLEND_QUAD, BLEND_SINE, CLOSE, CUBIC_TO, FORWARD, 705 HOBBY_TO, H_LINE, LINE_TO, MOVE_TO, QUAD_TO, R_LINE, R_MOVE, SEGMENTS, SINE, V_LINE. 706 """ 707 708 ARC = "ARC" 709 ARC_TO = "ARC_TO" 710 BLEND_ARC = "BLEND_ARC" 711 BLEND_CUBIC = "BLEND_CUBIC" 712 BLEND_QUAD = "BLEND_QUAD" 713 BLEND_SINE = "BLEND_SINE" 714 CLOSE = "CLOSE" 715 CUBIC_TO = "CUBIC_TO" 716 FORWARD = "FORWARD" 717 HOBBY_TO = "HOBBY_TO" 718 H_LINE = "H_LINE" 719 LINE_TO = "LINE_TO" 720 MOVE_TO = "MOVE_TO" 721 QUAD_TO = "QUAD_TO" 722 R_LINE = "RLINE" 723 R_MOVE = "RMOVE" 724 SEGMENTS = "SEGMENTS" 725 SINE = "SINE" 726 V_LINE = "V_LINE"
PathOperation is used to set the type of path operation. Used with LinPath objects.
Valid values are: ARC, ARC_TO, BLEND_ARC, BLEND_CUBIC, BLEND_QUAD, BLEND_SINE, CLOSE, CUBIC_TO, FORWARD, HOBBY_TO, H_LINE, LINE_TO, MOVE_TO, QUAD_TO, R_LINE, R_MOVE, SEGMENTS, SINE, V_LINE.
729class PatternType(StrEnum): 730 """PatternType is used to set the type of pattern. 731 Used with closed shapes and Tag objects. 732 733 Valid values are: BRICKS, CHECKERBOARD, CROSSHATCH, CROSSHATCH_DOTS, DOTS, FIVE_POINTED_STARS, GRID, 734 HORIZONTAL_LINES, NORTHEAST, NORTHWEST, SIX_POINTED_STARS, VERTICAL_LINES. 735 """ 736 737 BRICKS = "bricks" 738 CHECKERBOARD = "checkerboard" 739 CROSSHATCH = "crosshatch" 740 CROSSHATCH_DOTS = "crosshatch dots" 741 DOTS = "dots" 742 FIVE_POINTED_STARS = "fivepointed stars" 743 GRID = "grid" 744 HORIZONTAL_LINES = "horizontal lines" 745 NORTHEAST = "north east lines" 746 NORTHWEST = "north west lines" 747 SIX_POINTED_STARS = "sixpointed stars" 748 VERTICAL_LINES = "vertical lines"
PatternType is used to set the type of pattern. Used with closed shapes and Tag objects.
Valid values are: BRICKS, CHECKERBOARD, CROSSHATCH, CROSSHATCH_DOTS, DOTS, FIVE_POINTED_STARS, GRID, HORIZONTAL_LINES, NORTHEAST, NORTHWEST, SIX_POINTED_STARS, VERTICAL_LINES.
751class Placement(StrEnum): 752 """Placement is used to set the placement of the tags 753 relative to another object. 754 755 Valid values are: ABOVE, ABOVE_LEFT, ABOVE_RIGHT, BELOW, BELOW_LEFT, BELOW_RIGHT, CENTERED, INSIDE, 756 LEFT, OUTSIDE, RIGHT. 757 """ 758 759 ABOVE = "above" 760 ABOVE_LEFT = "above left" 761 ABOVE_RIGHT = "above right" 762 BELOW = "below" 763 BELOW_LEFT = "below left" 764 BELOW_RIGHT = "below right" 765 CENTERED = "centered" 766 INSIDE = "inside" 767 LEFT = "left" 768 OUTSIDE = "outside" 769 RIGHT = "right"
Placement is used to set the placement of the tags relative to another object.
Valid values are: ABOVE, ABOVE_LEFT, ABOVE_RIGHT, BELOW, BELOW_LEFT, BELOW_RIGHT, CENTERED, INSIDE, LEFT, OUTSIDE, RIGHT.
772class Render(StrEnum): 773 """Render is used to set the type of rendering. 774 775 Valid values are: EPS, PDF, SVG, TEX. 776 """ 777 778 EPS = "EPS" 779 PDF = "PDF" 780 SVG = "SVG" 781 TEX = "TEX"
Render is used to set the type of rendering.
Valid values are: EPS, PDF, SVG, TEX.
784class Result(StrEnum): 785 """Result is used for the return values of the functions. 786 787 Valid values are: FAILURE, GO, NOPAGES, OVERWRITE, SAVED, STOP, SUCCESS. 788 """ 789 790 FAILURE = "FAILURE" 791 GO = "GO" 792 NOPAGES = "NO_PAGES" 793 OVERWRITE = "OVERWRITE" 794 SAVED = "SAVED" 795 STOP = "STOP" 796 SUCCESS = "SUCCESS"
Result is used for the return values of the functions.
Valid values are: FAILURE, GO, NOPAGES, OVERWRITE, SAVED, STOP, SUCCESS.
799class ShadeType(StrEnum): 800 """ShadeType is used to set the type of shading. 801 802 Valid values are: AXIS_LEFT_RIGHT, AXIS_TOP_BOTTOM, AXIS_LEFT_MIDDLE, AXIS_RIGHT_MIDDLE, AXIS_TOP_MIDDLE, 803 AXIS_BOTTOM_MIDDLE, BALL, BILINEAR, COLORWHEEL, COLORWHEEL_BLACK, COLORWHEEL_WHITE, RADIAL_INNER, 804 RADIAL_OUTER, RADIAL_INNER_OUTER. 805 """ 806 807 AXIS_LEFT_RIGHT = "axis left right" 808 AXIS_TOP_BOTTOM = "axis top bottom" 809 AXIS_LEFT_MIDDLE = "axis left middle" 810 AXIS_RIGHT_MIDDLE = "axis right middle" 811 AXIS_TOP_MIDDLE = "axis top middle" 812 AXIS_BOTTOM_MIDDLE = "axis bottom middle" 813 BALL = "ball" 814 BILINEAR = "bilinear" 815 COLORWHEEL = "color wheel" 816 COLORWHEEL_BLACK = "color wheel black center" 817 COLORWHEEL_WHITE = "color wheel white center" 818 RADIAL_INNER = "radial inner" 819 RADIAL_OUTER = "radial outer" 820 RADIAL_INNER_OUTER = "radial inner outer"
ShadeType is used to set the type of shading.
Valid values are: AXIS_LEFT_RIGHT, AXIS_TOP_BOTTOM, AXIS_LEFT_MIDDLE, AXIS_RIGHT_MIDDLE, AXIS_TOP_MIDDLE, AXIS_BOTTOM_MIDDLE, BALL, BILINEAR, COLORWHEEL, COLORWHEEL_BLACK, COLORWHEEL_WHITE, RADIAL_INNER, RADIAL_OUTER, RADIAL_INNER_OUTER.
824class Side(StrEnum): 825 """Side is used to with boundary box offset lines. 826 They determine the position of the offset lines. 827 828 Valid values are: BASE, BOTTOM, DIAGONAL1, DIAGONAL2, H_CENTERLINE, LEFT, MID, RIGHT, TOP, V_CENTERLINE. 829 """ 830 831 BASE = "BASE" 832 BOTTOM = "BOTTOM" 833 DIAGONAL1 = "DIAGONAL1" 834 DIAGONAL2 = "DIAGONAL2" 835 H_CENTERLINE = "H_CENTERLINE" 836 LEFT = "LEFT" 837 MID = "MID" 838 RIGHT = "RIGHT" 839 TOP = "TOP" 840 V_CENTERLINE = "V_CENTERLINE"
Side is used to with boundary box offset lines. They determine the position of the offset lines.
Valid values are: BASE, BOTTOM, DIAGONAL1, DIAGONAL2, H_CENTERLINE, LEFT, MID, RIGHT, TOP, V_CENTERLINE.
843class State(StrEnum): 844 """State is used for modifiers. 845 Not implemented yet. 846 847 Valid values are: INITIAL, PAUSED, RESTARTING, RUNNING, STOPPED. 848 """ 849 850 INITIAL = "INITIAL" 851 PAUSED = "PAUSED" 852 RESTARTING = "RESTARTING" 853 RUNNING = "RUNNING" 854 STOPPED = "STOPPED"
State is used for modifiers. Not implemented yet.
Valid values are: INITIAL, PAUSED, RESTARTING, RUNNING, STOPPED.
857class TexLoc(StrEnum): 858 """TexLoc is used to set the location of the TeX related 859 objects. 860 861 Valid values are: DOCUMENT, PICTURE, PREAMBLE, NONE. 862 """ 863 864 DOCUMENT = "DOCUMENT" # BETWEEN \BEGIN{DOCUMENT} AND \BEGIN{TIKZPICTURE} 865 PICTURE = "PICTURE" # AFTER \BEGIN{PICTURE} 866 PREAMBLE = "PREAMBLE" # BEFORE \BEGIN{DOCUMENT} 867 NONE = "NONE" # Anywhere in the picture.
TexLoc is used to set the location of the TeX related objects.
Valid values are: DOCUMENT, PICTURE, PREAMBLE, NONE.
870class Topology(StrEnum): 871 """Topology is used for geometry classification. 872 873 Valid values are: CLOSED, COLLINEAR, CONGRUENT, FOLDED, INTERSECTING, OPEN, SELF_INTERSECTING, SIMPLE, 874 YJOINT. 875 """ 876 877 CLOSED = "CLOSED" 878 COLLINEAR = "COLLINEAR" 879 CONGRUENT = "CONGRUENT" 880 FOLDED = "FOLDED" 881 INTERSECTING = "INTERSECTING" 882 OPEN = "OPEN" 883 SELF_INTERSECTING = "SELF_INTERSECTING" 884 SIMPLE = "SIMPLE" 885 YJOINT = "YJOINT"
Topology is used for geometry classification.
Valid values are: CLOSED, COLLINEAR, CONGRUENT, FOLDED, INTERSECTING, OPEN, SELF_INTERSECTING, SIMPLE, YJOINT.
888class Transformation(StrEnum): 889 """Transformation is used to set the type of a transformation. 890 891 Valid values are: GLIDE, MIRROR, ROTATE, SCALE, SHEAR, TRANSFORM, TRANSLATE. 892 """ 893 894 GLIDE = "GLIDE" 895 MIRROR = "MIRROR" 896 ROTATE = "ROTATE" 897 SCALE = "SCALE" 898 SHEAR = "SHEAR" 899 TRANSFORM = "TRANSFORM" 900 TRANSLATE = "TRANSLATE"
Transformation is used to set the type of a transformation.
Valid values are: GLIDE, MIRROR, ROTATE, SCALE, SHEAR, TRANSFORM, TRANSLATE.
903class Types(StrEnum): 904 """All objects in simetri.graphics has type and subtype properties. 905 Types are mostly Batch and Shape, and subtypes are listed here. 906 """ 907 908 ANGULAR_DIMENSION = "ANGULAR DIMENSION" 909 ANNOTATION = "ANNOTATION" 910 ARC = "ARC" 911 ARC_ARROW = "ARC_ARROW" 912 ARC_SKETCH = "ARC_SKETCH" 913 ARROW = "ARROW" 914 ARROW_HEAD = "ARROW_HEAD" 915 AXIS = "AXIS" 916 BATCH = "BATCH" 917 BATCH_SKETCH = "BATCH_SKETCH" 918 BEZIER = "BEZIER" 919 BEZIER_SKETCH = "BEZIER_SKETCH" 920 BBOX_SKETCH = "BBOX_SKETCH" 921 BOUNDING_BOX = "BOUNDING_BOX" 922 BRACE = "BRACE" 923 CANVAS = "CANVAS" 924 CIRCLE = "CIRCLE" 925 CIRCLE_SKETCH = "CIRCLE_SKETCH" 926 CIRCULAR_GRID = "CIRCULAR_GRID" 927 COLOR = "COLOR" 928 CS = "CS" 929 CURVE = "CURVE" 930 CURVE_SKETCH = "CURVE_SKETCH" 931 DIMENSION = "DIMENSION" 932 DIRECTED = "DIRECTED_GRAPH" 933 DIVISION = "DIVISION" 934 DOT = "DOT" 935 DOTS = "DOTS" 936 EDGE = "EDGE" 937 ELLIPSE = "ELLIPSE" 938 ELLIPSE_SKETCH = "ELLIPSE_SKETCH" 939 ELLIPTIC_ARC = "ELLIPTIC_ARC" 940 FILL_STYLE = "FILL_STYLE" 941 FONT = "FONT" 942 FONT_SKETCH = "FONT_SKETCH" 943 FONT_STYLE = "FONT_STYLE" 944 FRAGMENT = "FRAGMENT" 945 FRAGMENT_SKETCH = "FRAGMENT_SKETCH" 946 FRAME = "FRAME" 947 FRAME_SKETCH = "FRAME_SKETCH" 948 FRAME_STYLE = "FRAME_STYLE" 949 GRADIENT = "GRADIENT" 950 GRID = "GRID" 951 GRID_STYLE = "GRID_STYLE" 952 HANDLE = "HANDLE" 953 HEXAGONAL = "HEXAGONAL" 954 HEX_GRID = "HEX_GRID" 955 ICANVAS = "ICANVAS" 956 INTERSECTION = "INTERSECTION" 957 LABEL = "LABEL" 958 LACE = "LACE" 959 LACESKETCH = "LACE_SKETCH" 960 LINE = "LINE" 961 LINEAR = "LINEAR" 962 LINE_SKETCH = "LINE_SKETCH" 963 LINE_STYLE = "LINE_STYLE" 964 LINPATH = "LINPATH" 965 LOOM = "LOOM" 966 MARKER = "MARKER" 967 MARKER_STYLE = "MARKER_STYLE" 968 MASK = "MASK" 969 MIXED_GRID = "MIXED_GRID" 970 NONE = "NONE" 971 OBLIQUE = "OBLIQUE" 972 OUTLINE = "OUTLINE" 973 OVERLAP = "OVERLAP" 974 PAGE = "PAGE" 975 PAGE_GRID = "PAGE_GRID" 976 PARALLEL_POLYLINE = "PARALLEL_POLYLINE" 977 PART = "PART" 978 PATH_OPERATION = "PATH_OPERATION" 979 PATH_SKETCH = "PATH_SKETCH" 980 PATTERN = "PATTERN" 981 PATTERN_SKETCH = "PATTERN_SKETCH" 982 PATTERN_STYLE = "PATTERN_STYLE" 983 PETAL = "PETAL" 984 PLAIT = "PLAIT" 985 PLAIT_SKETCH = "PLAIT_SKETCH" 986 POINT = "POINT" 987 POINTS = "POINTS" 988 POLYLINE = "POLYLINE" 989 Q_BEZIER = "Q_BEZIER" 990 RADIAL = "RADIAL" 991 RECT_SKETCH = "RECT_SKETCH" 992 RECTANGLE = "RECTANGLE" 993 RECTANGULAR = "RECTANGULAR" 994 REG_POLY = "REGPOLY" 995 REG_POLY_SKETCH = "REGPOLY_SKETCH" 996 REGULAR_POLYGON = "REGULAR_POLYGON" 997 RHOMBIC = "RHOMBIC" 998 SECTION = "SECTION" 999 SEGMENT = "SEGMENT" 1000 SEGMENTS = "SEGMENTS" 1001 SHADE_STYLE = "SHADE_STYLE" 1002 SHAPE = "SHAPE" 1003 SHAPE_SKETCH = "SHAPE_SKETCH" 1004 SHAPE_STYLE = "SHAPE_STYLE" 1005 SINE_WAVE = "SINE_WAVE" 1006 SKETCH = "SKETCH" 1007 SKETCH_STYLE = "SKETCH_STYLE" 1008 SQUARE = "SQUARE" 1009 SQUARE_GRID = "SQUARE_GRID" 1010 STAR = "STAR" 1011 STYLE = "STYLE" 1012 SVG_PATH = "SVG_PATH" 1013 SVG_PATH_SKETCH = "SVG_PATH_SKETCH" 1014 TAG = "TAG" 1015 TAG_SKETCH = "TAG_SKETCH" 1016 TAG_STYLE = "TAG_STYLE" 1017 TEX = "TEX" # USED FOR GENERATING OUTPUTFILE.TEX 1018 TEX_SKETCH = "TEX_SKETCH" 1019 TEXT = "TEXT" 1020 TEXTANCHOR = "TEXT_ANCHOR" 1021 TEXT_ANCHOR_LINE = "TEXT_ANCHORLINE" 1022 TEXT_ANCHOR_POINT = "TEXT_ANCHORPOINT" 1023 THREAD = "THREAD" 1024 TRANSFORM = "TRANSFORM" 1025 TRANSFORMATION = "TRANSFORMATION" 1026 TRIANGLE = "TRIANGLE" 1027 TURTLE = "TURTLE" 1028 UNDIRECTED = "UNDIRECTED_GRAPH" 1029 VERTEX = "VERTEX" 1030 WARP = "WARP" 1031 WEFT = "WEFT" 1032 WEIGHTED = "WEIGHTED_GRAPH"
All objects in simetri.graphics has type and subtype properties. Types are mostly Batch and Shape, and subtypes are listed here.