/*****
* drawlayer.h
* John Bowman
*
* Start a new postscript/TeX layer in picture.
*****/
#ifndef DRAWLAYER_H
#define DRAWLAYER_H
#include "drawelement.h"
namespace camp {
class drawLayer : public drawElement {
public:
drawLayer() {}
virtual ~drawLayer() {}
bool islayer() {return true;}
};
class drawBBox : public drawLayer {
protected:
bbox box;
public:
drawBBox() : box() {}
drawBBox(const bbox& box) : box(box) {}
bool islayer() {return false;}
virtual ~drawBBox() {}
bool write(texfile *out, const bbox& b) {
out->BBox(box.empty ? b : box);
return true;
}
};
class drawNewPage : public drawBBox {
public:
drawNewPage() : drawBBox() {}
drawNewPage(const bbox& box) : drawBBox(box) {}
virtual ~drawNewPage() {}
bool islayer() {return true;}
bool islabel() {return true;}
bool isnewpage() {return true;}
bool write(texfile *out, const bbox& b) {
out->newpage(box.empty ? b : box);
return true;
}
};
}
GC_DECLARE_PTRFREE(camp::drawLayer);
GC_DECLARE_PTRFREE(camp::drawBBox);
GC_DECLARE_PTRFREE(camp::drawNewPage);
#endif