Lines Matching defs:Path
691 U_DPSEUDO_OBJ *Path = (U_DPSEUDO_OBJ *)calloc(sizeof(U_DPSEUDO_OBJ),1); /* make poTypes and poPoints NULL */
693 if(Path){
694 Path->Elements = Elements;
695 Path->poPoints = U_PMF_SERIAL_set(U_PMF_RAW_OID, List); /* Empty PO to hold points as raw data */
697 Path->poTypes = U_PMF_SERIAL_set(U_PMF_RAW_OID, List); /* Empty PO to hold types as raw data */
700 Path->poPoints = U_PO_append(Path->poPoints, (char *)Points, Elements*sizeof(U_PMF_POINTF));
701 if(Path->poPoints){
703 Path->poTypes = U_PO_po_append(NULL, tpo, U_PMF_DROP_ELEMENTS); /* remove the leading Elements value*/
705 if(!Path->poTypes){ U_PO_free(&Path->poPoints); }
707 if(!Path->poPoints){ U_DPO_free(&Path); }
710 return(Path);
744 \param Path Address of a DoublePseudoObject holding the path to append to.
749 int U_PATH_moveto(U_DPSEUDO_OBJ *Path, U_PMF_POINTF Point, uint8_t Flags){
750 if(!Path){ return(0); }
757 tpo2 = U_PO_po_append(Path->poPoints, tpo, U_PMF_DROP_ELEMENTS);
760 Path->poPoints = tpo2;
765 tpo2= U_PO_po_append(Path->poTypes, tpo, U_PMF_DROP_ELEMENTS);
768 Path->poTypes = tpo2;
770 Path->Elements++;
776 \param Path Address of a DoublePseudoObject holding the path to append to.
781 int U_PATH_lineto(U_DPSEUDO_OBJ *Path, U_PMF_POINTF Point, uint8_t Flags){
782 if(!Path || !Path->Elements){ return(0); } /* must be at least one point to extend from */
783 if(Path->poTypes->Data[Path->Elements - 1] & U_PTP_CloseSubpath){ return(0); } /* cannot extend a closed subpath */
789 tpo2 = U_PO_po_append(Path->poPoints, tpo, U_PMF_DROP_ELEMENTS);
792 Path->poPoints = tpo2;
797 tpo2 = U_PO_po_append(Path->poTypes, tpo, U_PMF_DROP_ELEMENTS);
800 Path->poTypes = tpo2;
802 Path->Elements++;
808 \param Path Address of a DoublePseudoObject holding the path to act upon.
811 int U_PATH_closepath(U_DPSEUDO_OBJ *Path){
812 if(!Path || !Path->poTypes){ return(0); }
813 uint32_t Elements = Path->Elements;
814 uint8_t *Type = (uint8_t *)(Path->poTypes->Data) + Elements - 1;
822 \param Path Address of a DoublePseudoObject holding the path to append to.
829 int U_PATH_polylineto(U_DPSEUDO_OBJ *Path, uint32_t Elements, const U_PMF_POINTF *Points, uint8_t Flags, uint8_t StartSeg){
830 if(!Path || !Points){ return(0); }
837 tpo2 = U_PO_po_append(Path->poPoints, tpo, U_PMF_DROP_ELEMENTS);
840 Path->poPoints = tpo2;
847 tpo2 = U_PO_po_append(Path->poTypes, tpo, U_PMF_DROP_ELEMENTS);
850 Path->poTypes = tpo2;
852 Path->Elements += Elements;
859 \param Path Address of a DoublePseudoObject holding the path to append to.
870 int U_PATH_polybezierto(U_DPSEUDO_OBJ *Path, uint32_t Elements, const U_PMF_POINTF *Points, uint8_t Flags, uint8_t StartSeg){
871 if(!Path || !Points){ return(0); }
883 tpo2 = U_PO_po_append(Path->poPoints, tpo, U_PMF_DROP_ELEMENTS);
886 Path->poPoints = tpo2;
893 tpo2 = U_PO_po_append(Path->poTypes, tpo, U_PMF_DROP_ELEMENTS);
896 Path->poTypes = tpo2;
898 Path->Elements += Elements;
904 \param Path Address of a DoublePseudoObject holding the path to append to.
910 int U_PATH_polygon(U_DPSEUDO_OBJ *Path, uint32_t Elements, const U_PMF_POINTF *Points, uint8_t Flags){
911 int status = U_PATH_polylineto(Path, Elements, Points, Flags, U_SEG_NEW);
913 status = U_PATH_closepath(Path);
963 \param Path Address of a pointer to the U_PSEUDO_OBJ that holds points
974 int U_PATH_arcto(U_DPSEUDO_OBJ *Path, U_FLOAT Start, U_FLOAT Sweep, U_FLOAT Rot, U_PMF_RECTF *Rect, uint8_t Flags, int StartSeg){
986 if(!Path){ return(0); }
1022 if(StartSeg){ U_PATH_moveto(Path, P1, Flags); }
1023 else { U_PATH_lineto(Path, P1, Flags); }
1026 U_PATH_polybezierto(Path, 3, Bz, Flags, U_SEG_OLD );
1745 \param Path U_DPSEUDO_OBJ containing a path.
1749 U_PSEUDO_OBJ *U_PMF_PATH_set2(uint32_t Version, const U_DPSEUDO_OBJ *Path){
1750 if(!Path || !Path->Elements){ return(NULL); }
1752 int pad = (0x3 & Path->Elements);
1756 {&Path->Elements, 4, 1, U_LE },
1759 {Path->poPoints->Data, 4, 2*Path->Elements,U_XE }, /* raw OID, so no leading Elements to omit */
1760 {Path->poTypes->Data, 1, Path->Elements, U_XE }, /* raw OID, so no leading Elements to omit */
1772 \param Path U_DPSEUDO_OBJ containing a path.
1776 U_PSEUDO_OBJ *U_PMF_PATH_set3(uint32_t Version, const U_DPSEUDO_OBJ *Path){
1777 if(!Path || !Path->Elements){return(NULL); }
1779 int pad = (0x3 & Path->Elements);
1781 U_PMF_POINT *Points16 = POINTF_To_POINT16_LE((U_PMF_POINTF *)Path->poPoints->Data, Path->Elements);
1785 {&Path->Elements, 4, 1, U_LE },
1788 {Points16, 2, 2*Path->Elements,U_XE }, /* raw data, so no leading Elements to omit */
1789 {Path->poTypes->Data, 1, Path->Elements, U_XE }, /* raw data, so no leading Elements to omit */
2151 \param Path U_PSEUDO_OBJ containing U_PMF_PATH object
2155 U_PSEUDO_OBJ *U_PMF_BOUNDARYPATHDATA_set(const U_PSEUDO_OBJ *Path){
2156 if(!Path || Path->Type != U_PMF_PATH_OID)return(NULL);
2158 uint32_t Used = Path->Used;
2161 {Path->Data, Path->Used, 1, U_XE},
2527 \param Path U_PSEUDO_OBJ containing a U_PMF_PATH object
2531 U_PSEUDO_OBJ *U_PMF_FILLPATHOBJ_set(const U_PSEUDO_OBJ *Path){
2532 if(!Path || (Path->Type != U_PMF_PATH_OID))return(NULL);
2534 {Path->Data, Path->Used, 1, U_XE},
2749 \param Path U_PSEUDO_OBJ containing a U_PMF_PATH object
2754 U_PSEUDO_OBJ *U_PMF_LINEPATH_set(const U_PSEUDO_OBJ *Path){
2755 if(!Path || (Path->Type != U_PMF_PATH_OID))return(NULL);
2757 {&Path->Data, Path->Used, 1, U_XE},
3309 \param Path U_PSEUDO_OBJ containing a U_PMF_PATH object
3314 U_PSEUDO_OBJ *U_PMF_REGIONNODEPATH_set(const U_PSEUDO_OBJ *Path){
3315 if(!Path || (Path->Type != U_PMF_PATH_OID)){ return(NULL); }
3317 uint32_t Used = Path->Used;
3321 {Path->Data, Path->Used, 1, U_XE},
5888 \param FillData Path to fill (optional)
5889 \param LineData Path to stroke (optional)
5968 \param Data Path specification