Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
eepicgeom.H File Reference

EEPIC/LaTeX geometric drawing utilities. More...

#include <fstream>
#include <tpl_dynDlist.H>
#include <tpl_sort_utils.H>
#include <point.H>
#include <polygon.H>
#include <ah-errors.H>
Include dependency graph for eepicgeom.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Eepic_Geom_Object
 Abstract base class for EEPIC-drawable geometric objects. More...
 
class  Eepic_Plane
 2D canvas for generating EEPIC/LaTeX picture environments. More...
 
class  Eepic_Point
 From here on, the rest of the file defines concrete Eepic_* wrapper classes and their specific drawing behavior. More...
 
class  Eepic_Segment
 
struct  Arrow
 Segment-drawing variants (types). More...
 
class  Eepic_Arrow
 
struct  Thick_Segment
 
class  Eepic_Thick_Segment
 
struct  Thick_Dash_Segment
 
class  Eepic_Thick_Dash_Segment
 
struct  Thick_Arrow
 
class  Eepic_Thick_Arrow
 
struct  Dotted_Segment
 
class  Eepic_Dotted_Segment
 
struct  Dash_Segment
 
class  Eepic_Dash_Segment
 
struct  Dotted_Arrow
 
class  Eepic_Dotted_Arrow
 
struct  Dash_Arrow
 
class  Eepic_Dash_Arrow
 
struct  Thick_Dash_Arrow
 
class  Eepic_Thick_Dash_Arrow
 
class  Eepic_Triangle
 Triangle wrapper. More...
 
class  Eepic_Ellipse
 Ellipse wrapper. More...
 
struct  Shade_Ellipse
 
struct  Thick_Ellipse
 
class  Eepic_Shade_Ellipse
 
class  Eepic_Thick_Ellipse
 
class  Eepic_Text
 
struct  Left_Text
 
struct  Right_Text
 
struct  Center_Text
 
class  Eepic_Left_Text
 
class  Eepic_Right_Text
 
class  Eepic_Center_Text
 
class  Eepic_Polygon
 Polygon wrappers and variants. More...
 
struct  Polygon_With_Points
 
class  Eepic_Polygon_With_Points
 
struct  Polygon_With_Arrows
 
class  Eepic_Polygon_With_Arrows
 
struct  Dotted_Polygon
 
class  Eepic_Dotted_Polygon
 
struct  Dash_Polygon
 
class  Eepic_Dash_Polygon
 
struct  Dotted_Polygon_With_Points
 
class  Eepic_Dotted_Polygon_With_Points
 
struct  Dash_Polygon_With_Points
 
class  Eepic_Dash_Polygon_With_Points
 
struct  Dash_Polygon_With_Arrow
 
class  Eepic_Dash_Polygon_With_Arrow
 
struct  Shade_Polygon
 
class  Eepic_Shade_Polygon
 
struct  Shade_Polygon_With_Points
 
class  Eepic_Shade_Polygon_With_Points
 
struct  Shade_Polygon_With_Arrows
 
class  Eepic_Shade_Polygon_With_Arrows
 
struct  Shade_Polygon_With_Text_Points
 
class  Eepic_Shade_Polygon_With_Text_Points
 
struct  Shade_Polygon_With_Vertex_Numbers
 
class  Eepic_Shade_Polygon_With_Vertex_Numbers
 
struct  Spline
 
class  Eepic_Spline
 
struct  Dash_Spline
 
class  Eepic_Dash_Spline
 
struct  Spline_Arrow
 
class  Eepic_Spline_Arrow
 
struct  Dash_Spline_Arrow
 
class  Eepic_Dash_Spline_Arrow
 
struct  Thick_Polygon_With_Points
 
class  Eepic_Thick_Polygon_With_Points
 
struct  Thick_Polygon_With_Arrows
 
class  Eepic_Thick_Polygon_With_Arrows
 
struct  Thick_Dotted_Polygon
 
class  Eepic_Thick_Dotted_Polygon
 
struct  Thick_Dash_Polygon
 
class  Eepic_Thick_Dash_Polygon
 
struct  Thick_Dotted_Polygon_With_Points
 
class  Eepic_Thick_Dotted_Polygon_With_Points
 
struct  Thick_Dash_Polygon_With_Points
 
class  Eepic_Thick_Dash_Polygon_With_Points
 
struct  Thick_Dash_Polygon_With_Arrow
 
class  Eepic_Thick_Dash_Polygon_With_Arrow
 
struct  Thick_Shade_Polygon
 
class  Eepic_Thick_Shade_Polygon
 
struct  Thick_Shade_Polygon_With_Points
 
