unit.h

来自「最新osg包」· C头文件 代码 · 共 92 行

H
92
字号
/*******************************************************      Lightwave Object Loader for OSG  Copyright (C) 2004 Marco Jez <marco.jez@poste.it>  OpenSceneGraph is (C) 2004 Robert Osfield********************************************************/#ifndef LWOSG_UNIT_#define LWOSG_UNIT_#include "Polygon.h"#include "VertexMap.h"#include <osg/ref_ptr>#include <osg/Array>#include <vector>namespace lwosg{	class Unit {	public:		typedef std::vector<Polygon> Polygon_list;		typedef std::vector<int> Index_list;		typedef std::vector<Index_list> Sharing_list;		Unit();		inline osg::Vec3Array *points() { return points_.get(); }		inline const osg::Vec3Array *points() const { return points_.get(); }		inline VertexMap *normals() { return normals_.get(); }		inline const VertexMap *normals() const { return normals_.get(); }		inline Polygon_list &polygons() { return polygons_; }		inline const Polygon_list &polygons() const { return polygons_; }		inline Sharing_list &shares() { return shares_; }		inline const Sharing_list &shares() const { return shares_; }		inline const VertexMap_map *weight_maps() const { return weight_maps_.get(); }		inline VertexMap_map *weight_maps() { return weight_maps_.get(); }		inline const VertexMap_map *subpatch_weight_maps() const { return subpatch_weight_maps_.get(); }		inline VertexMap_map *subpatch_weight_maps() { return subpatch_weight_maps_.get(); }		inline const VertexMap_map *texture_maps() const { return texture_maps_.get(); }		inline VertexMap_map *texture_maps() { return texture_maps_.get(); }		inline const VertexMap_map *rgb_maps() const { return rgb_maps_.get(); }		inline VertexMap_map *rgb_maps() { return rgb_maps_.get(); }		inline const VertexMap_map *rgba_maps() const { return rgba_maps_.get(); }		inline VertexMap_map *rgba_maps() { return rgba_maps_.get(); }		inline const VertexMap_map *displacement_maps() const { return displacement_maps_.get(); }		inline VertexMap_map *displacement_maps() { return displacement_maps_.get(); }		inline const VertexMap_map *spot_maps() const { return spot_maps_.get(); }		inline VertexMap_map *spot_maps() { return spot_maps_.get(); }		void flatten_maps();		void generate_normals();		void compute_vertex_remapping(const Surface *surf, Index_list &remap) const;	protected:		float angle_between_polygons(const Polygon &p1, const Polygon &p2) const;		void find_shared_polygons(int vertex_index, std::vector<int> &poly_indices);		void flatten_map(Polygon &poly, const VertexMap *local_map, VertexMap *global_map);	private:		osg::ref_ptr<osg::Vec3Array> points_;		Polygon_list polygons_;		Sharing_list shares_;		osg::ref_ptr<VertexMap> normals_;		osg::ref_ptr<VertexMap_map> weight_maps_;		osg::ref_ptr<VertexMap_map> subpatch_weight_maps_;		osg::ref_ptr<VertexMap_map> texture_maps_;		osg::ref_ptr<VertexMap_map> rgb_maps_;		osg::ref_ptr<VertexMap_map> rgba_maps_;		osg::ref_ptr<VertexMap_map> displacement_maps_;		osg::ref_ptr<VertexMap_map> spot_maps_;	};}#endif

⌨️ 快捷键说明

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