root/OpenSceneGraph/trunk/src/osgPlugins/ply/typedefs.h @ 13041

Revision 13041, 2.5 kB (checked in by robert, 2 years ago)

Ran script to remove trailing spaces and tabs

  • Property svn:eol-style set to native
Line 
1/*
2    typedefs.h
3    Copyright (c) 2007, Tobias Wolf <twolf@access.unizh.ch>
4    All rights reserved.
5
6    Type definitions for the mesh classes.
7*/
8
9/** note, derived from Equalizer LGPL source.*/
10
11
12#ifndef MESH_TYPEDEFS_H
13#define MESH_TYPEDEFS_H
14
15#   if defined(_MSC_VER)
16#      include <Winsock2.h>
17#      include <Windows.h>
18#   endif
19
20#   include <osg/Notify>
21
22#ifdef NDEBUG
23#   define MESHASSERT( x )
24#else
25#    define MESHASSERT(x) { if( !(x) ) { OSG_WARN << "Ply Loader ##### Assert: " << #x << " #####" << std::endl; } }
26#endif
27
28#   define MESHERROR   OSG_WARN
29#   define MESHWARN    OSG_WARN
30#   define MESHINFO    OSG_INFO
31
32#if defined(_MSC_VER)
33typedef int        socklen_t;
34
35typedef UINT64     uint64_t;
36typedef INT64      int64_t;
37typedef UINT32     uint32_t;
38typedef INT32      int32_t;
39typedef UINT16     uint16_t;
40typedef UINT8      uint8_t;
41#    ifndef HAVE_SSIZE_T
42typedef SSIZE_T    ssize_t;
43#    endif
44
45#endif // defined(_MSC_VER)
46
47#include <exception>
48#include <iostream>
49#include <string>
50
51namespace ply
52{
53
54
55
56    typedef size_t                      Index;
57//    typedef unsigned short            ShortIndex;
58
59
60    // mesh exception
61    struct MeshException : public std::exception
62    {
63        explicit MeshException( const std::string& msg ) : _message( msg ) {}
64        virtual ~MeshException() throw() {}
65        virtual const char* what() const throw() { return _message.c_str(); }
66    private:
67        std::string _message;
68    };
69
70    // null output stream that discards everything written to it
71    struct NullOStream : std::ostream
72    {
73        struct NullStreamBuf : std::streambuf
74        {
75            int overflow( int c ) { return traits_type::not_eof( c ); }
76        } _nullBuf;
77
78        NullOStream() : std::ios( &_nullBuf ), std::ostream( &_nullBuf ) {}
79    };
80
81    // wrapper to enable array use where arrays would not be allowed otherwise
82    template< class T, size_t d >
83    struct ArrayWrapper
84    {
85        T& operator[]( const size_t i )
86        {
87            MESHASSERT( i < d );
88            return data[i];
89        }
90
91        const T& operator[]( const size_t i ) const
92        {
93            MESHASSERT( i < d );
94            return data[i];
95        }
96
97    private:
98        T data[d];
99    };
100
101
102    // binary mesh file version, increment if changing the file format
103    const unsigned short    FILE_VERSION ( 0x0114 );
104
105
106    // enumeration for the sort axis
107    enum Axis
108    {
109        AXIS_X,
110        AXIS_Y,
111        AXIS_Z
112    };
113
114}
115
116
117#endif // MESH_TYPEDEFS_H
Note: See TracBrowser for help on using the browser.