class  Eepic_Thick_Shade_Polygon_With_Points
 
struct  Thick_Shade_Polygon_With_Arrows
 
class  Eepic_Thick_Shade_Polygon_With_Arrows
 
struct  Thick_Shade_Polygon_With_Text_Points
 
class  Eepic_Thick_Shade_Polygon_With_Text_Points
 
struct  Thick_Shade_Polygon_With_Vertex_Numbers
 
class  Eepic_Thick_Shade_Polygon_With_Vertex_Numbers
 
struct  Thick_Spline
 
class  Eepic_Thick_Spline
 
struct  Thick_Dash_Spline
 
class  Eepic_Thick_Dash_Spline
 
struct  Thick_Spline_Arrow
 
class  Eepic_Thick_Spline_Arrow
 
struct  Thick_Dash_Spline_Arrow
 
class  Eepic_Thick_Dash_Spline_Arrow
 
class  Eepic_Regular_Polygon
 
struct  Regular_Polygon_With_Points
 
class  Eepic_Regular_Polygon_With_Points
 
struct  Dotted_Regular_Polygon
 
class  Eepic_Dotted_Regular_Polygon
 
struct  Dash_Regular_Polygon
 
class  Eepic_Dash_Regular_Polygon
 
struct  Dotted_Regular_Polygon_With_Points
 
class  Eepic_Dotted_Regular_Polygon_With_Points
 
struct  Dash_Regular_Polygon_With_Points
 
class  Eepic_Dash_Regular_Polygon_With_Points
 
struct  Shade_Regular_Polygon
 
class  Eepic_Shade_Regular_Polygon
 
struct  Shade_Regular_Polygon_With_Points
 
class  Eepic_Shade_Regular_Polygon_With_Points
 
struct  Shade_Regular_Polygon_With_Arrows
 
class  Eepic_Shade_Regular_Polygon_With_Arrows
 
struct  Shade_Regular_Polygon_With_Text_Points
 
class  Eepic_Shade_Regular_Polygon_With_Text_Points
 
struct  Shade_Regular_Polygon_With_Vertex_Numbers
 
class  Eepic_Shade_Regular_Polygon_With_Vertex_Numbers
 

Macros

#define COMPUTE_SEGMENT_EEPIC_COORDENATES()
 
#define DRAW_SEGMENT(sg, output)
 
#define PUT_ARROW()
 
#define DRAW_ARROW(sg, output)
 
#define DRAW_DOTTED_SEGMENT(sg, output)
 
#define DRAW_DASH_SEGMENT(sg, output)
 
#define DRAW_ARROW_DOTTED_SEGMENT(sg, output)
 
#define DRAW_ARROW_DASH_SEGMENT(sg, output)
 
#define DEFINE_EEPIC_COPY_CTOR(Type)    Eepic_##Type(const Type & o) : Eepic_Geom_Object(new Type(o), true) { }
 Generator macros for Eepic_Geom_Object-derived wrapper types.
 
#define DEFINE_EEPIC_COMMON_METHODS(Type)
 Common methods always provided by an Eepic_Type wrapper class.
 
#define DEFINE_EEPIC_COMMON_WITH_COPY_CTOR(Type)
 Common methods plus a copy-constructor that owns a deep copy of the wrapped object.
 
#define DEFINE_EEPIC_COMMON_WITHOUT_COPY_CTOR(Type)
 Common methods, but the copy-constructor is only declared and must be implemented later.
 
#define DEFINE_PUT_IN_PLANE(Type)    extern void put_in_plane(Eepic_Plane & plane, const Type & geom_obj)
 Declare put_in_plane(plane, geom_obj) for a given geometric type.
 
#define IMPL_PUT_IN_PLANE(Type)
 
#define DEFINE_EEPIC_CLASS(Type)
 Fundamental macro to declare a class derived from Eepic_Geom_Object.
 
#define DEFINE_EEPIC_CLASS_AND_MEMBERS(Type, ...)
 
#define DEFINE_CLASS_DERIVATED_FROM_SEGMENT(Name)
 We need several ways of drawing segments.
 
#define DEFINE_EEPIC_SEGMENT_CLASS(Name)
 
#define DEFINE_EEPIC_SEGMENT_CLASS_AND_MEMBERS(Name, ...)
 
#define DEFINE_CLASS_DERIVATED_FROM_ELLIPSE(Name)
 
#define DEFINE_CLASS_DERIVATED_FROM_TEXT(Name)
 Text wrappers.
 
#define DEFINE_CLASS_DERIVATED_FROM_POLYGON(Name)
 
