⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 surface.h

📁 最新osg包
💻 H
字号:
/*******************************************************      Lightwave Object Loader for OSG  Copyright (C) 2004 Marco Jez <marco.jez@poste.it>  OpenSceneGraph is (C) 2004 Robert Osfield********************************************************/#ifndef LWOSG_SURFACE_#define LWOSG_SURFACE_#include "lwo2chunks.h"#include "VertexMap.h"#include "Block.h"#include "Clip.h"#include <osg/ref_ptr>#include <osg/Vec3>#include <osg/StateSet>#include <osg/Geometry>#include <osgDB/ReaderWriter>#include <string>#include <map>namespace lwosg{    class Surface {    public:        enum Sidedness {            NONE           = 0,            FRONT_ONLY     = 1,            BACK_ONLY      = 2,            FRONT_AND_BACK = 3        };        typedef std::multimap<std::string, Block> Block_map;        Surface();        Surface(const lwo2::FORM::SURF *surf, const Clip_map &clips);        void compile(const lwo2::FORM::SURF *surf, const Clip_map &clips);        osg::Group *apply(osg::Geometry *geo, const VertexMap_map *texture_maps, const VertexMap_map *rgb_maps, const VertexMap_map *rgba_maps, int max_tex_units, bool use_osgfx, bool force_arb_compression, const VertexMap_binding_map &texmap_bindings, const osgDB::ReaderWriter::Options *db_options) const;        void generate_stateset(unsigned int max_tex_units, bool force_arb_compression, const osgDB::ReaderWriter::Options* options) const;        inline const std::string &get_name() const { return name_; }        inline void set_name(const std::string &n) { name_ = n; }        inline const osg::Vec3 &get_base_color() const { return base_color_; }        inline float get_diffuse() const { return diffuse_; }        inline float get_luminosity() const { return luminosity_; }        inline float get_specularity() const { return specularity_; }        inline float get_reflection() const { return reflection_; }        inline float get_transparency() const { return transparency_; }        inline float get_translucency() const { return translucency_; }        inline float get_glossiness() const { return glossiness_; }        inline Sidedness get_sidedness() const { return sidedness_; }        inline float get_max_smoothing_angle() const { return max_smoothing_angle_; }        inline const std::string &get_color_map_type() const { return color_map_type_; }        inline const std::string &get_color_map_name() const { return color_map_name_; }        inline float get_color_map_intensity() const { return color_map_intensity_; }        inline Block_map &blocks() { return blocks_; }        inline const Block_map &blocks() const { return blocks_; }/*        inline const std::string &get_uv_map_name() const { return uv_map_name_; }        inline bool has_clip() const { return clip_ != 0; }        inline const Clip *get_clip() const { return clip_; }        inline void set_clip(const Clip *c) { clip_ = c; }*/    private:        std::string name_;        osg::Vec3 base_color_;        float diffuse_;        float luminosity_;        float specularity_;        float reflection_;        float transparency_;        float translucency_;        float glossiness_;        Sidedness sidedness_;        float max_smoothing_angle_;        std::string color_map_type_;        std::string color_map_name_;        float color_map_intensity_;        Block_map blocks_;/*        std::string uv_map_name_;        const Clip *clip_;*/        mutable osg::ref_ptr<osg::StateSet> stateset_;    };}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -