Home | History | Annotate | Download | only in MagickCore

Lines Matching defs:primitive_info

689 %        const PrimitiveInfo *primitive_info)
698 % o primitive_info: Specifies a pointer to an PrimitiveInfo structure.
718 static PathInfo *ConvertPrimitiveToPath(const PrimitiveInfo *primitive_info)
741 switch (primitive_info->primitive)
752 for (i=0; primitive_info[i].primitive != UndefinedPrimitive; i++) ;
764 for (i=0; primitive_info[i].primitive != UndefinedPrimitive; i++)
769 coordinates=(ssize_t) primitive_info[i].coordinates;
770 p=primitive_info[i].point;
778 if ((i == 0) || (fabs(q.x-primitive_info[i].point.x) >= DrawEpsilon) ||
779 (fabs(q.y-primitive_info[i].point.y) >= DrawEpsilon))
782 path_info[n].point=primitive_info[i].point;
783 q=primitive_info[i].point;
788 if ((fabs(p.x-primitive_info[i].point.x) < DrawEpsilon) &&
789 (fabs(p.y-primitive_info[i].point.y) < DrawEpsilon))
796 path_info[n].point=primitive_info[i].point;
1281 primitive_info[6];
1355 primitive_info[0].primitive=RectanglePrimitive;
1356 TraceRectangle(primitive_info,start,end);
1357 primitive_info[0].method=ReplaceMethod;
1358 coordinates=(ssize_t) primitive_info[0].coordinates;
1359 primitive_info[coordinates].primitive=UndefinedPrimitive;
1360 (void) DrawPrimitive(image,clone_info,primitive_info,exception);
1369 primitive_info[0].primitive=RectanglePrimitive;
1370 TraceRectangle(primitive_info,start,end);
1371 primitive_info[0].method=ReplaceMethod;
1372 coordinates=(ssize_t) primitive_info[0].coordinates;
1373 primitive_info[coordinates].primitive=UndefinedPrimitive;
1374 (void) DrawPrimitive(image,clone_info,primitive_info,exception);
1478 % const PrimitiveInfo *primitive_info,Image *image,
1485 % o primitive_info: Specifies a pointer to a PrimitiveInfo structure.
1493 const PrimitiveInfo *primitive_info,Image *image,ExceptionInfo *exception)
1528 for (i=0; primitive_info[i].primitive != UndefinedPrimitive; i++) ;
1536 dash_polygon[0]=primitive_info[0];
1568 dx=primitive_info[i].point.x-primitive_info[i-1].point.x;
1569 dy=primitive_info[i].point.y-primitive_info[i-1].point.y;
1583 dash_polygon[0]=primitive_info[0];
1584 dash_polygon[0].point.x=(double) (primitive_info[i-1].point.x+dx*
1586 dash_polygon[0].point.y=(double) (primitive_info[i-1].point.y+dy*
1594 dash_polygon[j]=primitive_info[i-1];
1595 dash_polygon[j].point.x=(double) (primitive_info[i-1].point.x+dx*
1597 dash_polygon[j].point.y=(double) (primitive_info[i-1].point.y+dy*
1613 dash_polygon[j]=primitive_info[i];
1619 dash_polygon[j]=primitive_info[i-1];
1680 static inline void TracePoint(PrimitiveInfo *primitive_info,
1683 primitive_info->coordinates=1;
1684 primitive_info->point=point;
1729 *primitive_info;
1795 primitive_info=(PrimitiveInfo *) AcquireQuantumMemory((size_t) number_points,
1796 sizeof(*primitive_info));
1797 if (primitive_info == (PrimitiveInfo *) NULL)
2908 primitive_info[0].point.x=0.0;
2909 primitive_info[0].point.y=0.0;
2930 primitive_info[i].primitive=primitive_type;
2931 primitive_info[i].point=point;
2932 primitive_info[i].coordinates=0;
2933 primitive_info[i].method=FloodfillMethod;
2938 primitive_info=(PrimitiveInfo *) ResizeQuantumMemory(primitive_info,
2939 (size_t) number_points,sizeof(*primitive_info));
2940 if ((primitive_info == (PrimitiveInfo *) NULL) ||
2948 primitive_info[j].primitive=primitive_type;
2949 primitive_info[j].coordinates=(size_t) x;
2950 primitive_info[j].method=FloodfillMethod;
2951 primitive_info[j].text=(char *) NULL;
2955 bounds.x1=primitive_info[j].point.x;
2956 bounds.y1=primitive_info[j].point.y;
2957 bounds.x2=primitive_info[j].point.x;
2958 bounds.y2=primitive_info[j].point.y;
2959 for (k=1; k < (ssize_t) primitive_info[j].coordinates; k++)
2961 point=primitive_info[j+k].point;
2974 length=primitive_info[j].coordinates;
2998 if (primitive_info[j].coordinates > 107)
3001 length=BezierQuantum*primitive_info[j].coordinates;
3054 primitive_info=(PrimitiveInfo *) ResizeQuantumMemory(primitive_info,
3055 (size_t) number_points,sizeof(*primitive_info));
3056 if ((primitive_info == (PrimitiveInfo *) NULL) ||
3070 if (primitive_info[j].coordinates != 1)
3075 TracePoint(primitive_info+j,primitive_info[j].point);
3076 i=(ssize_t) (j+primitive_info[j].coordinates);
3081 if (primitive_info[j].coordinates != 2)
3086 TraceLine(primitive_info+j,primitive_info[j].point,
3087 primitive_info[j+1].point);
3088 i=(ssize_t) (j+primitive_info[j].coordinates);
3093 if (primitive_info[j].coordinates != 2)
3098 TraceRectangle(primitive_info+j,primitive_info[j].point,
3099 primitive_info[j+1].point);
3100 i=(ssize_t) (j+primitive_info[j].coordinates);
3105 if (primitive_info[j].coordinates != 3)
3110 TraceRoundRectangle(primitive_info+j,primitive_info[j].point,
3111 primitive_info[j+1].point,primitive_info[j+2].point);
3112 i=(ssize_t) (j+primitive_info[j].coordinates);
3117 if (primitive_info[j].coordinates != 3)
3122 TraceArc(primitive_info+j,primitive_info[j].point,
3123 primitive_info[j+1].point,primitive_info[j+2].point);
3124 i=(ssize_t) (j+primitive_info[j].coordinates);
3129 if (primitive_info[j].coordinates != 3)
3134 TraceEllipse(primitive_info+j,primitive_info[j].point,
3135 primitive_info[j+1].point,primitive_info[j+2].point);
3136 i=(ssize_t) (j+primitive_info[j].coordinates);
3141 if (primitive_info[j].coordinates != 2)
3146 TraceCircle(primitive_info+j,primitive_info[j].point,
3147 primitive_info[j+1].point);
3148 i=(ssize_t) (j+primitive_info[j].coordinates);
3155 primitive_info[i]=primitive_info[j];
3156 primitive_info[i].coordinates=0;
3157 primitive_info[j].coordinates++;
3163 if (primitive_info[j].coordinates < 3)
3168 TraceBezier(primitive_info+j,primitive_info[j].coordinates);
3169 i=(ssize_t) (j+primitive_info[j].coordinates);
3174 i=(ssize_t) (j+TracePath(primitive_info+j,token));
3183 if (primitive_info[j].coordinates != 1)
3193 primitive_info[j].method=(PaintMethod) method;
3198 if (primitive_info[j].coordinates != 1)
3205 primitive_info[j].text=AcquireString(token);
3210 if (primitive_info[j].coordinates != 2)
3216 primitive_info[j].text=AcquireString(token);
3220 if (primitive_info == (PrimitiveInfo *) NULL)
3226 primitive_info[i].primitive=UndefinedPrimitive;
3232 for (i=0; primitive_info[i].primitive != UndefinedPrimitive; i++)
3234 point=primitive_info[i].point;
3235 primitive_info[i].point.x=graphic_context[n]->affine.sx*point.x+
3237 primitive_info[i].point.y=graphic_context[n]->affine.rx*point.x+
3239 point=primitive_info[i].point;
3248 if (primitive_info[i].primitive == ImagePrimitive)
3260 status&=DrawPrimitive(image,graphic_context[n],primitive_info,
3263 if (primitive_info->text != (char *) NULL)
3264 primitive_info->text=(char *) RelinquishMagickMemory(
3265 primitive_info->text);
3279 if (primitive_info != (PrimitiveInfo *) NULL)
3280 primitive_info=(PrimitiveInfo *) RelinquishMagickMemory(primitive_info);
3735 % const DrawInfo *draw_info,const PrimitiveInfo *primitive_info,
3744 % o primitive_info: Specifies a pointer to a PrimitiveInfo structure.
3764 const PrimitiveInfo *primitive_info)
3784 path_info=ConvertPrimitiveToPath(primitive_info);
3969 const DrawInfo *draw_info,const PrimitiveInfo *primitive_info,
4008 assert(primitive_info != (PrimitiveInfo *) NULL);
4009 if (primitive_info->coordinates == 0)
4011 polygon_info=AcquirePolygonThreadSet(primitive_info);
4020 fill=(primitive_info->method == FillToBorderMethod) ||
4021 (primitive_info->method == FloodfillMethod) ? MagickTrue : MagickFalse;
4050 if ((primitive_info->coordinates == 1) ||
4095 if ((x == (ssize_t) ceil(primitive_info->point.x-0.5)) &&
4096 (y == (ssize_t) ceil(primitive_info->point.y-0.5)))
4208 % PrimitiveInfo *primitive_info,ExceptionInfo *exception)
4216 % o primitive_info: Specifies a pointer to a PrimitiveInfo structure.
4222 static void LogPrimitiveInfo(const PrimitiveInfo *primitive_info)
4248 x=(ssize_t) ceil(primitive_info->point.x-0.5);
4249 y=(ssize_t) ceil(primitive_info->point.y-0.5);
4250 switch (primitive_info->primitive)
4256 methods[primitive_info->method]);
4263 methods[primitive_info->method]);
4276 methods[primitive_info->method]);
4289 p=primitive_info[0].point;
4292 for (i=0; primitive_info[i].primitive != UndefinedPrimitive; i++)
4294 point=primitive_info[i].point;
4297 coordinates=(ssize_t) primitive_info[i].coordinates;
4302 point=primitive_info[i].point;
4325 const DrawInfo *draw_info,const PrimitiveInfo *primitive_info,
4355 x=(ssize_t) ceil(primitive_info->point.x-0.5);
4356 y=(ssize_t) ceil(primitive_info->point.y-0.5);
4358 switch (primitive_info->primitive)
4364 switch (primitive_info->method)
4433 if (primitive_info->method == FillToBorderMethod)
4441 primitive_info->method == FloodfillMethod ? MagickFalse :
4480 switch (primitive_info->method)
4546 if (primitive_info->method == FillToBorderMethod)
4553 primitive_info->method == FloodfillMethod ? MagickFalse :
4611 if (primitive_info->text == (char *) NULL)
4614 if (LocaleNCompare(primitive_info->text,"data:",5) == 0)
4615 composite_image=ReadInlineImage(clone_info,primitive_info->text,
4619 (void) CopyMagickString(clone_info->filename,primitive_info->text,
4628 x1=(ssize_t) ceil(primitive_info[1].point.x-0.5);
4629 y1=(ssize_t) ceil(primitive_info[1].point.y-0.5);
4637 "%gx%g!",primitive_info[1].point.x,primitive_info[1].point.y);
4696 if (primitive_info->text == (char *) NULL)
4699 (void) CloneString(&clone_info->text,primitive_info->text);
4701 primitive_info->point.x,primitive_info->point.y);
4717 LogPrimitiveInfo(primitive_info);
4730 status&=DrawPolygonPrimitive(image,clone_info,primitive_info,
4733 (void) DrawDashPolygon(draw_info,primitive_info,image,exception);
4747 for (i=0; primitive_info[i].primitive != UndefinedPrimitive; i++) ;
4749 (fabs(primitive_info[i-1].point.x-primitive_info[0].point.x) < DrawEpsilon) &&
4750 (fabs(primitive_info[i-1].point.y-primitive_info[0].point.y) < DrawEpsilon) ?
4752 i=(ssize_t) primitive_info[0].coordinates;
4755 (primitive_info[i].primitive != UndefinedPrimitive))
4757 (void) DrawPolygonPrimitive(image,draw_info,primitive_info,
4763 (void) DrawPolygonPrimitive(image,draw_info,primitive_info,
4770 status&=DrawPolygonPrimitive(image,clone_info,primitive_info,
4773 status&=DrawStrokePolygon(image,draw_info,primitive_info,exception);
4776 status&=DrawPolygonPrimitive(image,draw_info,primitive_info,exception);
4804 % const DrawInfo *draw_info,const PrimitiveInfo *primitive_info)
4812 % o primitive_info: Specifies a pointer to a PrimitiveInfo structure.
4818 const PrimitiveInfo *primitive_info,ExceptionInfo *exception)
4827 linecap[i]=(*primitive_info);
4838 const DrawInfo *draw_info,const PrimitiveInfo *primitive_info,
4874 for (p=primitive_info; p->primitive != UndefinedPrimitive; p+=p->coordinates)
5125 static void TraceArc(PrimitiveInfo *primitive_info,const PointInfo start,
5136 TraceEllipse(primitive_info,center,radii,degrees);
5139 static void TraceArcPath(PrimitiveInfo *primitive_info,const PointInfo start,
5172 TracePoint(primitive_info,end);
5179 TraceLine(primitive_info,start,end);
5190 TraceLine(primitive_info,start,end);
5224 p=primitive_info;
5245 p->point.x=(p == primitive_info) ? start.x : (p-1)->point.x;
5246 p->point.y=(p == primitive_info) ? start.y : (p-1)->point.y;
5264 primitive_info->coordinates=(size_t) (p-primitive_info);
5265 for (i=0; i < (ssize_t) primitive_info->coordinates; i++)
5267 p->primitive=primitive_info->primitive;
5272 static void TraceBezier(PrimitiveInfo *primitive_info,
5304 alpha=fabs(primitive_info[j].point.x-primitive_info[i].point.x);
5307 alpha=fabs(primitive_info[j].point.y-primitive_info[i].point.y);
5324 end=primitive_info[number_coordinates-1].point;
5330 p=primitive_info;
5347 p=primitive_info;
5355 primitive_info->coordinates=(size_t) (p-primitive_info);
5356 for (i=0; i < (ssize_t) primitive_info->coordinates; i++)
5358 p->primitive=primitive_info->primitive;
5365 static void TraceCircle(PrimitiveInfo *primitive_info,const PointInfo start,
5384 TraceEllipse(primitive_info,start,offset,degrees);
5387 static void TraceEllipse(PrimitiveInfo *primitive_info,const PointInfo start,
5410 TracePoint(primitive_info,start);
5422 for (p=primitive_info; angle.x < angle.y; angle.x+=step)
5433 primitive_info->coordinates=(size_t) (p-primitive_info);
5434 for (i=0; i < (ssize_t) primitive_info->coordinates; i++)
5436 p->primitive=primitive_info->primitive;
5441 static void TraceLine(PrimitiveInfo *primitive_info,const PointInfo start,
5444 TracePoint(primitive_info,start);
5448 primitive_info->primitive=PointPrimitive;
5449 primitive_info->coordinates=1;
5452 TracePoint(primitive_info+1,end);
5453 (primitive_info+1)->primitive=primitive_info->primitive;
5454 primitive_info->coordinates=2;
5457 static size_t TracePath(PrimitiveInfo *primitive_info,const char *path)
5496 primitive_type=primitive_info->primitive;
5497 q=primitive_info;
5635 if (q != primitive_info)
5637 primitive_info->coordinates=(size_t) (q-primitive_info);
5638 number_coordinates+=primitive_info->coordinates;
5639 primitive_info=q;
5799 primitive_info->coordinates=(size_t) (q-primitive_info);
5800 number_coordinates+=primitive_info->coordinates;
5801 primitive_info=q;
5814 primitive_info->coordinates=(size_t) (q-primitive_info);
5815 number_coordinates+=primitive_info->coordinates;
5823 q=primitive_info;
5827 static void TraceRectangle(PrimitiveInfo *primitive_info,const PointInfo start,
5839 p=primitive_info;
5854 primitive_info->coordinates=(size_t) (p-primitive_info);
5855 for (i=0; i < (ssize_t) primitive_info->coordinates; i++)
5857 p->primitive=primitive_info->primitive;
5862 static void TraceRoundRectangle(PrimitiveInfo *primitive_info,
5876 p=primitive_info;
5907 TracePoint(p,primitive_info->point);
5909 primitive_info->coordinates=(size_t) (p-primitive_info);
5910 for (i=0; i < (ssize_t) primitive_info->coordinates; i++)
5912 p->primitive=primitive_info->primitive;
5917 static void TraceSquareLinecap(PrimitiveInfo *primitive_info,
5937 dx=primitive_info[0].point.x-primitive_info[i].point.x;
5938 dy=primitive_info[0].point.y-primitive_info[i].point.y;
5946 primitive_info[0].point.x=(double) (primitive_info[i].point.x+
5948 primitive_info[0].point.y=(double) (primitive_info[i].point.y+
5952 dx=primitive_info[number_vertices-1].point.x-primitive_info[j].point.x;
5953 dy=primitive_info[number_vertices-1].point.y-primitive_info[j].point.y;
5959 primitive_info[number_vertices-1].point.x=(double) (primitive_info[j].point.x+
5961 primitive_info[number_vertices-1].point.y=(double) (primitive_info[j].point.y+
5972 const PrimitiveInfo *primitive_info)
6026 number_vertices=primitive_info->coordinates;
6037 (void) CopyMagickMemory(polygon_primitive,primitive_info,(size_t)
6040 (primitive_info[number_vertices-1].point.x == primitive_info[0].point.x) &&
6041 (primitive_info[number_vertices-1].point.y == primitive_info[0].point.y) ?
6046 polygon_primitive[number_vertices]=primitive_info[1];