#define DEFINE_EEPIC_POLYGON(Name)
 
#define DEFINE_CLASS_DERIVATED_FROM_REGULAR_POLYGON(Name)
 Regular polygons.
 
#define DEFINE_EEPIC_REGULAR_POLYGON(Name)
 

Functions

void put_in_plane (Eepic_Plane &plane, const Point &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Segment &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Segment &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Dash_Segment &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dotted_Segment &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dash_Segment &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dotted_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dash_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Dash_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Triangle &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Ellipse &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Ellipse &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Ellipse &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Text &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Left_Text &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Right_Text &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Center_Text &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Polygon_With_Arrows &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dotted_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dash_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dotted_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dash_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dash_Polygon_With_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Polygon_With_Arrows &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Polygon_With_Text_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Polygon_With_Vertex_Numbers &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Spline &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dash_Spline &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Spline_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dash_Spline_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Polygon_With_Arrows &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Dotted_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Dash_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Dotted_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Dash_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Dash_Polygon_With_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Shade_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Shade_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Shade_Polygon_With_Arrows &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Shade_Polygon_With_Text_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Shade_Polygon_With_Vertex_Numbers &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Spline &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Dash_Spline &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Spline_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Thick_Dash_Spline_Arrow &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Regular_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Regular_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dotted_Regular_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dash_Regular_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dotted_Regular_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Dash_Regular_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Regular_Polygon &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Regular_Polygon_With_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Regular_Polygon_With_Arrows &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Regular_Polygon_With_Text_Points &geom_obj)
 
void put_in_plane (Eepic_Plane &plane, const Shade_Regular_Polygon_With_Vertex_Numbers &geom_obj)
 

Variables

bool tiny_keys
 Global flag to enable tiny font size for keys/labels.
 

Detailed Description

EEPIC/LaTeX geometric drawing utilities.

This file provides classes for generating EEPIC (Extended EPIC) code for LaTeX documents. EEPIC is a macro package that extends the standard LaTeX picture environment with additional drawing primitives.

The main components are:

  • Eepic_Plane A 2D canvas that holds geometric objects and generates the LaTeX picture environment
  • Eepic_Geom_Object Abstract base class for drawable geometric objects
  • Various Eepic_* wrapper classes for Points, Segments, Polygons, etc.

Usage Example

Eepic_Plane plane(500, 500); // 500x500 point canvas
Point p1(0, 0), p2(100, 100);
Segment seg(p1, p2);
put_in_plane(plane, seg);
std::ofstream file("output.tex");
plane.draw(file);
2D canvas for generating EEPIC/LaTeX picture environments.
Definition eepicgeom.H:250
Rectangular point in the plane.
Definition point.H:156
Fundamental segment defined by two points.
Definition point.H:417
void put_in_plane(Eepic_Plane &plane, const Point &geom_obj)
Definition eepicgeom.C:50
fstream file[12]
Definition treapObs.C:67
Author
Leandro Rabindranath León

Definition in file eepicgeom.H.

Macro Definition Documentation

◆ COMPUTE_SEGMENT_EEPIC_COORDENATES

#define COMPUTE_SEGMENT_EEPIC_COORDENATES ( )
Value:
const double src_x = x_geom_number_to_eepic(sg.get_src_point().get_x()); \
\
const double src_y = y_geom_number_to_eepic(sg.get_src_point().get_y()); \
\
const double tgt_x = x_geom_number_to_eepic(sg.get_tgt_point().get_x()); \
\
const double tgt_y = y_geom_number_to_eepic(sg.get_tgt_point().get_y());
DynList< T > maps(const C &c, Op op)
Classic map operation.

Definition at line 659 of file eepicgeom.H.

◆ DEFINE_CLASS_DERIVATED_FROM_ELLIPSE

#define DEFINE_CLASS_DERIVATED_FROM_ELLIPSE (   Name)
Value:
struct Name : public Ellipse \
{ \
Name() { } \
Name(const Ellipse & p) : Ellipse(p) \
{ \
\
} \
Name(const Point & center, \
const Geom_Number & hr, \
const Geom_Number & vr) \
: Ellipse(center, hr, vr) \
{ \
\
} \
};
long double hr
Definition btreepic.C:149
long double vr
Definition btreepic.C:150
Ellipse()=default

Definition at line 1233 of file eepicgeom.H.

◆ DEFINE_CLASS_DERIVATED_FROM_POLYGON

#define DEFINE_CLASS_DERIVATED_FROM_POLYGON (   Name)
Value:
struct Name : public Polygon \
{ \
Name() { } \
Name(const Polygon & p) : Polygon(p) \
{ \
\
} \
};
A general (irregular) 2D polygon defined by a sequence of vertices.
Definition polygon.H:233

