ZLayout EDA Library v1.0.0
Advanced Electronic Design Automation Layout Library with Bilingual Documentation
|
Classes | |
class | Point |
2D point with high-precision coordinates and utility methods More... | |
struct | PointHash |
Hash function for Point (for use in std::unordered_map, etc.) More... | |
class | Polygon |
Polygon class supporting both convex and concave polygons. More... | |
struct | PolygonHash |
Hash function for Polygon (for use in std::unordered_map, etc.) More... | |
class | Rectangle |
Axis-aligned rectangle for bounding boxes and simple EDA components. More... | |
struct | RectangleHash |
Hash function for Rectangle (for use in std::unordered_map, etc.) More... |
Functions | |
double | distance (const Point &p1, const Point &p2) |
Calculate distance between two points. | |
Point | midpoint (const Point &p1, const Point &p2) |
Calculate midpoint between two points. | |
double | angle_between_points (const Point &p1, const Point &p2, const Point &p3) |
Calculate angle between three points (p1-p2-p3) | |
bool | are_collinear (const Point &p1, const Point &p2, const Point &p3) |
Check if three points are collinear. | |
int | orientation (const Point &p1, const Point &p2, const Point &p3) |
Calculate orientation of three points. | |
bool | line_intersection (const Point &line1_start, const Point &line1_end, const Point &line2_start, const Point &line2_end, Point &intersection) |
Calculate intersection point of two infinite lines. | |
bool | segments_intersect (const Point &seg1_start, const Point &seg1_end, const Point &seg2_start, const Point &seg2_end) |
Check if two line segments intersect. | |
double | angle_between_vectors (const Point &v1, const Point &v2) |
Calculate angle between two vectors in degrees. | |
std::ostream & | operator<< (std::ostream &os, const Point &point) |
std::ostream & | operator<< (std::ostream &os, const Polygon &polygon) |
std::ostream & | operator<< (std::ostream &os, const Rectangle &rect) |
Variables | |
bool | HAS_NUMPY = True |
Basic geometric data structures for layout processing.
Calculate angle between two vectors in degrees.
v1 | First vector |
v2 | Second vector |
Definition at line 473 of file polygon.cpp.
bool zlayout::geometry::line_intersection | ( | const Point & | line1_start, |
const Point & | line1_end, | ||
const Point & | line2_start, | ||
const Point & | line2_end, | ||
Point & | intersection ) |
Calculate intersection point of two infinite lines.
line1_start | First point on line 1 |
line1_end | Second point on line 1 |
line2_start | First point on line 2 |
line2_end | Second point on line 2 |
intersection | Output intersection point |
std::ostream & zlayout::geometry::operator<< | ( | std::ostream & | os, |
const Point & | point ) |
std::ostream & zlayout::geometry::operator<< | ( | std::ostream & | os, |
const Polygon & | polygon ) |
Definition at line 406 of file polygon.cpp.
std::ostream & zlayout::geometry::operator<< | ( | std::ostream & | os, |
const Rectangle & | rect ) |
Definition at line 210 of file rectangle.cpp.
bool zlayout::geometry::segments_intersect | ( | const Point & | seg1_start, |
const Point & | seg1_end, | ||
const Point & | seg2_start, | ||
const Point & | seg2_end ) |
Check if two line segments intersect.
seg1_start | Start of first segment |
seg1_end | End of first segment |
seg2_start | Start of second segment |
seg2_end | End of second segment |
Definition at line 468 of file polygon.cpp.
bool zlayout.geometry.HAS_NUMPY = True |
Definition at line 11 of file geometry.py.