summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/drawgroup.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/drawgroup.h')
-rw-r--r--Build/source/utils/asymptote/drawgroup.h33
1 files changed, 15 insertions, 18 deletions
diff --git a/Build/source/utils/asymptote/drawgroup.h b/Build/source/utils/asymptote/drawgroup.h
index 6449f6cd08f..872d85b9d86 100644
--- a/Build/source/utils/asymptote/drawgroup.h
+++ b/Build/source/utils/asymptote/drawgroup.h
@@ -30,7 +30,7 @@ public:
bool endgroup() {return true;}
};
-class drawBegin3 : public drawElement {
+class drawBegin3 : public drawElementLC {
string name;
double compression;
double granularity;
@@ -43,8 +43,8 @@ class drawBegin3 : public drawElement {
int interaction;
public:
drawBegin3(string name, double compression, double granularity,
- bool closed, bool tessellate, bool dobreak, bool nobreak,
- triple center, int interaction) :
+ bool closed, bool tessellate, bool dobreak, bool nobreak,
+ triple center, int interaction) :
name(name), compression(compression), granularity(granularity),
closed(closed), tessellate(tessellate), dobreak(dobreak), nobreak(nobreak),
center(center), interaction(interaction) {}
@@ -52,9 +52,9 @@ public:
virtual ~drawBegin3() {}
bool begingroup() {return true;}
+ bool begingroup3() {return true;}
- bool write(prcfile *out, unsigned int *count, vm::array *index,
- vm::array *origin, double compressionlimit,
+ bool write(prcfile *out, unsigned int *count, double compressionlimit,
groupsmap& groups) {
groupmap& group=groups.back();
if(name.empty()) name="group";
@@ -67,29 +67,26 @@ public:
buf << name;
if(c > 0) buf << "-" << (c+1);
- if(interaction == BILLBOARD) {
+ if(interaction == BILLBOARD)
buf << "-" << (*count)++ << "\001";
- index->push((Int) origin->size());
- origin->push(center);
- }
PRCoptions options(compression > 0.0 ?
max(compression,compressionlimit) : 0.0,
granularity,closed,tessellate,dobreak,nobreak);
groups.push_back(groupmap());
- out->begingroup(buf.str().c_str(),&options);
+ out->begingroup(buf.str().c_str(),&options,T);
return true;
}
- drawBegin3(const vm::array& t, const drawBegin3 *s) :
- name(s->name), compression(s->compression), granularity(s->granularity),
- closed(s->closed), tessellate(s->tessellate), dobreak(s->dobreak),
- nobreak(s->nobreak), interaction(s->interaction) {
- center=run::operator *(t,s->center);
+ drawBegin3(const double* t, const drawBegin3 *s) :
+ drawElementLC(t, s), name(s->name), compression(s->compression),
+ granularity(s->granularity), closed(s->closed), tessellate(s->tessellate),
+ dobreak(s->dobreak), nobreak(s->nobreak), interaction(s->interaction) {
+ center=t*s->center;
}
- drawElement *transformed(const array& t) {
+ drawElement *transformed(const double* t) {
return new drawBegin3(t,this);
}
};
@@ -101,9 +98,9 @@ public:
virtual ~drawEnd3() {}
bool endgroup() {return true;}
+ bool endgroup3() {return true;}
- bool write(prcfile *out, unsigned int *, vm::array *, vm::array *, double,
- groupsmap& groups) {
+ bool write(prcfile *out, unsigned int *, double, groupsmap& groups) {
groups.pop_back();
out->endgroup();
return true;