Definition at line 1308 of file eepicgeom.H.

◆ DEFINE_CLASS_DERIVATED_FROM_REGULAR_POLYGON

#define DEFINE_CLASS_DERIVATED_FROM_REGULAR_POLYGON (   Name)
Value:
struct Name : public Regular_Polygon \
{ \
Name() { } \
{ \
\
} \
Name(const Point & c, \
const double & side_sz, \
const size_t & n, \
const double & ang = 0) \
{ \
\
} \
};
A regular polygon defined by center, side length, and vertex count.
Definition polygon.H:829
Regular_Polygon()
Default constructor. Creates an invalid empty polygon.
Definition polygon.H:839

Regular polygons.

NOTE: In practice, because Polygon(Regular_Polygon) exists and there is a conversion from Regular_Polygon to Polygon, regular polygons could be drawn using the same Eepic_* classes used for irregular polygons.

The purpose of defining dedicated regular-polygon wrappers is mainly efficiency/constant-factor improvements: a regular polygon can be drawn a bit faster than a general polygon, even though the time complexity remains (O(n)) in both cases.

Definition at line 1437 of file eepicgeom.H.

◆ DEFINE_CLASS_DERIVATED_FROM_SEGMENT

#define DEFINE_CLASS_DERIVATED_FROM_SEGMENT (   Name)
Value:
struct Name : public Segment \
{ \
Name() { } \
Name(const Segment & s) : Segment(s) \
{ \
\
} \
Name(const Point & __src, const Point & __tgt) \
{ \
\
} \
Name(const Point & __src, \
const Geom_Number & m, \
const Geom_Number & d) \
: Segment(__src, m, d) \
{ \
\
} \
};
Segment()=default

We need several ways of drawing segments.

This macro defines a new class derived from Segment. Its only purpose is to give a different geometric type name so we can attach different EEPIC drawing behaviors.

Definition at line 1161 of file eepicgeom.H.

◆ DEFINE_CLASS_DERIVATED_FROM_TEXT

#define DEFINE_CLASS_DERIVATED_FROM_TEXT (   Name)
Value:
struct Name : public Text \
{ \
Name() { } \
Name(const Text & t) : Text(t) \
{ \
\
} \
Name(const Point & p, const std::string & str) \
: Text(p, str) \
{ \
\
} \
};
Definition point.H:1524
Text()
Definition point.H:1542

Text wrappers.

Definition at line 1264 of file eepicgeom.H.

◆ DEFINE_EEPIC_CLASS

#define DEFINE_EEPIC_CLASS (   Type)
Value:
class Eepic_##Type : public Eepic_Geom_Object \
{ \
}; \
Abstract base class for EEPIC-drawable geometric objects.
Definition eepicgeom.H:108

Fundamental macro to declare a class derived from Eepic_Geom_Object.

It generates the wrapper type Eepic_Type plus the corresponding put_in_plane() declaration for the underlying geometric type.

Definition at line 1125 of file eepicgeom.H.

◆ DEFINE_EEPIC_CLASS_AND_MEMBERS

#define DEFINE_EEPIC_CLASS_AND_MEMBERS (   Type,
  ... 
)

◆ DEFINE_EEPIC_COMMON_METHODS

#define DEFINE_EEPIC_COMMON_METHODS (   Type)
Value:
friend void put_in_plane(Eepic_Plane & plane, const Type & geom_obj); \
\
~Eepic_##Type() { } \
\
Point highest_point() const override \
{ \
return static_cast<const Type*>(geom_object_ptr)->highest_point(); \
} \
\
Point lowest_point() const override \
{ \
return static_cast<const Type*>(geom_object_ptr)->lowest_point(); \
} \
\
Point leftmost_point() const override \
{ \
return static_cast<const Type*>(geom_object_ptr)->leftmost_point(); \
} \
\
Point rightmost_point() const override \
{ \
return static_cast<const Type*>(geom_object_ptr)->rightmost_point(); \
} \
\
{ \
return new Eepic_##Type(static_cast<const Type&>(*geom_object_ptr)); \
} \
\
void draw(Eepic_Plane * plane, std::ostream & output) const override;
void put_in_plane(Eepic_Plane &plane, const Point &geom_obj)
Definition eepicgeom.C:50
ofstream output
Definition writeHeap.C:213

Common methods always provided by an Eepic_Type wrapper class.

Definition at line 1059 of file eepicgeom.H.

◆ DEFINE_EEPIC_COMMON_WITH_COPY_CTOR

