immediate_geometry.h 946 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #ifndef IMMEDIATE_GEOMETRY_H
  2. #define IMMEDIATE_GEOMETRY_H
  3. #include "scene/3d/visual_instance.h"
  4. #include "scene/resources/mesh.h"
  5. class ImmediateGeometry : public GeometryInstance {
  6. OBJ_TYPE(ImmediateGeometry,GeometryInstance);
  7. RID im;
  8. List<Ref<Texture> > cached_textures;
  9. bool empty;
  10. AABB aabb;
  11. protected:
  12. static void _bind_methods();
  13. public:
  14. void begin(Mesh::PrimitiveType p_primitive,const Ref<Texture>& p_texture);
  15. void set_normal(const Vector3& p_normal);
  16. void set_tangent(const Plane& p_tangent);
  17. void set_color(const Color& p_color);
  18. void set_uv(const Vector2& tex_uv);
  19. void set_uv2(const Vector2& tex_uv);
  20. void add_vertex(const Vector3& p_vertex);
  21. void end();
  22. void clear();
  23. void add_sphere(int p_lats,int p_lons,float p_radius);
  24. virtual AABB get_aabb() const;
  25. virtual DVector<Face3> get_faces(uint32_t p_usage_flags) const;
  26. ImmediateGeometry();
  27. ~ImmediateGeometry();
  28. };
  29. #endif // IMMEDIATE_GEOMETRY_H