7 IconRenderer::~IconRenderer()
11 bool IconRenderer::init()
16 void IconRenderer::shutdown()
21 // Shapes icon renderer
30 struct ShapesIconsPriv {
31 Mesh *shape[NUM_SHAPES];
34 ShapesIcons::ShapesIcons()
36 priv = new ShapesIconsPriv;
37 memset(priv, 0, sizeof *priv);
40 ShapesIcons::~ShapesIcons()
46 bool ShapesIcons::init()
50 for(int i=0; i<NUM_SHAPES; i++) {
51 priv->shape[i] = new Mesh;
56 gen_geosphere(priv->shape[SHAPE_SPHERE], 0.5 * s, 0);
57 gen_box(priv->shape[SHAPE_BOX], 0.7 * s, 0.7 * s, 0.7 * s);
58 gen_torus(priv->shape[SHAPE_TORUS], 0.4 * s, 0.1 * s, 12, 6);
60 gen_cone(priv->shape[SHAPE_CONE], 0.5 * s, 1.0 * s, 8, 2, 1);
61 xform.translation(0, -0.33 * s, 0);
62 priv->shape[SHAPE_CONE]->apply_xform(xform, Mat4::identity);
67 void ShapesIcons::shutdown()
69 for(int i=0; i<NUM_SHAPES; i++) {
70 delete priv->shape[i];
74 static int fstype_shape(FSNodeType type)
89 void ShapesIcons::draw(FSNode *node) const
91 int s = fstype_shape(node->type);
92 priv->shape[s]->draw_wire();