#define DEFINE_EEPIC_COMMON_WITH_COPY_CTOR (   Type)
Value:
#define DEFINE_EEPIC_COPY_CTOR(Type)
Generator macros for Eepic_Geom_Object-derived wrapper types.
Definition eepicgeom.H:1054

Common methods plus a copy-constructor that owns a deep copy of the wrapped object.

Definition at line 1093 of file eepicgeom.H.

◆ DEFINE_EEPIC_COMMON_WITHOUT_COPY_CTOR

#define DEFINE_EEPIC_COMMON_WITHOUT_COPY_CTOR (   Type)
Value:
Eepic_##Type(const Type &);
#define DEFINE_EEPIC_COMMON_METHODS(Type)
Common methods always provided by an Eepic_Type wrapper class.
Definition eepicgeom.H:1059

Common methods, but the copy-constructor is only declared and must be implemented later.

Definition at line 1099 of file eepicgeom.H.

◆ DEFINE_EEPIC_COPY_CTOR

#define DEFINE_EEPIC_COPY_CTOR (   Type)     Eepic_##Type(const Type & o) : Eepic_Geom_Object(new Type(o), true) { }

Generator macros for Eepic_Geom_Object-derived wrapper types.

The macros below generate Eepic_* wrapper classes for underlying geometric primitives (Point, Segment, Polygon, ...). Each wrapper provides:

  • bounding box helpers (highest/lowest/leftmost/rightmost points)
  • clone() for polymorphic copying
  • draw() to emit EEPIC commands for that wrapper

Definition at line 1054 of file eepicgeom.H.

◆ DEFINE_EEPIC_POLYGON

#define DEFINE_EEPIC_POLYGON (   Name)
Value:

Definition at line 1320 of file eepicgeom.H.

◆ DEFINE_EEPIC_REGULAR_POLYGON

#define DEFINE_EEPIC_REGULAR_POLYGON (   Name)
Value:
#define DEFINE_CLASS_DERIVATED_FROM_REGULAR_POLYGON(Name)
Regular polygons.
Definition eepicgeom.H:1437

Definition at line 1458 of file eepicgeom.H.

◆ DEFINE_EEPIC_SEGMENT_CLASS

#define DEFINE_EEPIC_SEGMENT_CLASS (   Name)
Value:
#define DEFINE_CLASS_DERIVATED_FROM_SEGMENT(Name)
We need several ways of drawing segments.
Definition eepicgeom.H:1161

Definition at line 1187 of file eepicgeom.H.

◆ DEFINE_EEPIC_SEGMENT_CLASS_AND_MEMBERS

#define DEFINE_EEPIC_SEGMENT_CLASS_AND_MEMBERS (   Name,
  ... 
)

◆ DEFINE_PUT_IN_PLANE

#define DEFINE_PUT_IN_PLANE (   Type)     extern void put_in_plane(Eepic_Plane & plane, const Type & geom_obj)

Declare put_in_plane(plane, geom_obj) for a given geometric type.

Definition at line 1105 of file eepicgeom.H.

◆ DRAW_ARROW

#define DRAW_ARROW (   sg,
  output 
)
Value:
#define DRAW_SEGMENT(sg, output)
Definition eepicgeom.H:669

Definition at line 726 of file eepicgeom.H.

◆ DRAW_ARROW_DASH_SEGMENT

#define DRAW_ARROW_DASH_SEGMENT (   sg,
  output 
)
Value:
\
output << " %% Dash arrow Segment from " << sg.get_src_point().to_string() \
<< " to " << sg.get_tgt_point().to_string() << std::endl \
<< " %% mapped in this plane to (" << src_x << "," << src_y \
<< ") to (" << tgt_x << "," << tgt_y << ")" << std::endl \
<< "\\dashline{" << dotgap << "}(" << src_x \
<< "," << src_y << ")(" << tgt_x << "," << tgt_y << ")" << std::endl \
<< std::endl; \
#define COMPUTE_SEGMENT_EEPIC_COORDENATES()
Definition eepicgeom.H:659

Definition at line 792 of file eepicgeom.H.

◆ DRAW_ARROW_DOTTED_SEGMENT

#define DRAW_ARROW_DOTTED_SEGMENT (   sg,
  output 
)
Value:
\
output << " %% Dotted arrow Segment from " << sg.get_src_point().to_string() \
<< " to " << sg.get_tgt_point().to_string() << std::endl \
<< " %% mapped in this plane to (" << src_x << "," << src_y \
<< ") to (" << tgt_x << "," << tgt_y << ")" << std::endl \
<< "\\dottedline{" << dotgap << "}(" << src_x \
<< "," << src_y << ")(" << tgt_x << "," << tgt_y << ")" << std::endl \
<< std::endl; \

