MCPcopy Create free account
hub / github.com/MapServer/MapServer / parse_transform_args

Function parse_transform_args

renderers/agg/src/agg_svg_parser.cpp:765–801  ·  view source on GitHub ↗

-------------------------------------------------------------

Source from the content-addressed store, hash-verified

763
764 //-------------------------------------------------------------
765 static unsigned parse_transform_args(const char* str,
766 double* args,
767 unsigned max_na,
768 unsigned* na)
769 {
770 *na = 0;
771 const char* ptr = str;
772 while(*ptr && *ptr != '(') ++ptr;
773 if(*ptr == 0)
774 {
775 throw exception("parse_transform_args: Invalid syntax");
776 }
777 const char* end = ptr;
778 while(*end && *end != ')') ++end;
779 if(*end == 0)
780 {
781 throw exception("parse_transform_args: Invalid syntax");
782 }
783
784 while(ptr < end)
785 {
786 if(is_numeric(*ptr))
787 {
788 if(*na >= max_na)
789 {
790 throw exception("parse_transform_args: Too many arguments");
791 }
792 args[(*na)++] = atof(ptr);
793 while(ptr < end && is_numeric(*ptr)) ++ptr;
794 }
795 else
796 {
797 ++ptr;
798 }
799 }
800 return unsigned(end - str);
801 }
802
803 //-------------------------------------------------------------
804 unsigned parser::parse_matrix(const char* str)

Callers 6

parse_matrixMethod · 0.85
parse_translateMethod · 0.85
parse_rotateMethod · 0.85
parse_scaleMethod · 0.85
parse_skew_xMethod · 0.85
parse_skew_yMethod · 0.85

Calls 2

exceptionClass · 0.85
is_numericFunction · 0.85

Tested by

no test coverage detected