mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-03 23:21:15 +00:00 
			
		
		
		
	
		
			
	
	
		
			42 lines
		
	
	
	
		
			886 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
	
		
			886 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef IMMEDIATE_GEOMETRY_H
							 | 
						||
| 
								 | 
							
								#define IMMEDIATE_GEOMETRY_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "scene/3d/visual_instance.h"
							 | 
						||
| 
								 | 
							
								#include "scene/resources/mesh.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ImmediateGeometry : public GeometryInstance {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									OBJ_TYPE(ImmediateGeometry,GeometryInstance);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									RID im;
							 | 
						||
| 
								 | 
							
									List<Ref<Texture> > cached_textures;
							 | 
						||
| 
								 | 
							
									bool empty;
							 | 
						||
| 
								 | 
							
									AABB aabb;
							 | 
						||
| 
								 | 
							
								protected:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									static void _bind_methods();
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									void begin(Mesh::PrimitiveType p_primitive,const Ref<Texture>& p_texture);
							 | 
						||
| 
								 | 
							
									void set_normal(const Vector3& p_normal);
							 | 
						||
| 
								 | 
							
									void set_tangent(const Plane& p_tangent);
							 | 
						||
| 
								 | 
							
									void set_color(const Color& p_color);
							 | 
						||
| 
								 | 
							
									void set_uv(const Vector2& tex_uv);
							 | 
						||
| 
								 | 
							
									void set_uv2(const Vector2& tex_uv);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									void add_vertex(const Vector3& p_vertex);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									void end();
							 | 
						||
| 
								 | 
							
									void clear();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									virtual AABB get_aabb() const;
							 | 
						||
| 
								 | 
							
									virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									ImmediateGeometry();
							 | 
						||
| 
								 | 
							
									~ImmediateGeometry();
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // IMMEDIATE_GEOMETRY_H
							 |