Definition at line 773 of file eepicgeom.H.

◆ DRAW_DASH_SEGMENT

#define DRAW_DASH_SEGMENT (   sg,
  output 
)
Value:
\
output << " %% Dash Segment from " << sg.get_src_point().to_string() \
<< " to " << sg.get_tgt_point().to_string() << std::endl \
<< " %% mapped in this plane to (" << src_x << "," << src_y \
<< ") to (" << tgt_x << "," << tgt_y << ")" << std::endl \
<< "\\dashline{" << dotgap << "}(" << src_x \
<< "," << src_y << ")(" << tgt_x << "," << tgt_y << ")" << std::endl \
<< std::endl;

Definition at line 755 of file eepicgeom.H.

◆ DRAW_DOTTED_SEGMENT

#define DRAW_DOTTED_SEGMENT (   sg,
  output 
)
Value:
\
output << " %% Dotted Segment from " << sg.get_src_point().to_string() \
<< " to " << sg.get_tgt_point().to_string() << std::endl \
<< " %% mapped in this plane to (" << src_x << "," << src_y \
<< ") to (" << tgt_x << "," << tgt_y << ")" << std::endl \
<< "\\dottedline{" << dotgap << "}(" << src_x \
<< "," << src_y << ")(" << tgt_x << "," << tgt_y << ")" << std::endl \
<< std::endl;

Definition at line 737 of file eepicgeom.H.

◆ DRAW_SEGMENT

#define DRAW_SEGMENT (   sg,
  output 
)
Value:
output << " %% Segment from " << sg.get_src_point().to_string() \
<< " to " << sg.get_tgt_point().to_string() << std::endl \
<< " %% mapped in this plane to (" << src_x << "," << src_y \
<< ") to (" << tgt_x << "," << tgt_y << ")" << std::endl \
<< "\\path(" << src_x << "," << src_y \
<< ")(" << tgt_x << "," << tgt_y << ")" << std::endl \
<< std::endl;

Definition at line 669 of file eepicgeom.H.

◆ IMPL_PUT_IN_PLANE

#define IMPL_PUT_IN_PLANE (   Type)
Value:
void put_in_plane(Eepic_Plane & plane, const Type & geom_obj) \
{ \
\
plane.put(eepic_obj); \
}

Definition at line 1109 of file eepicgeom.H.

◆ PUT_ARROW

#define PUT_ARROW ( )

Definition at line 691 of file eepicgeom.H.

Function Documentation

◆ put_in_plane() [1/63]

void put_in_plane ( Eepic_Plane plane,
const Arrow geom_obj 
)
extern

Definition at line 1205 of file eepicgeom.C.

◆ put_in_plane() [2/63]

void put_in_plane ( Eepic_Plane plane,
const Center_Text geom_obj 
)
extern

Definition at line 1294 of file eepicgeom.C.

◆ put_in_plane() [3/63]

void put_in_plane ( Eepic_Plane plane,
const Dash_Arrow geom_obj 
)
extern

Definition at line 1219 of file eepicgeom.C.

◆ put_in_plane() [4/63]

void put_in_plane ( Eepic_Plane plane,
const Dash_Polygon geom_obj 
)
extern

Definition at line 1337 of file eepicgeom.C.

◆ put_in_plane() [5/63]

void put_in_plane ( Eepic_Plane plane,
const Dash_Polygon_With_Arrow geom_obj 
)
extern

Definition at line 1346 of file eepicgeom.C.

◆ put_in_plane() [6/63]

void put_in_plane ( Eepic_Plane plane,
const Dash_Polygon_With_Points geom_obj 
)
extern

Definition at line 1343 of file eepicgeom.C.

◆ put_in_plane() [7/63]

void put_in_plane ( Eepic_Plane plane,
const Dash_Regular_Polygon geom_obj 
)
extern

Definition at line 1470 of file eepicgeom.C.

◆ put_in_plane() [8/63]

void put_in_plane ( Eepic_Plane plane,
const Dash_Regular_Polygon_With_Points geom_obj 
)
extern

Definition at line 1474 of file eepicgeom.C.

◆ put_in_plane() [9/63]

void put_in_plane ( Eepic_Plane plane,
const Dash_Segment geom_obj 
)
extern

Definition at line 1215 of file eepicgeom.C.

◆ put_in_plane() [10/63]

void put_in_plane ( Eepic_Plane plane,
const Dash_Spline geom_obj 
)
extern

