Blob Blame History Raw
Index: src/pixel.cpp
===================================================================
--- src/pixel.cpp	(revision 908)
+++ src/pixel.cpp	(revision 910)
@@ -171,6 +171,7 @@
 //-----------------------------------------------------------------------------
 mglPoint mglCanvas::CalcXYZ(int xs, int ys, bool real) const
 {
+	if(xs<0 || ys<0 || xs>=Width || ys>=Height)	return mglPoint(NAN,NAN,NAN);
 	mglPoint p, ps(xs,Height-ys,NAN);
 	float zz = Z[3*(xs+Width*(Height-1-ys))];
 	if(zz>-1e20f)	{	ps.z = zz;	real=false;	}
Index: src/base.cpp
===================================================================
--- src/base.cpp	(revision 908)
+++ src/base.cpp	(revision 910)
@@ -236,7 +236,7 @@
 	// scl&4 -- ???
 	// scl&8 -- bypass palette for enabling alpha
 	if(mgl_isnan(c) || mgl_isnan(a))	return -1;
-	bool norefr = mgl_isnan(n.x) && mgl_isnan(n.y);
+	bool norefr = mgl_isnan(n.x) && mgl_isnan(n.y) && !mgl_isnan(n.z);
 	if(scl>0)	ScalePoint(mat,p,n,!(scl&2));
 	if(mgl_isnan(p.x))	return -1;
 	a = (a>=0 && a<=1) ? a : AlphaDef;
Index: src/canvas.cpp
===================================================================
--- src/canvas.cpp	(revision 908)
+++ src/canvas.cpp	(revision 910)
@@ -786,7 +786,7 @@
 	x += B.x-iw/2+dx;	y += B.y-ih/2+dy;
 	// draw it
 	long k1=0,k2=0,k3=0,k4=0;
-	mglPoint p,q=mglPoint(NAN);
+	mglPoint p,q=mglPoint(NAN,NAN,NAN);
 
 	for(i=0;ff[i] && ff[i]!=':';i++)	if(strchr(MGL_COLORS,ff[i]))
 	{
@@ -937,7 +937,7 @@
 	char col = mglGetStyle(stl,0,&align);	align = align&3;
 	if(col==0)	col = 'k';
 	mreal y=inY+inH-h;
-	mglPoint p(inX + inW*align/2.,y,3*Depth),q(NAN);
+	mglPoint p(inX + inW*align/2.,y,3*Depth),q(NAN,NAN,NAN);
 	mglMatrix M=B;	M.norot=true;
 	if(title)	text_plot(AddPnt(&M,p,-1,q,-1,0),title,stl,size);
 	if(box)	//	draw boungind box
Index: examples/full_test.cpp
===================================================================
--- examples/full_test.cpp	(revision 908)
+++ examples/full_test.cpp	(revision 910)
@@ -71,7 +71,7 @@
 {
 	mglParse par;
 	setlocale(LC_CTYPE, "");
-	par.Execute(gr,"box\r\n\r\naxis");
+	par.Execute(gr,"light on:addlegend 'r' 'r':legend");
 }
 //-----------------------------------------------------------------------------
 #if !defined(_MSC_VER) && !defined(__BORLANDC__)