Ocean
Loading...
Searching...
No Matches
RetiredTrianglesRenderer.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#ifndef META_OCEAN_TRACKING_MAPTEXTURING_RETIRED_TRIANGLES_RENDERER_H
9#define META_OCEAN_TRACKING_MAPTEXTURING_RETIRED_TRIANGLES_RENDERER_H
10
12
13#include "ocean/base/Frame.h"
14
16
22
23namespace Ocean
24{
25
26namespace Tracking
27{
28
29namespace MapTexturing
30{
31
32/**
33 * This class implements a renderer for retired triangle allowing to determine whether they can be deleted.
34 * @ingroup trackingmaptexturing
35 */
36class OCEAN_TRACKING_MAPTEXTURING_EXPORT RetiredTrianglesRenderer
37{
38 public:
39
40 /**
41 * Destructs this renderer and releases all resources.
42 */
44
45 /**
46 * Renders all retired triangles to determine whether they can be deleted.
47 * @param engine The rendering engine to be used
48 * @param vertexSet The vertex set containing all triangle vertices, must be valid
49 * @param triangles The triangles to render, must be valid
50 * @param numberTriangles The number of triangles to render, with range [1, infinity)
51 * @param projectionMatrix The projection matrix to be used, must be valid
52 * @param world_T_camera The transformation between camera and world, must be valid
53 * @param trianglesStateFramebuffer The framebuffer holding the states of the individual triangles, must be valid
54 * @param downsampledDepthFramebuffer The down-sampled and filtered texture framebuffer holding the depth image, must be valid
55 * @param nearDistance The view's near distance, with range (0, infinity)
56 * @param farDistance the view's far distance, with range (nearDistance, infinity)
57 * @param deletedTriangleIds The resulting ids of all triangles which's states have changed from retired to deleted
58 * @return True, if succeeded
59 */
60 bool render(const Rendering::Engine& engine, const Rendering::VertexSetRef& vertexSet, const Rendering::TrianglesRef& triangles, const unsigned int numberTriangles, const SquareMatrix4& projectionMatrix, const HomogenousMatrix4& world_T_camera, const Rendering::TextureFramebufferRef& trianglesStateFramebuffer, const Rendering::TextureFramebufferRef& downsampledDepthFramebuffer, const Scalar nearDistance, const Scalar farDistance, Indices32& deletedTriangleIds);
61
62 /**
63 * Returns the current texture framebuffer of this renderer.
64 * @return The renderer's texture framebuffer
65 */
66 inline const Rendering::TextureFramebufferRef& textureFramebuffer() const;
67
68 /**
69 * Explicitly releases this renderer and releases all resources.
70 */
71 void release();
72
73 /**
74 * Returns whether this renderer has been initialized successfully.
75 * @return True, if succeeded
76 */
77 inline bool isValid() const;
78
79 protected:
80
81 /// The shader program to render the retired triangles.
83
84 /// The texture framebuffer in which the triangles will be rendered.
86
87 /// The intermediate state frame.
89
90 /// The platform-specific shader part.
91 static const char* partPlatform_;
92
93 /// The vertex shader part.
95
96 /// The fragment shader part.
98};
99
104
105}
106
107}
108
109}
110
111#endif // META_OCEAN_TRACKING_MAPTEXTURING_RETIRED_TRIANGLES_RENDERER_H
This class implements Ocean's image class.
Definition Frame.h:1808
This class is the base class for all rendering engines like.
Definition Engine.h:46
This class implements a renderer for retired triangle allowing to determine whether they can be delet...
Definition RetiredTrianglesRenderer.h:37
const Rendering::TextureFramebufferRef & textureFramebuffer() const
Returns the current texture framebuffer of this renderer.
Definition RetiredTrianglesRenderer.h:100
static const char * programVertexShaderRetiredTriangles_
The vertex shader part.
Definition RetiredTrianglesRenderer.h:94
Frame stateFrame_
The intermediate state frame.
Definition RetiredTrianglesRenderer.h:88
static const char * programFragmentShaderRetiredTriangles_
The fragment shader part.
Definition RetiredTrianglesRenderer.h:97
void release()
Explicitly releases this renderer and releases all resources.
~RetiredTrianglesRenderer()
Destructs this renderer and releases all resources.
bool render(const Rendering::Engine &engine, const Rendering::VertexSetRef &vertexSet, const Rendering::TrianglesRef &triangles, const unsigned int numberTriangles, const SquareMatrix4 &projectionMatrix, const HomogenousMatrix4 &world_T_camera, const Rendering::TextureFramebufferRef &trianglesStateFramebuffer, const Rendering::TextureFramebufferRef &downsampledDepthFramebuffer, const Scalar nearDistance, const Scalar farDistance, Indices32 &deletedTriangleIds)
Renders all retired triangles to determine whether they can be deleted.
Rendering::TextureFramebufferRef textureFramebuffer_
The texture framebuffer in which the triangles will be rendered.
Definition RetiredTrianglesRenderer.h:85
static const char * partPlatform_
The platform-specific shader part.
Definition RetiredTrianglesRenderer.h:91
bool isValid() const
Returns whether this renderer has been initialized successfully.
Rendering::ShaderProgramRef shaderProgramRetiredTriangles_
The shader program to render the retired triangles.
Definition RetiredTrianglesRenderer.h:82
std::vector< Index32 > Indices32
Definition of a vector holding 32 bit index values.
Definition Base.h:96
float Scalar
Definition of a scalar type.
Definition Math.h:129
The namespace covering the entire Ocean framework.
Definition Accessor.h:15