diff dmscene.h @ 70:03aa729a9e90

Refactor PLY file parsing from dmscene.* to dmply.* and some helper functions into dmutil.h
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 16 Dec 2019 07:51:05 +0200
parents 701bef61dcf1
children 1ed7f9d85342
line wrap: on
line diff
--- a/dmscene.h	Mon Dec 16 06:51:40 2019 +0200
+++ b/dmscene.h	Mon Dec 16 07:51:05 2019 +0200
@@ -11,116 +11,10 @@
 
 #include "dmutil.h"
 #include <cstdint>
-#include <fstream>
-#include <unordered_map>
-
-
-#define PLY_PROP_VERTEX_INDICES  "vertex_indices"
-#define PLY_ELEM_FACE            "face"
-#define PLY_ELEM_VERTEX          "vertex"
-
-
-enum DMPLYFormat
-{
-    PLY_FMT_UNKNOWN,
-    PLY_FMT_ASCII,
-    PLY_FMT_BIN_LE,
-    PLY_FMT_BIN_BE
-};
-
-
-enum DMPLYPropType
-{
-    PLY_TYPE_NONE,
-    PLY_TYPE_LIST,
-
-    PLY_TYPE_UINT8,
-    PLY_TYPE_INT8,
-    PLY_TYPE_INT16,
-    PLY_TYPE_UINT16,
-    PLY_TYPE_INT32,
-    PLY_TYPE_UINT32,
-    PLY_TYPE_FLOAT,
-    PLY_TYPE_DOUBLE
-};
-
-
-/* Structures
- */
-union DMPLYPropValue
-{
-    double v_double;
-    float v_float;
-    unsigned int v_uint;
-    int v_int;
-};
 
 
-struct DMPLYFileProperty
-{
-    std::string name;
-    DMPLYPropType
-        type,
-        list_num_type,
-        list_values_type;
-
-    DMPLYPropValue value, list_num_value;
-    std::vector<DMPLYPropValue> list_values;
-};
-
-
-struct DMPLYFileElement
-{
-    int value;
-    std::string name;
-
-    std::unordered_map<std::string, DMPLYFileProperty> prop_map;
-    std::vector<DMPLYFileProperty *> properties;
-
-    DMPLYFileProperty *checkProp(const std::string &prop)
-    {
-        if (prop_map.count(prop))
-            return &prop_map[prop];
-        else
-            return 0;
-    }
-};
-
-
-struct DMTextFileInfo
-{
-    int nline, state;
-    std::string filename;
-    std::string line;
-    std::ifstream file;
-    std::string *key;
-};
-
-
-struct DMPLYFileInfo : DMTextFileInfo
-{
-    DMPLYFormat format;
-
-    std::unordered_map<std::string, DMPLYFileElement> elem_map;
-    std::vector<DMPLYFileElement *> elements;
-    DMPLYFileElement *element;
-
-    DMPLYFileInfo()
-    {
-        element = 0;
-        format = PLY_FMT_UNKNOWN;
-    }
-
-    DMPLYFileElement *checkElem(const std::string &elem)
-    {
-        if (elem_map.count(elem))
-            return &elem_map[elem];
-        else
-            return 0;
-    }
-};
-
-
+/* Structures and classes
+ */
 struct DMVector3
 {
     float x, y, z;
@@ -159,9 +53,6 @@
         fragShaderFile, vertShaderFile,
         fragShaderStr, vertShaderStr;
 
-    bool loadFromPLY(const std::string &filename);
-    bool loadFromPLY(const std::string &filename, DMPLYFileInfo &info);
-
     DMModel()
     {
         nfaces = nvertices = 0;