2013-11-23 20:39:05 +00:00
|
|
|
std::vector<Points::size_type> T_STD_VECTOR_INT
|
|
|
|
|
2013-06-23 15:07:12 +00:00
|
|
|
ZTable* O_OBJECT
|
2013-06-24 17:35:49 +00:00
|
|
|
TriangleMesh* O_OBJECT
|
2013-07-06 13:26:32 +00:00
|
|
|
Point* O_OBJECT
|
2013-07-15 20:57:22 +00:00
|
|
|
Line* O_OBJECT
|
2013-07-15 10:14:22 +00:00
|
|
|
Polyline* O_OBJECT
|
2013-08-29 22:06:10 +00:00
|
|
|
PolylineCollection* O_OBJECT
|
2013-07-15 10:14:22 +00:00
|
|
|
Polygon* O_OBJECT
|
2013-07-06 14:33:49 +00:00
|
|
|
ExPolygon* O_OBJECT
|
2013-07-13 22:38:01 +00:00
|
|
|
ExPolygonCollection* O_OBJECT
|
2013-07-18 17:09:07 +00:00
|
|
|
ExtrusionEntityCollection* O_OBJECT
|
2013-07-15 10:14:22 +00:00
|
|
|
ExtrusionPath* O_OBJECT
|
|
|
|
ExtrusionLoop* O_OBJECT
|
2013-12-20 00:36:42 +00:00
|
|
|
PrintState* O_OBJECT
|
2013-07-14 11:05:55 +00:00
|
|
|
Surface* O_OBJECT
|
2013-07-14 12:56:43 +00:00
|
|
|
SurfaceCollection* O_OBJECT
|
2013-07-15 10:14:22 +00:00
|
|
|
|
|
|
|
ExtrusionRole T_UV
|
2013-12-20 00:36:42 +00:00
|
|
|
PrintStep T_UV
|
2013-07-15 10:14:22 +00:00
|
|
|
SurfaceType T_UV
|
2013-07-16 18:09:53 +00:00
|
|
|
ClipperLib::JoinType T_UV
|
2013-07-16 22:29:09 +00:00
|
|
|
ClipperLib::PolyFillType T_UV
|
2013-07-15 21:12:13 +00:00
|
|
|
|
2013-09-09 20:27:58 +00:00
|
|
|
# we return these types whenever we want the items to be cloned
|
2013-08-26 22:52:20 +00:00
|
|
|
Points T_ARRAYREF
|
2013-07-16 18:09:53 +00:00
|
|
|
Lines T_ARRAYREF
|
|
|
|
Polygons T_ARRAYREF
|
2013-11-21 13:15:38 +00:00
|
|
|
Polylines T_ARRAYREF
|
2013-07-16 18:09:53 +00:00
|
|
|
ExPolygons T_ARRAYREF
|
2013-11-23 17:29:25 +00:00
|
|
|
Surfaces T_ARRAYREF
|
2013-07-15 21:12:13 +00:00
|
|
|
|
2013-09-09 20:27:58 +00:00
|
|
|
# we return these types whenever we want the items to be returned
|
|
|
|
# by reference and marked ::Ref because they're contained in another
|
|
|
|
# Perl object
|
2013-09-09 19:43:28 +00:00
|
|
|
Polygons* T_ARRAYREF_PTR
|
2013-09-02 18:22:20 +00:00
|
|
|
|
2013-09-09 20:27:58 +00:00
|
|
|
# we return these types whenever we want the items to be returned
|
|
|
|
# by reference and not marked ::Ref because they're newly allocated
|
|
|
|
# and not referenced by any Perl object
|
|
|
|
TriangleMeshPtrs T_PTR_ARRAYREF
|
|
|
|
|
2013-07-15 21:12:13 +00:00
|
|
|
INPUT
|
|
|
|
|
2013-07-16 18:09:53 +00:00
|
|
|
T_ARRAYREF
|
|
|
|
if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVAV) {
|
|
|
|
AV* av = (AV*)SvRV($arg);
|
|
|
|
const unsigned int len = av_len(av)+1;
|
|
|
|
$type* tmp = new $type(len);
|
|
|
|
for (unsigned int i = 0; i < len; i++) {
|
|
|
|
SV** elem = av_fetch(av, i, 0);
|
|
|
|
(*tmp)[i].from_SV_check(*elem);
|
|
|
|
}
|
|
|
|
$var = *tmp;
|
|
|
|
delete tmp;
|
|
|
|
} else
|
|
|
|
Perl_croak(aTHX_ \"%s: %s is not an array reference\",
|
|
|
|
${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]},
|
|
|
|
\"$var\");
|
|
|
|
|
2013-07-15 21:12:13 +00:00
|
|
|
OUTPUT
|
|
|
|
|
2013-07-16 18:09:53 +00:00
|
|
|
T_ARRAYREF
|
2013-07-15 21:23:35 +00:00
|
|
|
AV* av = newAV();
|
|
|
|
$arg = newRV_noinc((SV*)av);
|
2013-09-03 17:26:58 +00:00
|
|
|
sv_2mortal($arg);
|
2013-08-08 00:10:34 +00:00
|
|
|
av_extend(av, $var.size()-1);
|
|
|
|
int i = 0;
|
2013-09-03 17:26:58 +00:00
|
|
|
for (${type}::const_iterator it = $var.begin(); it != $var.end(); ++it) {
|
2013-09-09 20:27:58 +00:00
|
|
|
av_store(av, i++, it->to_SV_clone_ref());
|
2013-08-08 00:10:34 +00:00
|
|
|
}
|
|
|
|
$var.clear();
|
2013-09-02 18:22:20 +00:00
|
|
|
|
2013-09-09 19:43:28 +00:00
|
|
|
T_ARRAYREF_PTR
|
2013-09-02 18:22:20 +00:00
|
|
|
AV* av = newAV();
|
|
|
|
$arg = newRV_noinc((SV*)av);
|
2013-09-03 17:26:58 +00:00
|
|
|
sv_2mortal($arg);
|
2013-09-02 18:22:20 +00:00
|
|
|
av_extend(av, $var->size()-1);
|
|
|
|
int i = 0;
|
2013-09-09 19:43:28 +00:00
|
|
|
for (${ my $t = $type; $t =~ s/\*$//; \$t }::iterator it = $var->begin(); it != $var->end(); ++it) {
|
2013-09-09 20:27:58 +00:00
|
|
|
av_store(av, i++, it->to_SV_ref());
|
|
|
|
}
|
|
|
|
|
|
|
|
T_PTR_ARRAYREF
|
|
|
|
AV* av = newAV();
|
|
|
|
$arg = newRV_noinc((SV*)av);
|
|
|
|
sv_2mortal($arg);
|
|
|
|
av_extend(av, $var.size()-1);
|
|
|
|
int i = 0;
|
|
|
|
for (${type}::iterator it = $var.begin(); it != $var.end(); ++it) {
|
|
|
|
av_store(av, i++, (*it)->to_SV());
|
2013-09-02 18:22:20 +00:00
|
|
|
}
|