Moved the declaration of osgDB::Field, FieldReader and FieldReaderIterator into include/osg/Input to centralise all the deprecated .osg parsing code into one place.
This commit is contained in:
@@ -1,113 +0,0 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
* (at your option) any later version. The full license is in LICENSE file
|
||||
* included with this distribution, and on the openscenegraph.org website.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef OSGDB_FIELD
|
||||
#define OSGDB_FIELD 1
|
||||
|
||||
#include <osgDB/Export>
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace osgDB {
|
||||
|
||||
class OSGDB_EXPORT Field
|
||||
{
|
||||
public:
|
||||
|
||||
enum {
|
||||
MIN_CACHE_SIZE = 256
|
||||
};
|
||||
|
||||
Field();
|
||||
Field(const Field& field);
|
||||
virtual ~Field();
|
||||
|
||||
virtual Field& operator = (const Field& ic);
|
||||
|
||||
void reset();
|
||||
void addChar(char c);
|
||||
int getNoCharacters() const { return _fieldCacheSize; }
|
||||
|
||||
void setWithinQuotes(bool withinQuotes=true);
|
||||
bool getWithinQuotes();
|
||||
|
||||
void setNoNestedBrackets(int no);
|
||||
int getNoNestedBrackets();
|
||||
|
||||
enum FieldType
|
||||
{
|
||||
OPEN_BRACKET,
|
||||
CLOSE_BRACKET,
|
||||
STRING,
|
||||
WORD,
|
||||
REAL,
|
||||
INTEGER,
|
||||
BLANK,
|
||||
UNINITIALISED
|
||||
};
|
||||
|
||||
FieldType getFieldType() const;
|
||||
|
||||
bool isValid() const;
|
||||
|
||||
bool isOpenBracket() const;
|
||||
bool isCloseBracket() const;
|
||||
|
||||
bool isWord() const;
|
||||
bool matchWord(const char* str) const;
|
||||
bool matchWord(const char* str,int noCharacters) const;
|
||||
|
||||
bool isString() const;
|
||||
bool matchString(const char* str) const;
|
||||
bool matchString(const char* str,int noCharacters) const;
|
||||
bool isQuotedString() const;
|
||||
|
||||
const char* getStr() const;
|
||||
char* takeStr();
|
||||
|
||||
bool isInt() const;
|
||||
bool matchInt(int i) const;
|
||||
bool getInt(int& i) const;
|
||||
|
||||
bool isUInt() const;
|
||||
bool matchUInt(unsigned int i) const;
|
||||
bool getUInt(unsigned int& i) const;
|
||||
|
||||
bool isFloat() const;
|
||||
bool matchFloat(float f) const;
|
||||
bool getFloat(float& f) const;
|
||||
bool getFloat(double& f) const;
|
||||
|
||||
static FieldType calculateFieldType(const char* str,bool withinQuotes=false);
|
||||
|
||||
protected:
|
||||
|
||||
void _init();
|
||||
void _free();
|
||||
void _copy(const Field& ic);
|
||||
|
||||
int _fieldCacheCapacity;
|
||||
int _fieldCacheSize;
|
||||
char* _fieldCache;
|
||||
|
||||
mutable FieldType _fieldType;
|
||||
|
||||
bool _withinQuotes;
|
||||
|
||||
int _noNestedBrackets;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // __SG_FIELD_H
|
||||
@@ -1,68 +0,0 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
* (at your option) any later version. The full license is in LICENSE file
|
||||
* included with this distribution, and on the openscenegraph.org website.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef OSGDB_FIELDREADER
|
||||
#define OSGDB_FIELDREADER 1
|
||||
|
||||
#include <osgDB/Export>
|
||||
|
||||
#include <istream>
|
||||
|
||||
namespace osgDB {
|
||||
|
||||
class Field;
|
||||
|
||||
class OSGDB_EXPORT FieldReader
|
||||
{
|
||||
public:
|
||||
|
||||
FieldReader();
|
||||
FieldReader(const FieldReader& ic);
|
||||
virtual ~FieldReader();
|
||||
|
||||
virtual FieldReader& operator = (const FieldReader& ic);
|
||||
|
||||
void attach(std::istream* input);
|
||||
void detach();
|
||||
|
||||
virtual bool eof() const;
|
||||
|
||||
bool readField(Field& fieldPtr);
|
||||
void ignoreField();
|
||||
|
||||
/** no of unmatched `{' encountered so far in file*/
|
||||
int getNoNestedBrackets() const;
|
||||
|
||||
private:
|
||||
|
||||
bool _readField(Field* fieldPtr);
|
||||
|
||||
void _init();
|
||||
void _free();
|
||||
void _copy(const FieldReader& ic);
|
||||
|
||||
std::istream* _fin;
|
||||
bool _eof;
|
||||
|
||||
bool findStartOfNextField();
|
||||
|
||||
int _noNestedBrackets;
|
||||
|
||||
bool _delimiterEatLookUp[256];
|
||||
bool _delimiterKeepLookUp[256];
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // __SG_FIELD_READER_H
|
||||
@@ -1,110 +0,0 @@
|
||||
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
|
||||
*
|
||||
* This library is open source and may be redistributed and/or modified under
|
||||
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||||
* (at your option) any later version. The full license is in LICENSE file
|
||||
* included with this distribution, and on the openscenegraph.org website.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef OSGDB_FIELDREADERITERATOR
|
||||
#define OSGDB_FIELDREADERITERATOR 1
|
||||
|
||||
#include <osg/Vec2f>
|
||||
#include <osg/Vec2f>
|
||||
#include <osg/Vec4f>
|
||||
#include <osg/Vec2d>
|
||||
#include <osg/Vec2d>
|
||||
#include <osg/Vec4d>
|
||||
|
||||
#include <osgDB/Field>
|
||||
#include <osgDB/FieldReader>
|
||||
|
||||
namespace osgDB {
|
||||
|
||||
|
||||
class OSGDB_EXPORT FieldReaderIterator
|
||||
{
|
||||
public:
|
||||
|
||||
enum {
|
||||
MINIMUM_FIELD_READER_QUEUE_SIZE = 10
|
||||
};
|
||||
|
||||
FieldReaderIterator();
|
||||
FieldReaderIterator(const FieldReaderIterator& ic);
|
||||
virtual ~FieldReaderIterator();
|
||||
|
||||
FieldReaderIterator& operator = (const FieldReaderIterator& ic);
|
||||
|
||||
void attach(std::istream* input);
|
||||
void detach();
|
||||
|
||||
virtual bool eof() const;
|
||||
|
||||
FieldReader& getFieldReader() { return _reader; }
|
||||
|
||||
void insert(int pos,Field* field);
|
||||
void insert(int pos,const char* str);
|
||||
|
||||
Field& operator [] (int pos);
|
||||
Field& field (int pos);
|
||||
|
||||
FieldReaderIterator& operator ++ ();
|
||||
FieldReaderIterator& operator += (int no);
|
||||
|
||||
/** increments the iterator of the next simple field or
|
||||
* whole block if the current field[0] is an open bracket */
|
||||
void advanceOverCurrentFieldOrBlock();
|
||||
void advanceToEndOfCurrentBlock();
|
||||
void advanceToEndOfBlock(int noNestBrackets);
|
||||
|
||||
bool matchSequence(const char* str);
|
||||
|
||||
bool readSequence(const char* keyword,std::string& value);
|
||||
bool readSequence(const char* keyword,unsigned int& value);
|
||||
bool readSequence(const char* keyword,int& value);
|
||||
bool readSequence(const char* keyword,float& value);
|
||||
bool readSequence(const char* keyword,osg::Vec2f& value);
|
||||
bool readSequence(const char* keyword,osg::Vec3f& value);
|
||||
bool readSequence(const char* keyword,osg::Vec4f& value);
|
||||
bool readSequence(const char* keyword,osg::Vec2d& value);
|
||||
bool readSequence(const char* keyword,osg::Vec3d& value);
|
||||
bool readSequence(const char* keyword,osg::Vec4d& value);
|
||||
|
||||
bool readSequence(std::string& value);
|
||||
bool readSequence(unsigned int& value);
|
||||
bool readSequence(int& value);
|
||||
bool readSequence(float& value);
|
||||
bool readSequence(osg::Vec2f& value);
|
||||
bool readSequence(osg::Vec3f& value);
|
||||
bool readSequence(osg::Vec4f& value);
|
||||
bool readSequence(osg::Vec2d& value);
|
||||
bool readSequence(osg::Vec3d& value);
|
||||
bool readSequence(osg::Vec4d& value);
|
||||
|
||||
private:
|
||||
|
||||
void _init();
|
||||
void _free();
|
||||
void _copy(const FieldReaderIterator& ic);
|
||||
|
||||
FieldReader _reader;
|
||||
|
||||
Field _blank;
|
||||
|
||||
Field* _previousField;
|
||||
|
||||
Field** _fieldQueue;
|
||||
int _fieldQueueSize;
|
||||
int _fieldQueueCapacity;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // __OSGDB_FIELD_READER_QUEUE_H
|
||||
@@ -21,7 +21,6 @@
|
||||
#include <osg/StateAttribute>
|
||||
#include <osg/ArgumentParser>
|
||||
|
||||
#include <osgDB/FieldReaderIterator>
|
||||
#include <osgDB/ReaderWriter>
|
||||
#include <osgDB/Options>
|
||||
|
||||
@@ -32,7 +31,217 @@ namespace osgDB {
|
||||
|
||||
struct basic_type_wrapper;
|
||||
|
||||
/** Class for managing the reading of ASCII .osg files.*/
|
||||
/** deprecated. */
|
||||
class OSGDB_EXPORT Field
|
||||
{
|
||||
public:
|
||||
|
||||
enum {
|
||||
MIN_CACHE_SIZE = 256
|
||||
};
|
||||
|
||||
Field();
|
||||
Field(const Field& field);
|
||||
virtual ~Field();
|
||||
|
||||
virtual Field& operator = (const Field& ic);
|
||||
|
||||
void reset();
|
||||
void addChar(char c);
|
||||
int getNoCharacters() const { return _fieldCacheSize; }
|
||||
|
||||
void setWithinQuotes(bool withinQuotes=true);
|
||||
bool getWithinQuotes();
|
||||
|
||||
void setNoNestedBrackets(int no);
|
||||
int getNoNestedBrackets();
|
||||
|
||||
enum FieldType
|
||||
{
|
||||
OPEN_BRACKET,
|
||||
CLOSE_BRACKET,
|
||||
STRING,
|
||||
WORD,
|
||||
REAL,
|
||||
INTEGER,
|
||||
BLANK,
|
||||
UNINITIALISED
|
||||
};
|
||||
|
||||
FieldType getFieldType() const;
|
||||
|
||||
bool isValid() const;
|
||||
|
||||
bool isOpenBracket() const;
|
||||
bool isCloseBracket() const;
|
||||
|
||||
bool isWord() const;
|
||||
bool matchWord(const char* str) const;
|
||||
bool matchWord(const char* str,int noCharacters) const;
|
||||
|
||||
bool isString() const;
|
||||
bool matchString(const char* str) const;
|
||||
bool matchString(const char* str,int noCharacters) const;
|
||||
bool isQuotedString() const;
|
||||
|
||||
const char* getStr() const;
|
||||
char* takeStr();
|
||||
|
||||
bool isInt() const;
|
||||
bool matchInt(int i) const;
|
||||
bool getInt(int& i) const;
|
||||
|
||||
bool isUInt() const;
|
||||
bool matchUInt(unsigned int i) const;
|
||||
bool getUInt(unsigned int& i) const;
|
||||
|
||||
bool isFloat() const;
|
||||
bool matchFloat(float f) const;
|
||||
bool getFloat(float& f) const;
|
||||
bool getFloat(double& f) const;
|
||||
|
||||
static FieldType calculateFieldType(const char* str,bool withinQuotes=false);
|
||||
|
||||
protected:
|
||||
|
||||
void _init();
|
||||
void _free();
|
||||
void _copy(const Field& ic);
|
||||
|
||||
int _fieldCacheCapacity;
|
||||
int _fieldCacheSize;
|
||||
char* _fieldCache;
|
||||
|
||||
mutable FieldType _fieldType;
|
||||
|
||||
bool _withinQuotes;
|
||||
|
||||
int _noNestedBrackets;
|
||||
|
||||
};
|
||||
|
||||
/** deprecated. */
|
||||
class OSGDB_EXPORT FieldReader
|
||||
{
|
||||
public:
|
||||
|
||||
FieldReader();
|
||||
FieldReader(const FieldReader& ic);
|
||||
virtual ~FieldReader();
|
||||
|
||||
virtual FieldReader& operator = (const FieldReader& ic);
|
||||
|
||||
void attach(std::istream* input);
|
||||
void detach();
|
||||
|
||||
virtual bool eof() const;
|
||||
|
||||
bool readField(Field& fieldPtr);
|
||||
void ignoreField();
|
||||
|
||||
/** no of unmatched `{' encountered so far in file*/
|
||||
int getNoNestedBrackets() const;
|
||||
|
||||
private:
|
||||
|
||||
bool _readField(Field* fieldPtr);
|
||||
|
||||
void _init();
|
||||
void _free();
|
||||
void _copy(const FieldReader& ic);
|
||||
|
||||
std::istream* _fin;
|
||||
bool _eof;
|
||||
|
||||
bool findStartOfNextField();
|
||||
|
||||
int _noNestedBrackets;
|
||||
|
||||
bool _delimiterEatLookUp[256];
|
||||
bool _delimiterKeepLookUp[256];
|
||||
|
||||
};
|
||||
|
||||
/** deprecated. */
|
||||
class OSGDB_EXPORT FieldReaderIterator
|
||||
{
|
||||
public:
|
||||
|
||||
enum {
|
||||
MINIMUM_FIELD_READER_QUEUE_SIZE = 10
|
||||
};
|
||||
|
||||
FieldReaderIterator();
|
||||
FieldReaderIterator(const FieldReaderIterator& ic);
|
||||
virtual ~FieldReaderIterator();
|
||||
|
||||
FieldReaderIterator& operator = (const FieldReaderIterator& ic);
|
||||
|
||||
void attach(std::istream* input);
|
||||
void detach();
|
||||
|
||||
virtual bool eof() const;
|
||||
|
||||
FieldReader& getFieldReader() { return _reader; }
|
||||
|
||||
void insert(int pos,Field* field);
|
||||
void insert(int pos,const char* str);
|
||||
|
||||
Field& operator [] (int pos);
|
||||
Field& field (int pos);
|
||||
|
||||
FieldReaderIterator& operator ++ ();
|
||||
FieldReaderIterator& operator += (int no);
|
||||
|
||||
/** increments the iterator of the next simple field or
|
||||
* whole block if the current field[0] is an open bracket */
|
||||
void advanceOverCurrentFieldOrBlock();
|
||||
void advanceToEndOfCurrentBlock();
|
||||
void advanceToEndOfBlock(int noNestBrackets);
|
||||
|
||||
bool matchSequence(const char* str);
|
||||
|
||||
bool readSequence(const char* keyword,std::string& value);
|
||||
bool readSequence(const char* keyword,unsigned int& value);
|
||||
bool readSequence(const char* keyword,int& value);
|
||||
bool readSequence(const char* keyword,float& value);
|
||||
bool readSequence(const char* keyword,osg::Vec2f& value);
|
||||
bool readSequence(const char* keyword,osg::Vec3f& value);
|
||||
bool readSequence(const char* keyword,osg::Vec4f& value);
|
||||
bool readSequence(const char* keyword,osg::Vec2d& value);
|
||||
bool readSequence(const char* keyword,osg::Vec3d& value);
|
||||
bool readSequence(const char* keyword,osg::Vec4d& value);
|
||||
|
||||
bool readSequence(std::string& value);
|
||||
bool readSequence(unsigned int& value);
|
||||
bool readSequence(int& value);
|
||||
bool readSequence(float& value);
|
||||
bool readSequence(osg::Vec2f& value);
|
||||
bool readSequence(osg::Vec3f& value);
|
||||
bool readSequence(osg::Vec4f& value);
|
||||
bool readSequence(osg::Vec2d& value);
|
||||
bool readSequence(osg::Vec3d& value);
|
||||
bool readSequence(osg::Vec4d& value);
|
||||
|
||||
private:
|
||||
|
||||
void _init();
|
||||
void _free();
|
||||
void _copy(const FieldReaderIterator& ic);
|
||||
|
||||
FieldReader _reader;
|
||||
|
||||
Field _blank;
|
||||
|
||||
Field* _previousField;
|
||||
|
||||
Field** _fieldQueue;
|
||||
int _fieldQueueSize;
|
||||
int _fieldQueueCapacity;
|
||||
|
||||
};
|
||||
|
||||
/** deprecated. */
|
||||
class OSGDB_EXPORT Input : public FieldReaderIterator
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -24,8 +24,7 @@
|
||||
|
||||
namespace osgDB {
|
||||
|
||||
/** ofstream wrapper class for adding support for indenting.
|
||||
Used in output of .osg ASCII files to improve their readability.*/
|
||||
/** deprecated. */
|
||||
class OSGDB_EXPORT Output : public osgDB::ofstream
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#define OSGWIDGET_STYLE_MANAGER
|
||||
|
||||
#include <map>
|
||||
#include <osgDB/FieldReaderIterator>
|
||||
#include <osgDB/Input>
|
||||
#include <osgWidget/Box>
|
||||
#include <osgWidget/Frame>
|
||||
#include <osgWidget/Input>
|
||||
|
||||
@@ -34,9 +34,6 @@ SET(LIB_PUBLIC_HEADERS
|
||||
${HEADER_PATH}/DotOsgWrapper
|
||||
${HEADER_PATH}/DynamicLibrary
|
||||
${HEADER_PATH}/Export
|
||||
${HEADER_PATH}/Field
|
||||
${HEADER_PATH}/FieldReader
|
||||
${HEADER_PATH}/FieldReaderIterator
|
||||
${HEADER_PATH}/FileCache
|
||||
${HEADER_PATH}/FileNameUtils
|
||||
${HEADER_PATH}/FileUtils
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include <osg/Notify>
|
||||
#include <osg/Math>
|
||||
|
||||
#include <osgDB/Field>
|
||||
#include <osgDB/Input>
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -10,8 +10,9 @@
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*/
|
||||
#include <osgDB/Field>
|
||||
#include <osgDB/FieldReader>
|
||||
#include <osgDB/Input>
|
||||
#include <istream>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
using namespace osgDB;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* OpenSceneGraph Public License for more details.
|
||||
*/
|
||||
#include <osgDB/FieldReaderIterator>
|
||||
#include <osgDB/Input>
|
||||
|
||||
using namespace osgDB;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user