From 8da0f5c82fb91c2731cd2e90a875fe92c6557407 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Fri, 6 May 2016 00:07:27 +0800 Subject: Use the new SMELT rendering API. --- visualization/extrasmeltutils.hpp | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) (limited to 'visualization/extrasmeltutils.hpp') diff --git a/visualization/extrasmeltutils.hpp b/visualization/extrasmeltutils.hpp index 4b6c167..8a4a1bc 100644 --- a/visualization/extrasmeltutils.hpp +++ b/visualization/extrasmeltutils.hpp @@ -5,15 +5,29 @@ #include class smEntity3D { + friend class smEntity3DBuffer; private: - std::vector surfaces; - static SMELT *sm; + std::vector vertices; + std::vector indices; public: - smEntity3D(); - ~smEntity3D(){surfaces.clear();sm->smRelease();} - void pushSurface(smQuad q); - void pushCube(smvec3d a,smvec3d b,DWORD color,DWORD mask); - void drawAt(smvec3d p); - void drawWithTransformation(smMatrix t,smvec3d p); + smEntity3D(){vertices.clear();indices.clear();} + ~smEntity3D(){vertices.clear();indices.clear();} + void addVerices(int n,...); + void addIndices(int n,...); + static smEntity3D cube(smvec3d tl,smvec3d br,DWORD color); }; +class smEntity3DBuffer +{ + private: + std::vector vertices; + std::vector indices; + static SMELT* sm; + public: + smEntity3DBuffer(); + ~smEntity3DBuffer(){sm->smRelease();} + void addTransformedEntity(smEntity3D *entity,smMatrix t,smvec3d p); + void drawBatch(); + +}; +extern smVertex makeVertex(float x,float y,float z,DWORD color,float tx,float ty); #endif // EXTRASMELTUTILS_H -- cgit v1.2.3