source: trunk/legacy/md3_loader.hh

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