Openholo  v5.0
Open Source Digital Holographic Library
FBXParser.h
Go to the documentation of this file.
1 /*M///////////////////////////////////////////////////////////////////////////////////////
2 //
3 // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 //
5 // By downloading, copying, installing or using the software you agree to this license.
6 // If you do not agree to this license, do not download, install, copy or use the software.
7 //
8 //
9 // License Agreement
10 // For Open Source Digital Holographic Library
11 //
12 // Openholo library is free software;
13 // you can redistribute it and/or modify it under the terms of the BSD 2-Clause license.
14 //
15 // Copyright (C) 2017-2024, Korea Electronics Technology Institute. All rights reserved.
16 // E-mail : contact.openholo@gmail.com
17 // Web : http://www.openholo.org
18 //
19 // Redistribution and use in source and binary forms, with or without modification,
20 // are permitted provided that the following conditions are met:
21 //
22 // 1. Redistribution's of source code must retain the above copyright notice,
23 // this list of conditions and the following disclaimer.
24 //
25 // 2. Redistribution's in binary form must reproduce the above copyright notice,
26 // this list of conditions and the following disclaimer in the documentation
27 // and/or other materials provided with the distribution.
28 //
29 // This software is provided by the copyright holders and contributors "as is" and
30 // any express or implied warranties, including, but not limited to, the implied
31 // warranties of merchantability and fitness for a particular purpose are disclaimed.
32 // In no event shall the copyright holder or contributors be liable for any direct,
33 // indirect, incidental, special, exemplary, or consequential damages
34 // (including, but not limited to, procurement of substitute goods or services;
35 // loss of use, data, or profits; or business interruption) however caused
36 // and on any theory of liability, whether in contract, strict liability,
37 // or tort (including negligence or otherwise) arising in any way out of
38 // the use of this software, even if advised of the possibility of such damage.
39 //
40 // This software contains opensource software released under GNU Generic Public License,
41 // NVDIA Software License Agreement, or CUDA supplement to Software License Agreement.
42 // Check whether software you use contains licensed software.
43 //
44 //M*/
45 
46 
47 #ifndef __FBX_PARSER_H__
48 #define __FBX_PARSER_H__
49 #include <iostream>
50 #include <fstream>
51 #include <sstream>
52 #include <vector>
53 #include <map>
54 #include "include.h"
55 
56 class FBXNode;
57 class FBXProperty;
58 
60 public:
61  FBXParser();
62  ~FBXParser();
63  bool loadFBX(const std::string& fileName, ulonglong& n_points, Vertex** vertices);
64  uint32_t getVersion() { return m_version; }
65 
66 private:
67  bool checkHeader(std::ifstream& input);
68  uint32_t getVersion(std::ifstream& input);
69  uint32_t readNode(std::ifstream& input, uint32_t offset);
70 
71 
72 private:
73  uint32_t m_version;
74  vector<FBXNode> m_nodes;
75 };
76 
78 public:
79  FBXNode();
80  ~FBXNode();
81 
82  uint32_t read(ifstream& input, uint32_t start_offset);
83  void addChild(FBXNode child) { m_children.push_back(child); }
84  string getName() { return m_name; }
85  vector<FBXNode> getChildren() { return m_children; }
86 
87 private:
88  string m_name;
89  vector<FBXNode> m_children;
90  vector<FBXProperty> m_properties;
91 };
92 
94 public:
95  FBXProperty();
96  ~FBXProperty();
97 };
98 
99 #endif
vector< FBXNode > getChildren()
Definition: FBXParser.h:85
unsigned long long ulonglong
Definition: typedef.h:67
uint32_t getVersion()
Definition: FBXParser.h:64
#define OPH_DLL
Definition: Base.h:59
Definition: struct.h:102
void addChild(FBXNode child)
Definition: FBXParser.h:83
string getName()
Definition: FBXParser.h:84