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

Revision 10041, 2.6 kB (checked in by robert, 5 years ago)

Replaced #idef WIN32 with _MSC_VER to try and fix build errors under mingw

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