Definition at line 1367 of file eepicgeom.C.

◆ put_in_plane() [11/63]

void put_in_plane ( Eepic_Plane plane,
const Dash_Spline_Arrow geom_obj 
)
extern

Definition at line 1373 of file eepicgeom.C.

◆ put_in_plane() [12/63]

void put_in_plane ( Eepic_Plane plane,
const Dotted_Arrow geom_obj 
)
extern

Definition at line 1217 of file eepicgeom.C.

◆ put_in_plane() [13/63]

void put_in_plane ( Eepic_Plane plane,
const Dotted_Polygon geom_obj 
)
extern

Definition at line 1334 of file eepicgeom.C.

◆ put_in_plane() [14/63]

void put_in_plane ( Eepic_Plane plane,
const Dotted_Polygon_With_Points geom_obj 
)
extern

Definition at line 1340 of file eepicgeom.C.

◆ put_in_plane() [15/63]

void put_in_plane ( Eepic_Plane plane,
const Dotted_Regular_Polygon geom_obj 
)
extern

Definition at line 1468 of file eepicgeom.C.

◆ put_in_plane() [16/63]

void put_in_plane ( Eepic_Plane plane,
const Dotted_Regular_Polygon_With_Points geom_obj 
)
extern

Definition at line 1472 of file eepicgeom.C.

◆ put_in_plane() [17/63]

void put_in_plane ( Eepic_Plane plane,
const Dotted_Segment geom_obj 
)
extern

Definition at line 1213 of file eepicgeom.C.

◆ put_in_plane() [18/63]

void put_in_plane ( Eepic_Plane plane,
const Ellipse geom_obj 
)
extern

Definition at line 1229 of file eepicgeom.C.

◆ put_in_plane() [19/63]

void put_in_plane ( Eepic_Plane plane,
const Left_Text geom_obj 
)
extern

Definition at line 1290 of file eepicgeom.C.

◆ put_in_plane() [20/63]

◆ put_in_plane() [21/63]

void put_in_plane ( Eepic_Plane plane,
const Polygon geom_obj 
)
extern

Definition at line 1304 of file eepicgeom.C.

◆ put_in_plane() [22/63]

void put_in_plane ( Eepic_Plane plane,
const Polygon_With_Arrows geom_obj 
)
extern

Definition at line 1331 of file eepicgeom.C.

◆ put_in_plane() [23/63]

void put_in_plane ( Eepic_Plane plane,
const Polygon_With_Points geom_obj 
)
extern

Definition at line 1328 of file eepicgeom.C.

◆ put_in_plane() [24/63]

void put_in_plane ( Eepic_Plane plane,
const Regular_Polygon geom_obj 
)
extern

◆ put_in_plane() [25/63]

void put_in_plane ( Eepic_Plane plane,
const Regular_Polygon_With_Points geom_obj 
)
extern

Definition at line 1466 of file eepicgeom.C.

◆ put_in_plane() [26/63]

void put_in_plane ( Eepic_Plane plane,
const Right_Text geom_obj 
)
extern

Definition at line 1292 of file eepicgeom.C.

◆ put_in_plane() [27/63]

void put_in_plane ( Eepic_Plane plane,
const Segment geom_obj 
)
extern

Definition at line 1154 of file eepicgeom.C.

◆ put_in_plane() [28/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Ellipse geom_obj 
)
extern

Definition at line 1257 of file eepicgeom.C.

◆ put_in_plane() [29/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Polygon geom_obj 
)
extern

Definition at line 1349 of file eepicgeom.C.

◆ put_in_plane() [30/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Polygon_With_Arrows geom_obj 
)
extern

Definition at line 1355 of file eepicgeom.C.

◆ put_in_plane() [31/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Polygon_With_Points geom_obj 
)
extern

Definition at line 1352 of file eepicgeom.C.

◆ put_in_plane() [32/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Polygon_With_Text_Points geom_obj 
)
extern

Definition at line 1358 of file eepicgeom.C.

◆ put_in_plane() [33/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Polygon_With_Vertex_Numbers geom_obj 
)
extern

Definition at line 1361 of file eepicgeom.C.

◆ put_in_plane() [34/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Regular_Polygon geom_obj 
)
extern

Definition at line 1476 of file eepicgeom.C.

◆ put_in_plane() [35/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Regular_Polygon_With_Arrows geom_obj 
)
extern

Definition at line 1480 of file eepicgeom.C.

◆ put_in_plane() [36/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Regular_Polygon_With_Points geom_obj 
)
extern

Definition at line 1478 of file eepicgeom.C.

