Public Member Functions |
virtual const char * | whattype () |
virtual SomeData * | duplicate (SomeData *dup) |
virtual void | dump_out (FILE *f, int indent, int what, Laxkit::anObject *context) |
virtual void | dump_in_atts (LaxFiles::Attribute *att, int flag, Laxkit::anObject *context) |
| Reverse of dump_out.
|
virtual void | dump_out_svg (const char *file) |
virtual PathsData * | MakePathsData () |
virtual void | Set (double xx, double yy, double ww, double hh, int nr, int nc, unsigned int stle) |
virtual void | FillRegularLines (double weight, double spacing) |
virtual void | FillRegularLinesHorizontal (double weight) |
virtual void | Sync () |
virtual void | BezApproximate (Laxkit::NumStack< flatvector > &fauxpoints, Laxkit::NumStack< flatvector > &points) |
| PatchData () |
| Creates a patch with points=NULL, size=0.
|
| PatchData (double xx, double yy, double ww, double hh, int nr, int nc, unsigned int stle) |
| Creates a new patch in rect xx,yy,ww,hh with nr rows and nc columns.
|
virtual void | FindBBox () |
| Find bbox.
|
virtual int | pointin (flatpoint pp, int pin=1) |
virtual int | hasColorData () |
| This is called from renderToBuffer, before rendering to see if there is anything to render.
|
virtual flatpoint | getControlPoint (int r, int c) |
| Return points[r*xsize+c].
|
virtual flatpoint | getPoint (double t, double s) |
| Return the point corresponding to (s,t), where s and t are in range [0..1]. s for column, t for row.
|
virtual flatpoint * | bezAtEdge (flatpoint *p, int i, int row) |
| Return a bezier curve corresponding to the row (row==1) or column (row==0) i.
|
virtual flatpoint * | bezCrossSection (flatpoint *p, int i, double t, int row) |
| Return the cross section bezier curve at subpatch row (or column) i, and parameter t.
|
virtual int | bezOfPatch (flatpoint *p, int r, int rl, int c, int cl) |
| Return the bezier outline of a subsection of the patch.
|
virtual void | resolveToSubpatch (double s, double t, int &c, double &ss, int &r, double &tt) |
| From a point s,t (range 0..1), return the subpatch r,c plus offset into that subpatch.
|
virtual void | resolveFromSubpatch (int c, double ss, int r, double tt, double &s, double &t) |
| From subpatch (r,c) and offset, return a point s,t with range [0..1],[0..1].
|
virtual void | getGt (double *G, int roffset, int coffset, int isfory) |
| See subdivide() for what Gt is.
|
virtual int | inSubPatch (flatpoint p, int *r_ret, int *c_ret, double *t_ret, double *s_ret, double d) |
| Return which subpatch the point seems to be in.
|
virtual int | coordsInSubPatch (flatpoint p, int r, int c, double maxd, double *s_ret, double *t_ret) |
| Find an approximate (s,t) point to p.
|
virtual int | WhatColor (double s, double t, Laxkit::ScreenColor *color_ret) |
| Put the color at (s,t) into color_ret.
|
virtual void | zap (flatpoint p, flatpoint x, flatpoint y) |
| Remap to be in parallelogram of p,x,y.
|
virtual void | zap () |
| Remap so the patch corresponds to its rectangular bounding box.
|
virtual int | subdivide (int r, double rt, int c, double ct) |
| Subdivide a single row number r, position rt, and a single column c, position ct.
|
virtual int | subdivide (int xn=2, int yn=2) |
| Break each patch into subpatches.
|
virtual void | grow (int where, double *tr) |
| Grow the patch off an edge.
|
virtual void | collapse (int rr, int cc) |
| Merge (delete) rows, and/or columns.
|
virtual void | InterpolateControls (int whichcontrols) |
| Interpolate control points according to whichcontrols.
|
virtual int | warpPatch (flatpoint center, double r1, double r2, double s, double e) |
| Make data wrap inside a ring between radius 1 and 2, start angle s, end angle e.
|
virtual int | renderToBuffer (unsigned char *buffer, int bufw, int bufh, int bufstride, int bufdepth, int bufchannels) |
| Write to buffer assuming samples are 8 bit ARGB.
|
virtual void | rpatchpoint (PatchRenderContext *context, flatpoint ul, flatpoint ur, flatpoint ll, flatpoint lr, double s1, double t1, double s2, double t2, int which) |
| Recursive render. Used by renderToBuffer().
|
virtual void | patchpoint (PatchRenderContext *context, double s0, double ds, double t0, double dt, int n) |
| Called from renderToBuffer(). No recursion, just draw a bunch of rects for patch.
|
virtual void | touchContents () |
virtual Laxkit::LaxImage * | GetPreview () |
| If usepreview==1 and preview, then return preview.
|
virtual void | GeneratePreview (int w, int h) |
| Create a preview image with transparency for a cached screen preview.
|
virtual const char * | Id () |
virtual const char * | Id (const char *newid) |
| SomeData () |
| SomeData (double nminx, double nmaxx, double nminy, double nmaxy) |
| Constructor, setting the bounds.
|
virtual flatpoint | BBoxPoint (double x, double y, bool transform_to_parent) |
virtual flatpoint | ReferencePoint (int which, bool transform_to_parent) |
virtual int | fitto (double *boxm, DoubleBBox *box, double alignx, double aligny, int whentoscale=2) |
| Fit this data to box.
|
virtual SomeData * | GetParent () |
virtual void | dump_in (FILE *f, int indent, Laxkit::anObject *context, LaxFiles::Attribute **Att=NULL) |
| Dump in an attribute, then call dump_in_atts(thatatt,0).
|
virtual LaxFiles::Attribute * | dump_out_atts (LaxFiles::Attribute *att, int what, Laxkit::anObject *savecontext) |
| anObject () |
| Set object_id=getUniqueNumber().
|
virtual | ~anObject () |
| Empty virtual destructor.
|
virtual anObject * | duplicate (anObject *ref=NULL) |
virtual int | inc_count () |
| Increment the data's count by 1. Returns count.
|
virtual int | dec_count () |
| Decrement the count of the data, deleting if count is less than or equal to 0.
|
virtual int | the_count () |
| Affine (const double *m) |
| If mm==NULL, set identity.
|
| Affine (const Affine &m) |
| Affine (double xx, double xy, double yx, double yy, double tx, double ty) |
Affine & | operator= (Affine const &m) |
Affine & | operator*= (Affine const &m) |
Affine | operator* (Affine const m) |
virtual void | set (Affine a) |
virtual void | setIdentity () |
virtual bool | isIdentity () |
virtual void | setRotation (double angle) |
virtual void | setScale (double sx, double sy) |
virtual void | setBasis (flatpoint o, flatpoint x, flatpoint y) |
virtual void | setBasics (double x, double y, double sx, double sy, double angle, double shear) |
virtual void | getBasics (double *x, double *y, double *sx, double *sy, double *angle, double *shear) |
virtual void | Translate (flatvector d) |
virtual void | Rotate (double angle) |
virtual void | Rotate (double angle, flatpoint around_point) |
virtual void | RotatePointed (flatpoint anchor1, flatpoint anchor2, flatpoint newanchor2) |
virtual void | RotateScale (flatpoint anchor1, flatpoint anchor2, flatpoint newanchor2) |
| Rotate and scale so that anchor1 stays fixed, but anchor2 is shifted to newanchor2.
|
virtual void | Stretch (flatpoint anchor1, flatpoint anchor2, flatpoint newanchor2) |
virtual void | AnchorShear (flatpoint anchor1, flatpoint anchor2, flatpoint anchor3, flatpoint newanchor3) |
| Transform so that anchor1 and 2 stay fixed, but anchor3 is shifted to newanchor3.
|
virtual void | Scale (double s) |
virtual void | Scale (flatpoint o, double s) |
| Scale around point o.
|
virtual void | Scale (flatpoint o, double sx, double sy) |
virtual void | Scale (flatpoint anchor1, flatpoint anchor2, flatpoint newanchor2) |
| Scale as if you move anchor2 to newanchor2, while anchor1 stays the same.
|
virtual void | FlipH () |
virtual void | FlipV () |
virtual void | Flip (flatpoint f1, flatpoint f2) |
| Flip across the axis of f1 to f2.
|
virtual void | Multiply (Affine &m) |
| this=this*m
|
virtual void | PreMultiply (Affine &m) |
| this=m*this
|
virtual Affine | Inversion () |
| Return a new matrix that is the inverse of this, if possible.
|
virtual void | Invert () |
| Make this the inverse of whatever it is.
|
virtual flatpoint | transformPoint (flatpoint p) |
virtual flatpoint | transformPointInverse (flatpoint p) |
virtual flatpoint | transformVector (flatpoint p) |
| Apply the transfrom, but ignore this's translation component.
|
virtual const double * | m () const |
virtual void | m (const double *mm) |
virtual void | m (double xx, double xy, double yx, double yy, double tx, double ty) |
virtual double | m (int c) |
virtual void | m (int c, double v) |
virtual void | Unshear (int preserve_x, int normalize) |
| Clear shearing and unequal scaling. Null vectors stay null vectors.
|
virtual void | Normalize () |
| Make x and y both be unit vectors, but point in the same direction as before.
|
virtual flatpoint | origin () |
virtual void | origin (flatpoint o) |
virtual flatpoint | xaxis () |
virtual void | xaxis (flatpoint x) |
virtual flatpoint | yaxis () |
virtual void | yaxis (flatpoint y) |
| DoubleBBox () |
| Create empty invalid bbox (maxx<minx and maxy<miny).
|
| DoubleBBox (flatpoint p) |
| Create box whose bounds are p.
|
| DoubleBBox (double mix, double max, double miy, double may) |
| Create box whose bounds are as given.
|
virtual void | clear () |
| Make box invalid: set minx=miny=0 and maxx=maxy=-1.
|
virtual void | addtobounds (double x, double y) |
virtual void | addtobounds (flatpoint p) |
| Expand bounds to contain p. Set the bounds to p if current bounds are invalid.
|
virtual void | addtobounds (DoubleBBox *bbox) |
| Add the bbox to the bounds. Set the bounds if current bounds are invalid.
|
virtual void | addtobounds (const double *m, DoubleBBox *bbox) |
| Add bbox to bounds, first transforming it by 6 element transform matrix m.
|
virtual void | setbounds (DoubleBBox *bbox) |
| Just copy over the bounds.
|
virtual void | setbounds (flatpoint *pts, int n) |
| Make this bbox be the bounds for the given n points. (does not add to previous bounds)
|
virtual void | setbounds (double mix, double max, double miy, double may) |
| Set the bounds to the specified values.
|
virtual int | validbounds () |
| Returns maxx>=minx && maxy>=miny.
|
virtual int | intersect (double mix, double max, double miy, double may, int settointersection=0) |
| Intersect the given bounds with this's bounds. Return 1 for non-empty intersection.
|
virtual int | intersect (DoubleBBox *bbox, int settointersection=0) |
| Just return intersect(bbox.minx,...,settointersection).
|
virtual int | intersect (double *m, DoubleBBox *bbox, int touching, int settointersection) |
| Does the transformed box touch. **** incomplete implementation.
|
virtual int | boxcontains (double x, double y) |
| Return whether the given point is contained within or on the bounds.
|
virtual flatpoint | BBoxPoint (double x, double y) |