Major refactor — modernized engine, new API, and rich plotting.
Projection engine switched from reproj to gdalraster::transform_xy().
All projection work is now a single batched GDAL call.
API renamed: proj.in/proj.out → source/target, following reproj
conventions. target is the second positional argument (required);
source defaults to "EPSG:4326".
tissot() input is now any "xy-ish" object (matrix, data.frame, list,
length-2 vector) via the internal as_xy() helper. The old
lambda/phi positional arguments are replaced by x.
tissot() returns a tissot_tbl (subclassed tibble) with source and
target stored as attributes. Column names changed to: x, y,
dx_dlam, dy_dlam, dx_dphi, dy_dphi, scale_h, scale_k,
scale_omega, scale_a, scale_b, scale_area, angle_deformation,
convergence.
indicatrix() returns an indicatrix_list (replaces indicatrixes
class). Accepts tissot_tbl or raw coordinates + explicit target.
Removed: indicatrix0(), tissot0(), .prj(), and the internal
numericDeriv path. The Jacobian is now computed directly via
finite differences.
plot.indicatrix() and plot.indicatrix_list() with:
show.circle)show.axes)show.circle and show.axes accept TRUE, FALSE, or a named list
of graphical parameters for full customizationfill.by (e.g. "scale_area",
"angle_deformation")print() and summary() methods for tissot_tbl.
print(), length(), and [ methods for indicatrix_list.
tissot_map() and tissot_abline() accept explicit target argument.
as_xy() internal helper coerces diverse coordinate inputs.
resolve_gpar() internal helper for the logical-or-list graphical
parameter pattern.
transform_xy() call.