summaryrefslogtreecommitdiff
path: root/graphics/asymptote/jsfile.h
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-12-28 03:01:00 +0000
committerNorbert Preining <norbert@preining.info>2021-12-28 03:01:00 +0000
commitecdf859b6ce481abfd530425dcf6f0f764bd0001 (patch)
tree13bc161dc046876ac6c92fce5f9f5034ba9aa573 /graphics/asymptote/jsfile.h
parent790995b7e79697514364450bf9c04f1b8d500838 (diff)
CTAN sync 202112280300
Diffstat (limited to 'graphics/asymptote/jsfile.h')
-rw-r--r--graphics/asymptote/jsfile.h95
1 files changed, 62 insertions, 33 deletions
diff --git a/graphics/asymptote/jsfile.h b/graphics/asymptote/jsfile.h
index af54721361..430655d4ac 100644
--- a/graphics/asymptote/jsfile.h
+++ b/graphics/asymptote/jsfile.h
@@ -6,63 +6,92 @@
#include "triple.h"
#include "locate.h"
#include "prcfile.h"
+#include "abs3doutfile.h"
namespace camp {
-class jsfile {
+class jsfile : public abs3Doutfile {
jsofstream out;
public:
- jsfile() {}
- ~jsfile() {}
+ jsfile();
+ jsfile(string name);
+ ~jsfile();
- void copy(string name, bool header=false);
+ void close() override;
+
+ void addCurve(const triple& z0, const triple& c0,
+ const triple& c1, const triple& z1,
+ const triple& Min, const triple& Max) override;
+
+ void addCurve(const triple& z0, const triple& z1,
+ const triple& Min, const triple& Max) override;
+
+ void addPixel(const triple& z0, double width,
+ const triple& Min, const triple& Max) override;
+ void addTriangles(size_t nP, const triple* P, size_t nN, const triple* N,
+ size_t nC, const prc::RGBAColour* C, size_t nI,
+ const uint32_t (*PI)[3], const uint32_t (*NI)[3],
+ const uint32_t (*CI)[3],
+ const triple& Min, const triple& Max) override;
+
+ void addCylinder(const triple& center, double radius, double height,
+ const double& polar, const double& azimuth,
+ bool core) override;
+ void addDisk(const triple& center, double radius,
+ const double& polar, const double& azimuth) override;
+ void addTube(const triple *g, double width,
+ const triple& Min, const triple& Max, bool core) override;
+
+ void addMaterial(Material const& mat) override;
+
+ void addSphere(triple const& center, double radius) override;
+
+ void addHemisphere(triple const& center, double radius, double const& polar, double const& azimuth) override;
+
+ void addPatch(triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+
+ void
+ addStraightPatch(triple const* controls, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+
+ void
+ addBezierTriangle(triple const* control, triple const& Min, triple const& Max, prc::RGBAColour const* c) override;
+
+ void addStraightBezierTriangle(triple const* controls, triple const& Min, triple const& Max,
+ prc::RGBAColour const* c) override;
+
+
+ void svgtohtml(string name);
+#ifdef HAVE_LIBGLM
+ void precision(int digits) override {out.precision(digits);}
+#endif
+
+protected:
+ void copy(string name, bool header=false);
void header(string name);
void meta(string name, bool scalable=true);
void finish(string name);
void footer(string name);
- void svgtohtml(string name);
-#ifdef HAVE_LIBGLM
- void precision(int digits) {out.precision(digits);}
+#ifdef HAVE_LIBGLM
void open(string name);
void comment(string name);
void addColor(const prc::RGBAColour& c);
void addIndices(const uint32_t *I);
- void addPatch(const triple* controls, size_t n, const triple& Min,
+ void addRawPatch(const triple* controls, size_t n, const triple& Min,
const triple& Max, const prc::RGBAColour *colors, size_t nc);
-
- void addCurve(const triple& z0, const triple& c0,
- const triple& c1, const triple& z1,
- const triple& Min, const triple& Max);
-
- void addCurve(const triple& z0, const triple& z1,
- const triple& Min, const triple& Max);
-
- void addPixel(const triple& z0, double width,
- const triple& Min, const triple& Max);
-
- void addMaterial(size_t index);
-
- void addTriangles(size_t nP, const triple* P, size_t nN, const triple* N,
- size_t nC, const prc::RGBAColour* C, size_t nI,
- const uint32_t (*PI)[3], const uint32_t (*NI)[3],
- const uint32_t (*CI)[3],
- const triple& Min, const triple& Max);
void addSphere(const triple& center, double radius, bool half=false,
const double& polar=0.0, const double& azimuth=0.0);
- void addCylinder(const triple& center, double radius, double height,
- const double& polar, const double& azimuth,
- bool core=false);
- void addDisk(const triple& center, double radius,
- const double& polar=0.0, const double& azimuth=0.0);
- void addTube(const triple *g, double width,
- const triple& Min, const triple& Max, bool core=false);
+
+
+private:
+ bool finished;
+ string fileName;
#endif
};