8#include "VisualBakedScalarField.h"
13#ifdef FH_VISUALIZATION
14# include "visual/ScalarVolume.h"
112#ifdef FH_VISUALIZATION
121 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator* Creator)
override;
132 void RenderUpdate(
const double T,
const double*
const X)
override;
136#ifdef FH_VISUALIZATION
145 void StartBake(
const double centre[3]);
154 void AdoptFinishedBake();
163 void RecordFailedTarget(
const double centre[3]);
171 [[nodiscard]]
bool MovedFarEnough(
const double cameraPos[3],
const double centre[3])
const;
177 void ApplyVolumeUniforms(
const double centre[3])
const;
188 [[nodiscard]]
bool CameraIsInsideBox(
const double cameraPos[3])
const;
194 double m_boxCentre[3];
196 double m_referenceLength;
197 double m_rebakeFraction;
198 bool m_centreOnCamera;
202#ifdef FH_VISUALIZATION
203 std::unique_ptr<visual::ScalarVolume> m_scalarVolume;
205 FhCamera* m_fhCamera;
210 bool m_hasPendingCentre;
211 double m_pendingCentre[3];
213 std::thread m_worker;
214 std::atomic_bool m_bakeFinished;
218 double m_bakeResultCentre[3];
219 double m_bakeClampedFraction;
220 std::string m_bakeError;
222 bool m_hasFailedCentre;
223 double m_failedCentre[3];
225 bool m_cullingInside;
Definition VisualBakedScalarField.h:46
Definition VisualScalarVolume.h:98
VisualScalarVolume(std::string SimObjectName, ISimObjectCreator *Creator)
~VisualScalarVolume() override
Joins any re-bake worker and releases the box; the base releases material and textures.
Environment SimObjects.
Definition Environment.h:25
A scalar field evaluated over a SamplingBox and encoded to 16-bit codes.
Definition ScalarFieldBake.h:52
Definition ScalarFieldBake.h:44