source: trunk/legacy/md3_loader.hh @ 489

Last change on this file since 489 was 480, checked in by epyon, 10 years ago
  • cleanup of legacy code
  • resource updates
File size: 1.3 KB
Line 
1// Copyright (C) 2012-2015 ChaosForge Ltd
2// http://chaosforge.org/
3//
4// This file is part of Nova libraries.
5// For conditions of distribution and use, see copying.txt file in root folder.
6
7/**
8 * @file md3_loader.hh
9 * @author Kornel Kisielewicz
10 * @brief md3 loader
11 */
12
13#ifndef NV_FORMATS_MD3_LOADER_HH
14#define NV_FORMATS_MD3_LOADER_HH
15
16#include <nv/common.hh>
17#include <nv/core/transform.hh>
18#include <nv/interface/mesh_data.hh>
19#include <nv/interface/mesh_loader.hh>
20
21namespace nv
22{
23        struct md3_key
24        {
25                transform tform;
26        };
27
28
29        class md3_loader : public mesh_loader
30        {
31        public:
32                explicit md3_loader( string_table* strings, bool merge_all = true );
33                virtual ~md3_loader();
34                virtual bool load( stream& source );
35                virtual data_channel_set* release_mesh_data( size_t index = 0 );
36                virtual size_t get_mesh_count() const { return 1; }
37                size_t get_max_frames() const;
38                virtual size_t get_nodes_data_count() const { return 1; }
39                virtual mesh_nodes_data* release_mesh_nodes_data( size_t = 0 );
40        private:
41                void release_mesh_frame( data_channel_set* data, sint32 frame, sint32 surface );
42                void load_tags( raw_data_channel* channel, const string_view& tag );
43
44                bool m_merge_all;
45                void* m_md3;
46        };
47
48}
49
50#endif // NV_FORMATS_MD3_LOADER_HH
Note: See TracBrowser for help on using the repository browser.