◆ put_in_plane() [37/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Regular_Polygon_With_Text_Points geom_obj 
)
extern

Definition at line 1482 of file eepicgeom.C.

◆ put_in_plane() [38/63]

void put_in_plane ( Eepic_Plane plane,
const Shade_Regular_Polygon_With_Vertex_Numbers geom_obj 
)
extern

Definition at line 1484 of file eepicgeom.C.

◆ put_in_plane() [39/63]

void put_in_plane ( Eepic_Plane plane,
const Spline geom_obj 
)
extern

Definition at line 1364 of file eepicgeom.C.

◆ put_in_plane() [40/63]

void put_in_plane ( Eepic_Plane plane,
const Spline_Arrow geom_obj 
)
extern

Definition at line 1370 of file eepicgeom.C.

◆ put_in_plane() [41/63]

void put_in_plane ( Eepic_Plane plane,
const Text geom_obj 
)
extern

Definition at line 1282 of file eepicgeom.C.

◆ put_in_plane() [42/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Arrow geom_obj 
)
extern

Definition at line 1211 of file eepicgeom.C.

◆ put_in_plane() [43/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Dash_Arrow geom_obj 
)
extern

Definition at line 1221 of file eepicgeom.C.

◆ put_in_plane() [44/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Dash_Polygon geom_obj 
)
extern

Definition at line 1385 of file eepicgeom.C.

◆ put_in_plane() [45/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Dash_Polygon_With_Arrow geom_obj 
)
extern

Definition at line 1394 of file eepicgeom.C.

◆ put_in_plane() [46/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Dash_Polygon_With_Points geom_obj 
)
extern

Definition at line 1391 of file eepicgeom.C.

◆ put_in_plane() [47/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Dash_Segment geom_obj 
)
extern

Definition at line 1209 of file eepicgeom.C.

◆ put_in_plane() [48/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Dash_Spline geom_obj 
)
extern

Definition at line 1415 of file eepicgeom.C.

◆ put_in_plane() [49/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Dash_Spline_Arrow geom_obj 
)
extern

Definition at line 1421 of file eepicgeom.C.

◆ put_in_plane() [50/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Dotted_Polygon geom_obj 
)
extern

Definition at line 1382 of file eepicgeom.C.

◆ put_in_plane() [51/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Dotted_Polygon_With_Points geom_obj 
)
extern

Definition at line 1388 of file eepicgeom.C.

◆ put_in_plane() [52/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Ellipse geom_obj 
)
extern

Definition at line 1259 of file eepicgeom.C.

◆ put_in_plane() [53/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Polygon_With_Arrows geom_obj 
)
extern

Definition at line 1379 of file eepicgeom.C.

◆ put_in_plane() [54/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Polygon_With_Points geom_obj 
)
extern

Definition at line 1376 of file eepicgeom.C.

◆ put_in_plane() [55/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Segment geom_obj 
)
extern

Definition at line 1207 of file eepicgeom.C.

◆ put_in_plane() [56/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Shade_Polygon geom_obj 
)
extern

Definition at line 1397 of file eepicgeom.C.

◆ put_in_plane() [57/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Shade_Polygon_With_Arrows geom_obj 
)
extern

Definition at line 1403 of file eepicgeom.C.

◆ put_in_plane() [58/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Shade_Polygon_With_Points geom_obj 
)
extern

Definition at line 1400 of file eepicgeom.C.

◆ put_in_plane() [59/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Shade_Polygon_With_Text_Points geom_obj 
)
extern

Definition at line 1406 of file eepicgeom.C.

◆ put_in_plane() [60/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Shade_Polygon_With_Vertex_Numbers geom_obj 
)
extern

Definition at line 1409 of file eepicgeom.C.

◆ put_in_plane() [61/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Spline geom_obj 
)
extern

Definition at line 1412 of file eepicgeom.C.

◆ put_in_plane() [62/63]

void put_in_plane ( Eepic_Plane plane,
const Thick_Spline_Arrow geom_obj 
)
extern

Definition at line 1418 of file eepicgeom.C.

◆ put_in_plane() [63/63]

void put_in_plane ( Eepic_Plane plane,
const Triangle geom_obj 
)
extern

Definition at line 1225 of file eepicgeom.C.

Variable Documentation

◆ tiny_keys

bool tiny_keys
extern

Global flag to enable tiny font size for keys/labels.

When set to true, text labels will be rendered using LaTeX's \tiny font size modifier. Useful for dense diagrams with many labels.

Definition at line 59 of file eepicgeom_test.cc.

Referenced by Eepic_Plane::draw_text(), and main().