pcb 4.1.1
An interactive printed circuit board layout editor.
|
#include "gts.h"
Go to the source code of this file.
Data Structures | |
struct | OrientedVertex |
struct | _GtsIsoSlice |
Defines | |
#define | SWAP(s1, s2, tmp) (tmp = s1, s1 = s2, s2 = tmp) |
Enumerations | |
enum | Orientation { LEFT = 0, RIGHT = 1 } |
Functions | |
static void ** | malloc2D (guint nx, guint ny, gulong size) |
static void | free2D (void **m, guint nx) |
GtsGridPlane * | gts_grid_plane_new (guint nx, guint ny) |
void | gts_grid_plane_destroy (GtsGridPlane *g) |
GtsIsoSlice * | gts_iso_slice_new (guint nx, guint ny) |
void | gts_iso_slice_fill (GtsIsoSlice *slice, GtsGridPlane *plane1, GtsGridPlane *plane2, gdouble **f1, gdouble **f2, gdouble iso, GtsVertexClass *klass) |
void | gts_iso_slice_fill_cartesian (GtsIsoSlice *slice, GtsCartesianGrid g, gdouble **f1, gdouble **f2, gdouble iso, GtsVertexClass *klass) |
void | gts_iso_slice_destroy (GtsIsoSlice *slice) |
void | gts_isosurface_slice (GtsIsoSlice *slice1, GtsIsoSlice *slice2, GtsSurface *surface) |
void | gts_isosurface_cartesian (GtsSurface *surface, GtsCartesianGrid g, GtsIsoCartesianFunc f, gpointer data, gdouble iso) |
Variables | |
static guint | c [12][4] |
static guint | edge [12][2][3] |
#define SWAP | ( | s1, | |
s2, | |||
tmp | |||
) | (tmp = s1, s1 = s2, s2 = tmp) |
Definition at line 389 of file iso.c.
Referenced by gts_isosurface_cartesian().
enum Orientation |
static void free2D | ( | void ** | m, |
guint | nx | ||
) | [static] |
Definition at line 69 of file iso.c.
Referenced by gts_grid_plane_destroy(), gts_iso_slice_destroy(), and gts_isosurface_cartesian().
void gts_grid_plane_destroy | ( | GtsGridPlane * | g | ) |
gts_grid_plane_destroy: :
Definition at line 103 of file iso.c.
References free2D(), _GtsGridPlane::nx, and _GtsGridPlane::p.
GtsGridPlane* gts_grid_plane_new | ( | guint | nx, |
guint | ny | ||
) |
gts_grid_plane_new: : :
Returns:
Definition at line 87 of file iso.c.
References malloc2D(), _GtsGridPlane::nx, _GtsGridPlane::ny, and _GtsGridPlane::p.
void gts_iso_slice_destroy | ( | GtsIsoSlice * | slice | ) |
gts_iso_slice_destroy: : a GtsIsoSlice.
Free all memory allocated for .
Definition at line 303 of file iso.c.
References free2D(), _GtsIsoSlice::nx, and _GtsIsoSlice::vertices.
Referenced by gts_isosurface_cartesian().
void gts_iso_slice_fill | ( | GtsIsoSlice * | slice, |
GtsGridPlane * | plane1, | ||
GtsGridPlane * | plane2, | ||
gdouble ** | f1, | ||
gdouble ** | f2, | ||
gdouble | iso, | ||
GtsVertexClass * | klass | ||
) |
gts_iso_slice_fill: : a GtsIsoSlice. : a GtsGridPlane. : another GtsGridPlane. : values of the function corresponding to . : values of the function corresponding to . : isosurface value. : a GtsVertexClass or one of its descendant to be used for the new vertices.
Fill with the coordinates of the vertices defined by f1 (x,y,z) = and f2 (x, y, z) = .
Definition at line 154 of file iso.c.
References gts_vertex_new(), LEFT, _GtsIsoSlice::nx, _GtsIsoSlice::ny, OrientedVertex::orientation, _GtsGridPlane::p, RIGHT, OrientedVertex::v, _GtsIsoSlice::vertices, x, and y.
void gts_iso_slice_fill_cartesian | ( | GtsIsoSlice * | slice, |
GtsCartesianGrid | g, | ||
gdouble ** | f1, | ||
gdouble ** | f2, | ||
gdouble | iso, | ||
GtsVertexClass * | klass | ||
) |
gts_iso_slice_fill_cartesian: : a GtsIsoSlice. : a GtsCartesianGrid. : values of the function for plane z = .z. : values of the function for plane z = .z + .dz. : isosurface value. : a GtsVertexClass.
Fill with the coordinates of the vertices defined by f1 (x,y,z) = and f2 (x, y, z) = .
Definition at line 241 of file iso.c.
References _GtsCartesianGrid::dx, _GtsCartesianGrid::dy, _GtsCartesianGrid::dz, gts_vertex_new(), LEFT, _GtsCartesianGrid::nx, _GtsCartesianGrid::ny, OrientedVertex::orientation, RIGHT, OrientedVertex::v, _GtsIsoSlice::vertices, _GtsCartesianGrid::x, x, _GtsCartesianGrid::y, y, and _GtsCartesianGrid::z.
Referenced by gts_isosurface_cartesian().
GtsIsoSlice* gts_iso_slice_new | ( | guint | nx, |
guint | ny | ||
) |
gts_iso_slice_new: : number of vertices in the x direction. : number of vertices in the y direction.
Returns: a new GtsIsoSlice.
Definition at line 118 of file iso.c.
References malloc2D(), _GtsIsoSlice::nx, _GtsIsoSlice::ny, and _GtsIsoSlice::vertices.
Referenced by gts_isosurface_cartesian().
void gts_isosurface_cartesian | ( | GtsSurface * | surface, |
GtsCartesianGrid | g, | ||
GtsIsoCartesianFunc | f, | ||
gpointer | data, | ||
gdouble | iso | ||
) |
gts_isosurface_cartesian: : a GtsSurface. : a GtsCartesianGrid. : a GtsIsoCartesianFunc. : user data to be passed to . : isosurface value.
Adds to new faces defining the isosurface f(x,y,z) = . By convention, the normals to the surface are pointing toward the positive values of f(x,y,z) - .
The user function is called successively for each value of the z coordinate defined by . It must fill the corresponding (x,y) plane with the values of the function for which the isosurface is to be computed.
Definition at line 407 of file iso.c.
References free2D(), gts_iso_slice_destroy(), gts_iso_slice_fill_cartesian(), gts_iso_slice_new(), gts_isosurface_slice(), malloc2D(), _GtsCartesianGrid::nx, _GtsCartesianGrid::ny, _GtsCartesianGrid::nz, SWAP, and _GtsSurface::vertex_class.
void gts_isosurface_slice | ( | GtsIsoSlice * | slice1, |
GtsIsoSlice * | slice2, | ||
GtsSurface * | surface | ||
) |
gts_isosurface_slice: : a GtsIsoSlice. : another GtsIsoSlice. : a GtsSurface.
Given two successive slices and link their vertices with segments and triangles which are added to .
Definition at line 323 of file iso.c.
References c, edge, _GtsSurface::edge_class, _GtsSurface::face_class, FALSE, GTS_EDGE, gts_edge_new(), gts_face_new(), GTS_OBJECT, gts_surface_add_face(), gts_vertices_are_connected(), m, _GtsIsoSlice::nx, _GtsIsoSlice::ny, OrientedVertex::orientation, TRUE, OrientedVertex::v, and _GtsIsoSlice::vertices.
Referenced by gts_isosurface_cartesian().
static void** malloc2D | ( | guint | nx, |
guint | ny, | ||
gulong | size | ||
) | [static] |
Definition at line 58 of file iso.c.
References m.
Referenced by gts_grid_plane_new(), gts_iso_slice_new(), and gts_isosurface_cartesian().
guint c[12][4] [static] |
{ {0, 0, 0, 0}, {0, 0, 0, 1}, {0, 0, 1, 1}, {0, 0, 1, 0}, {1, 0, 0, 0}, {1, 0, 0, 1}, {1, 1, 0, 1}, {1, 1, 0, 0}, {2, 0, 0, 0}, {2, 1, 0, 0}, {2, 1, 1, 0}, {2, 0, 1, 0}}
Definition at line 35 of file iso.c.
Referenced by __routebox_is_good(), ActionDJopt(), arc_ortho_projections(), bestpolygon(), BumpName(), calc_lon(), canonicalize_line(), check_line_callback(), classify_nets(), clear_marks(), cluster_create(), cluster_destroy(), cluster_grid_add_point(), ComputeCost(), connect_interior_loop(), container_destroy(), coords_on_line(), debumpify(), det(), det2x2(), diag_line(), ExpandFilename(), find_corner(), find_corner_if(), findpath(), gcode_do_export(), gerber_set_layer(), getstr(), gsvit_fill_circle(), gsvit_fill_polygon(), gts_cluster_new(), gts_containee_is_contained(), gts_container_size(), gts_delaunay_refine(), gts_file_getc(), gts_file_getc_scope(), gts_file_next_token(), gts_isosurface_slice(), gts_matrix_rotate(), gts_object_class_is_from_class(), gts_object_is_from_class(), gts_point_orientation_3d_sos(), gts_segment_triangle_intersection(), gts_vertex_principal_directions(), gts_volume_optimized_vertex(), incircleadapt(), InsCntr(), insphereadapt(), insphereexact(), IsPointInPolygon(), IsPolygonInPolygon(), lgbutton_expose(), LoadBackgroundFile(), miter(), orient2dadapt(), orient3dadapt(), orthopull(), orthopull_1(), penalty3(), pinsnap(), png_use_mask(), pointslope(), poly_CreateNode(), poly_InclContour(), poly_PreContour(), poly_Valid(), print_defaults_1(), ps_calibrate_1(), remove_corner(), scale_expansion_zeroelim(), search_footprint_hash(), segment_triangle_intersection(), sift_down(), simple_optimizations(), split_edge(), split_line(), square_therm(), SquarePadPoly(), tangent(), tempfile_name_new(), unjaggy_once(), UpdateXY(), use_gc(), vertices_on_line(), vianudge(), work_area_first_expose(), write_edge_oogl_boundary(), write_face_oogl(), and write_vertex_oogl().
guint edge[12][2][3] [static] |
{ {{9, 1, 8}, {4, 3, 7}}, {{6, 2, 5}, {8, 0, 9}}, {{10, 3, 11}, {5, 1, 6}}, {{7, 0, 4}, {11, 2, 10}}, {{3, 7, 0}, {8, 5, 11}}, {{11, 4, 8}, {1, 6, 2}}, {{2, 5, 1}, {9, 7, 10}}, {{10, 6, 9}, {0, 4, 3}}, {{5, 11, 4}, {0, 9, 1}}, {{1, 8, 0}, {7, 10, 6}}, {{6, 9, 7}, {3, 11, 2}}, {{2, 10, 3}, {4, 8, 5}} }
Definition at line 43 of file iso.c.
Referenced by compute_candidate_points(), edge_destroy(), get_edge(), and gts_isosurface_slice().