KiCad PCB EDA Suite
Loading...
Searching...
No Matches
RENDER_3D_OPENGL Class Reference

Object to render the board using openGL. More...

#include <render_3d_opengl.h>

Inheritance diagram for RENDER_3D_OPENGL:
RENDER_3D_BASE

Classes

struct  MODELTORENDER
 

Public Member Functions

 RENDER_3D_OPENGL (EDA_3D_CANVAS *aCanvas, BOARD_ADAPTER &aAdapter, CAMERA &aCamera)
 
 ~RENDER_3D_OPENGL ()
 
void SetCurWindowSize (const wxSize &aSize) override
 Before each render, the canvas will tell the render what is the size of its windows, so render can take actions if it changed.
 
bool Redraw (bool aIsMoving) override
 Redraw the view.
 
int GetWaitForEditingTimeOut () override
 Give the interface the time (in ms) that it should wait for editing or movements before (this works for display preview mode).
 
void JoinBgWorker () override
 Block until any in-progress background loading has finished.
 
void StopBgWorker () override
 Request stop and join any in-progress background loading.
 
void SetCurrentRollOverItem (BOARD_ITEM *aRollOverItem)
 
void Load3dModelsIfNeeded ()
 Load footprint models if they are not already loaded, i.e.
 
void RebuildHitTestAsync ()
 Rebuild the raytracing hit-test scene in the background after a visibility change.
 
void handleGizmoMouseInput (int mouseX, int mouseY)
 
void updateGizmoSelection (glm::mat4 aCameraRotationMatrix)
 
void setGizmoViewport (int x, int y, int width, int height)
 
std::tuple< int, int, int, int > getGizmoViewport () const
 
SPHERES_GIZMO::GizmoSphereSelection getSelectedGizmoSphere () const
 
void resetSelectedGizmoSphere ()
 
void ReloadRequest ()
 
bool IsReloadRequestPending () const
 Query if there is a pending reload request.
 
void SetBusyIndicatorFactory (BUSY_INDICATOR::FACTORY aNewFactory)
 Set a new busy indicator factory.
 
void SetReporters (std::shared_ptr< REPORTER > aActivityReporter, std::shared_ptr< REPORTER > aWarningReporter)
 Set the reporters for activity and warning messages.
 

Protected Member Functions

std::unique_ptr< BUSY_INDICATORCreateBusyIndicator () const
 Return a created busy indicator, if a factory has been set, else a null pointer.
 

Protected Attributes

BOARD_ADAPTERm_boardAdapter
 Settings reference in use for this render.
 
CAMERAm_camera
 
bool m_canvasInitialized
 Flag if the canvas specific for this render was already initialized.
 
bool m_reloadRequested
 
wxSize m_windowSize
 The window size that this camera is working.
 
std::shared_ptr< REPORTERm_activityReporter
 
std::shared_ptr< REPORTERm_warningReporter
 

Static Protected Attributes

static const wxChar * m_logTrace = wxT( "KI_TRACE_3D_RENDER" )
 Trace mask used to enable or disable the trace output of this class.
 

Private Member Functions

std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDgenerateHoles (const LIST_OBJECT2D &aListHolesObject2d, const SHAPE_POLY_SET &aPoly, float aZtop, float aZbot, bool aInvertFaces, const BVH_CONTAINER_2D *aThroughHoles=nullptr)
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDgenerateLayerList (const BVH_CONTAINER_2D *aContainer, const SHAPE_POLY_SET *aPolyList, PCB_LAYER_ID aLayer, const BVH_CONTAINER_2D *aThroughHoles=nullptr)
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDgenerateEmptyLayerList (PCB_LAYER_ID aLayer)
 
void addTopAndBottomTriangles (std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDst, const SFVEC2F &v0, const SFVEC2F &v1, const SFVEC2F &v2, float top, float bot)
 
void addObjectTriangles (const RING_2D *aRing, std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer, float aZtop, float aZbot)
 
void addObjectTriangles (const POLYGON_4PT_2D *aPoly, std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer, float aZtop, float aZbot)
 
void addObjectTriangles (const FILLED_CIRCLE_2D *aCircle, std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer, float aZtop, float aZbot)
 
void addObjectTriangles (const TRIANGLE_2D *aTri, std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer, float aZtop, float aZbot)
 
void addObjectTriangles (const ROUND_SEGMENT_2D *aSeg, std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer, float aZtop, float aZbot)
 
void renderSolderMaskLayer (PCB_LAYER_ID aLayerID, float aZPos, bool aShowThickness, bool aSkipRenderHoles)
 
void renderBoardBody (bool aSkipRenderHoles)
 
void getLayerZPos (PCB_LAYER_ID aLayerID, float &aOutZtop, float &aOutZbot) const
 
void generateRing (const SFVEC2F &aCenter, float aInnerRadius, float aOuterRadius, unsigned int aNr_sides_per_circle, std::vector< SFVEC2F > &aInnerContourResult, std::vector< SFVEC2F > &aOuterContourResult, bool aInvertOrder)
 
void generateCylinder (const SFVEC2F &aCenter, float aInnerRadius, float aOuterRadius, float aZtop, float aZbot, unsigned int aNr_sides_per_circle, std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer)
 
void generateInvCone (const SFVEC2F &aCenter, float aInnerRadius, float aOuterRadius, float aZtop, float aZbot, unsigned int aNr_sides_per_circle, std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer, EDA_ANGLE aAngle)
 
void generateDisk (const SFVEC2F &aCenter, float aRadius, float aZ, unsigned int aNr_sides_per_circle, std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer, bool aTop)
 
void generateDimple (const SFVEC2F &aCenter, float aRadius, float aZ, float aDepth, unsigned int aNr_sides_per_circle, std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer, bool aTop)
 
void generateViasAndPads ()
 
bool appendPostMachiningGeometry (std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer, const SFVEC2F &aHoleCenter, PAD_DRILL_POST_MACHINING_MODE aMode, int aSizeIU, int aDepthIU, float aHoleInnerRadius, float aZSurface, bool aIsFront, float aPlatingThickness3d, float aUnitScale, float *aZEnd)
 
void generateViaBarrels (float aPlatingThickness3d, float aUnitScale)
 
void generatePlatedHoleShells (int aPlatingThickness, float aUnitScale)
 
void generateViaCovers (float aPlatingThickness3d, float aUnitScale)
 
void load3dModels (std::stop_token aStop=std::stop_token())
 Load footprint models from the cache and load it to deferred openGL lists (MODEL_3D_DEFERRED) objects.
 
void createPlaceholderModel ()
 
void renderPlaceholderForFootprint (std::list< MODELTORENDER > &aDstRenderList, const glm::mat4 &aFpMatrix, const FOOTPRINT *aFootprint, bool aRenderTransparentOnly, bool aIsSelected, float aOpacity)
 
void renderExtrudedBodies ()
 
void renderOpaqueModels (const glm::mat4 &aCameraViewMatrix)
 
void renderExtrudedBodies (bool aTransparentPass)
 
void renderTransparentModels (const glm::mat4 &aCameraViewMatrix)
 
void renderModel (const glm::mat4 &aCameraViewMatrix, const MODELTORENDER &aModelToRender, const SFVEC3F &aSelColor, const SFVEC3F *aCameraWorldPos)
 
void get3dModelsSelected (std::list< MODELTORENDER > &aDstRenderList, bool aGetTop, bool aGetBot, bool aRenderTransparentOnly, bool aRenderSelectedOnly)
 
void get3dModelsFromFootprint (std::list< MODELTORENDER > &aDstRenderList, const FOOTPRINT *aFootprint, bool aRenderTransparentOnly, bool aIsSelected)
 
void setLightFront (bool enabled)
 
void setLightTop (bool enabled)
 
void setLightBottom (bool enabled)
 
void generate3dGrid (GRID3D_TYPE aGridType)
 Create a 3D grid to an OpenGL display list.
 
void setupMaterials ()
 
void setCopperMaterial ()
 
void setPlatedCopperAndDepthOffset (PCB_LAYER_ID aLayer_id)
 
void unsetDepthOffset ()
 
void setLayerMaterial (PCB_LAYER_ID aLayerID)
 
bool initializeOpenGL ()
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDcreateBoard (const SHAPE_POLY_SET &aBoardPoly, const BVH_CONTAINER_2D *aThroughHoles=nullptr, bool aTransparent=false)
 
void backfillPostMachine ()
 Create ring-shaped plugs for holes that have backdrill or post-machining.
 
void reload ()
 
void setArrowMaterial ()
 
void freeAllLists ()
 
void releaseRetiredRenderPtrs ()
 
void startBgWorker ()
 
void bgWorker (std::stop_token aStop)
 
void runHitTestRebuild (std::stop_token aStop)
 
void sendRefreshView ()
 
template<typename T>
void assignRenderPtr (std::shared_ptr< T > &aDst, std::shared_ptr< T > aVal)
 
template<typename TMap>
void assignRenderMap (TMap &aMap, const typename TMap::key_type &aKey, typename TMap::mapped_type aVal)
 
template<typename T>
void retireRenderPtr (std::shared_ptr< T > &aPtr)
 
void appendRenderTriangleList (std::shared_ptr< TRIANGLE_DISPLAY_LIST > aTriangles)
 

Private Attributes

struct { 
 
   SMATERIAL   m_Paste 
 
   SMATERIAL   m_SilkSBot 
 
   SMATERIAL   m_SilkSTop 
 
   SMATERIAL   m_SolderMask 
 
   SMATERIAL   m_EpoxyBoard 
 
   SMATERIAL   m_NonPlatedCopper 
 
   SMATERIAL   m_Copper 
 
   SMATERIAL   m_Plastic 
 
   SMATERIAL   m_GrayMaterial 
 
m_materials 
 
EDA_3D_CANVASm_canvas
 
std::jthread m_bgWorkerThread
 
std::atomic< bool > m_bgWorkerBusy { false }
 
std::atomic< bool > m_hitTestDirty { false }
 
std::recursive_mutex m_renderMutex
 
MAP_OGL_DISP_LISTS m_layers
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_platedPadsFront
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_platedPadsBack
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_offboardPadsFront
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_offboardPadsBack
 
MAP_OGL_DISP_LISTS m_outerLayerHoles
 
MAP_OGL_DISP_LISTS m_innerLayerHoles
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_board
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_boardWithHoles
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_postMachinePlugs
 Board material plugs for backdrill/counterbore/countersink.
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_antiBoard
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_outerThroughHoles
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_outerViaThroughHoles
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_outerThroughHoleRings
 
std::vector< std::shared_ptr< void > > m_retiredRenderPtrs
 
LIST_TRIANGLES m_triangles
 store pointers so can be deleted latter
 
GLuint m_circleTexture
 
GLuint m_grid
 oGL list that stores current grid
 
GRID3D_TYPE m_lastGridType
 Stores the last grid type.
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_microviaHoles
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_padHoles
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_viaFrontCover
 
std::shared_ptr< OPENGL_RENDER_LIST_DEFERREDm_viaBackCover
 
std::map< wxString, std::shared_ptr< MODEL_3D_DEFERRED > > m_3dModelMap
 
std::map< std::vector< float >, glm::mat4 > m_3dModelMatrixMap
 
BOARD_ITEMm_currentRollOverItem
 
SHAPE_POLY_SET m_antiBoardPolys
 The negative polygon representation of the board outline.
 
SPHERES_GIZMOm_spheres_gizmo
 
std::shared_ptr< MODEL_3Dm_placeholderModel = nullptr
 
std::map< const FOOTPRINT *, std::shared_ptr< OPENGL_RENDER_LIST_DEFERRED > > m_extrudedBodyLists
 
std::map< const FOOTPRINT *, std::shared_ptr< OPENGL_RENDER_LIST_DEFERRED > > m_extrudedPadLists
 
BUSY_INDICATOR::FACTORY m_busyIndicatorFactory
 Factory that returns a suitable busy indicator for the context.
 

Detailed Description

Object to render the board using openGL.

Definition at line 58 of file render_3d_opengl.h.

Constructor & Destructor Documentation

◆ RENDER_3D_OPENGL()

◆ ~RENDER_3D_OPENGL()

Member Function Documentation

◆ addObjectTriangles() [1/5]

void RENDER_3D_OPENGL::addObjectTriangles ( const FILLED_CIRCLE_2D * aCircle,
std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer,
float aZtop,
float aZbot )
private

◆ addObjectTriangles() [2/5]

void RENDER_3D_OPENGL::addObjectTriangles ( const POLYGON_4PT_2D * aPoly,
std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer,
float aZtop,
float aZbot )
private

◆ addObjectTriangles() [3/5]

void RENDER_3D_OPENGL::addObjectTriangles ( const RING_2D * aRing,
std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer,
float aZtop,
float aZbot )
private

◆ addObjectTriangles() [4/5]

◆ addObjectTriangles() [5/5]

void RENDER_3D_OPENGL::addObjectTriangles ( const TRIANGLE_2D * aTri,
std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer,
float aZtop,
float aZbot )
private

◆ addTopAndBottomTriangles()

void RENDER_3D_OPENGL::addTopAndBottomTriangles ( std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDst,
const SFVEC2F & v0,
const SFVEC2F & v1,
const SFVEC2F & v2,
float top,
float bot )
private

◆ appendPostMachiningGeometry()

bool RENDER_3D_OPENGL::appendPostMachiningGeometry ( std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer,
const SFVEC2F & aHoleCenter,
PAD_DRILL_POST_MACHINING_MODE aMode,
int aSizeIU,
int aDepthIU,
float aHoleInnerRadius,
float aZSurface,
bool aIsFront,
float aPlatingThickness3d,
float aUnitScale,
float * aZEnd )
private

◆ appendRenderTriangleList()

void RENDER_3D_OPENGL::appendRenderTriangleList ( std::shared_ptr< TRIANGLE_DISPLAY_LIST > aTriangles)
inlineprivate

◆ assignRenderMap()

template<typename TMap>
void RENDER_3D_OPENGL::assignRenderMap ( TMap & aMap,
const typename TMap::key_type & aKey,
typename TMap::mapped_type aVal )
inlineprivate

Definition at line 305 of file render_3d_opengl.h.

References m_renderMutex, and retireRenderPtr().

Referenced by bgWorker(), load3dModels(), and renderExtrudedBodies().

◆ assignRenderPtr()

template<typename T>
void RENDER_3D_OPENGL::assignRenderPtr ( std::shared_ptr< T > & aDst,
std::shared_ptr< T > aVal )
inlineprivate

◆ backfillPostMachine()

void RENDER_3D_OPENGL::backfillPostMachine ( )
private

Create ring-shaped plugs for holes that have backdrill or post-machining.

These plugs represent the board material that remains in the hole where the backdrill or post-machining didn't reach.

Definition at line 420 of file opengl/create_scene.cpp.

References appendRenderTriangleList(), assignRenderPtr(), B_Cu, center, CIRCLE, COUNTERSINK, dummy, F_Cu, generateCylinder(), generateInvCone(), getLayerZPos(), RENDER_3D_BASE::m_boardAdapter, m_circleTexture, m_postMachinePlugs, NOT_POST_MACHINED, pad, PCB_VIA_T, TENTHS_OF_A_DEGREE_T, UNKNOWN, and via.

Referenced by bgWorker().

◆ bgWorker()

◆ createBoard()

std::shared_ptr< OPENGL_RENDER_LIST_DEFERRED > RENDER_3D_OPENGL::createBoard ( const SHAPE_POLY_SET & aBoardPoly,
const BVH_CONTAINER_2D * aThroughHoles = nullptr,
bool aTransparent = false )
private

◆ CreateBusyIndicator()

std::unique_ptr< BUSY_INDICATOR > RENDER_3D_BASE::CreateBusyIndicator ( ) const
protectedinherited

Return a created busy indicator, if a factory has been set, else a null pointer.

Definition at line 65 of file render_3d_base.cpp.

References m_busyIndicatorFactory.

Referenced by RENDER_3D_OPENGL::Redraw(), RENDER_3D_RAYTRACE_GL::Redraw(), and RENDER_3D_RAYTRACE_RAM::Redraw().

◆ createPlaceholderModel()

void RENDER_3D_OPENGL::createPlaceholderModel ( )
private

Definition at line 1728 of file render_3d_opengl.cpp.

References m_placeholderModel, model, and NORMAL.

Referenced by reload().

◆ freeAllLists()

◆ generate3dGrid()

void RENDER_3D_OPENGL::generate3dGrid ( GRID3D_TYPE aGridType)
private

Create a 3D grid to an OpenGL display list.

A horizontal grid (XY plane and Z = 0, and a vertical grid (XZ plane and Y = 0).

Definition at line 1543 of file render_3d_opengl.cpp.

References DARKGRAY, delta, GRID_10MM, GRID_1MM, GRID_2P5MM, GRID_5MM, KiROUND(), LIGHTBLUE, RENDER_3D_BASE::m_boardAdapter, m_grid, NONE, pcbIUScale, scale, VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by Redraw().

◆ generateCylinder()

void RENDER_3D_OPENGL::generateCylinder ( const SFVEC2F & aCenter,
float aInnerRadius,
float aOuterRadius,
float aZtop,
float aZbot,
unsigned int aNr_sides_per_circle,
std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer )
private

◆ generateDimple()

void RENDER_3D_OPENGL::generateDimple ( const SFVEC2F & aCenter,
float aRadius,
float aZ,
float aDepth,
unsigned int aNr_sides_per_circle,
std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer,
bool aTop )
private

Definition at line 1385 of file opengl/create_scene.cpp.

References delta.

Referenced by generateViaCovers().

◆ generateDisk()

void RENDER_3D_OPENGL::generateDisk ( const SFVEC2F & aCenter,
float aRadius,
float aZ,
unsigned int aNr_sides_per_circle,
std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer,
bool aTop )
private

Definition at line 1362 of file opengl/create_scene.cpp.

References delta.

Referenced by generateViaCovers().

◆ generateEmptyLayerList()

std::shared_ptr< OPENGL_RENDER_LIST_DEFERRED > RENDER_3D_OPENGL::generateEmptyLayerList ( PCB_LAYER_ID aLayer)
private

Definition at line 352 of file opengl/create_scene.cpp.

References appendRenderTriangleList(), getLayerZPos(), and m_circleTexture.

Referenced by bgWorker().

◆ generateHoles()

std::shared_ptr< OPENGL_RENDER_LIST_DEFERRED > RENDER_3D_OPENGL::generateHoles ( const LIST_OBJECT2D & aListHolesObject2d,
const SHAPE_POLY_SET & aPoly,
float aZtop,
float aZbot,
bool aInvertFaces,
const BVH_CONTAINER_2D * aThroughHoles = nullptr )
private

◆ generateInvCone()

void RENDER_3D_OPENGL::generateInvCone ( const SFVEC2F & aCenter,
float aInnerRadius,
float aOuterRadius,
float aZtop,
float aZbot,
unsigned int aNr_sides_per_circle,
std::shared_ptr< TRIANGLE_DISPLAY_LIST > aDstLayer,
EDA_ANGLE aAngle )
private

Definition at line 1300 of file opengl/create_scene.cpp.

References EDA_ANGLE::AsRadians(), and generateRing().

Referenced by backfillPostMachine().

◆ generateLayerList()

std::shared_ptr< OPENGL_RENDER_LIST_DEFERRED > RENDER_3D_OPENGL::generateLayerList ( const BVH_CONTAINER_2D * aContainer,
const SHAPE_POLY_SET * aPolyList,
PCB_LAYER_ID aLayer,
const BVH_CONTAINER_2D * aThroughHoles = nullptr )
private

◆ generatePlatedHoleShells()

◆ generateRing()

void RENDER_3D_OPENGL::generateRing ( const SFVEC2F & aCenter,
float aInnerRadius,
float aOuterRadius,
unsigned int aNr_sides_per_circle,
std::vector< SFVEC2F > & aInnerContourResult,
std::vector< SFVEC2F > & aOuterContourResult,
bool aInvertOrder )
private

◆ generateViaBarrels()

void RENDER_3D_OPENGL::generateViaBarrels ( float aPlatingThickness3d,
float aUnitScale )
private

◆ generateViaCovers()

void RENDER_3D_OPENGL::generateViaCovers ( float aPlatingThickness3d,
float aUnitScale )
private

◆ generateViasAndPads()

void RENDER_3D_OPENGL::generateViasAndPads ( )
private

◆ get3dModelsFromFootprint()

void RENDER_3D_OPENGL::get3dModelsFromFootprint ( std::list< MODELTORENDER > & aDstRenderList,
const FOOTPRINT * aFootprint,
bool aRenderTransparentOnly,
bool aIsSelected )
private

◆ get3dModelsSelected()

void RENDER_3D_OPENGL::get3dModelsSelected ( std::list< MODELTORENDER > & aDstRenderList,
bool aGetTop,
bool aGetBot,
bool aRenderTransparentOnly,
bool aRenderSelectedOnly )
private

◆ getGizmoViewport()

std::tuple< int, int, int, int > RENDER_3D_OPENGL::getGizmoViewport ( ) const

Definition at line 171 of file render_3d_opengl.cpp.

References m_spheres_gizmo.

◆ getLayerZPos()

void RENDER_3D_OPENGL::getLayerZPos ( PCB_LAYER_ID aLayerID,
float & aOutZtop,
float & aOutZbot ) const
private

◆ getSelectedGizmoSphere()

SPHERES_GIZMO::GizmoSphereSelection RENDER_3D_OPENGL::getSelectedGizmoSphere ( ) const

Definition at line 159 of file render_3d_opengl.cpp.

References m_spheres_gizmo.

◆ GetWaitForEditingTimeOut()

int RENDER_3D_OPENGL::GetWaitForEditingTimeOut ( )
overridevirtual

Give the interface the time (in ms) that it should wait for editing or movements before (this works for display preview mode).

Returns
a value in milliseconds

Implements RENDER_3D_BASE.

Definition at line 104 of file render_3d_opengl.cpp.

◆ handleGizmoMouseInput()

void RENDER_3D_OPENGL::handleGizmoMouseInput ( int mouseX,
int mouseY )

Definition at line 177 of file render_3d_opengl.cpp.

References m_spheres_gizmo.

◆ initializeOpenGL()

◆ IsReloadRequestPending()

bool RENDER_3D_BASE::IsReloadRequestPending ( ) const
inlineinherited

Query if there is a pending reload request.

Returns
true if it wants to reload, false if there is no reload pending

Definition at line 71 of file render_3d_base.h.

References m_reloadRequested.

◆ JoinBgWorker()

void RENDER_3D_OPENGL::JoinBgWorker ( )
overridevirtual

Block until any in-progress background loading has finished.

Reimplemented from RENDER_3D_BASE.

Definition at line 1231 of file opengl/create_scene.cpp.

References m_bgWorkerThread, and RENDER_3D_BASE::m_logTrace.

◆ load3dModels()

void RENDER_3D_OPENGL::load3dModels ( std::stop_token aStop = std::stop_token())
private

Load footprint models from the cache and load it to deferred openGL lists (MODEL_3D_DEFERRED) objects.

This map of models will work as a local cache for this render. (cache based on MODEL_3D_DEFERRED with openGL lists in GPU memory on request)

Parameters
aStopthe stop token to allow cancellation of the loading process.

Definition at line 1889 of file opengl/create_scene.cpp.

References _, assignRenderMap(), PROJECT_PCB::FootprintLibAdapter(), LIBRARY_MANAGER::GetFullURI(), S3D_CACHE::GetModel(), LIBRARY_MANAGER_ADAPTER::GetRow(), m_3dModelMap, RENDER_3D_BASE::m_activityReporter, RENDER_3D_BASE::m_boardAdapter, model, and sendRefreshView().

Referenced by bgWorker(), and Load3dModelsIfNeeded().

◆ Load3dModelsIfNeeded()

void RENDER_3D_OPENGL::Load3dModelsIfNeeded ( )

Load footprint models if they are not already loaded, i.e.

if m_3dModelMap is empty

Definition at line 1880 of file opengl/create_scene.cpp.

References load3dModels(), and m_3dModelMap.

Referenced by APPEARANCE_CONTROLS_3D::OnLayerVisibilityChanged().

◆ RebuildHitTestAsync()

void RENDER_3D_OPENGL::RebuildHitTestAsync ( )

Rebuild the raytracing hit-test scene in the background after a visibility change.

Definition at line 1173 of file opengl/create_scene.cpp.

References m_bgWorkerBusy, m_bgWorkerThread, m_hitTestDirty, and runHitTestRebuild().

Referenced by APPEARANCE_CONTROLS_3D::OnLayerVisibilityChanged().

◆ Redraw()

bool RENDER_3D_OPENGL::Redraw ( bool aIsMoving)
overridevirtual

Redraw the view.

Parameters
aIsMovingif the user is moving the scene, it should be render in preview mode.
Returns
true if the render would like to redraw again.

Implements RENDER_3D_BASE.

Definition at line 523 of file render_3d_opengl.cpp.

References _, B_Cu, B_Mask, B_Paste, B_SilkS, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::clip_silk_on_via_annuli, RENDER_3D_BASE::CreateBusyIndicator(), EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::DifferentiatePlatedCopper(), F_Cu, F_Mask, F_Paste, F_SilkS, generate3dGrid(), PGM_BASE::GetGLContextManager(), EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::grid_type, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::highlight_on_rollover, initializeOpenGL(), IsCopperLayer(), LAYER_3D_BOARD, LAYER_3D_SOLDERMASK_BOTTOM, LAYER_3D_SOLDERMASK_TOP, RENDER_3D_BASE::m_activityReporter, m_antiBoard, RENDER_3D_BASE::m_boardAdapter, RENDER_3D_BASE::m_camera, RENDER_3D_BASE::m_canvasInitialized, m_circleTexture, m_currentRollOverItem, SMATERIAL::m_Diffuse, m_extrudedPadLists, m_grid, m_lastGridType, m_layers, m_materials, m_microviaHoles, m_offboardPadsBack, m_offboardPadsFront, m_outerLayerHoles, m_outerThroughHoleRings, m_outerThroughHoles, m_padHoles, m_platedPadsBack, m_platedPadsFront, RENDER_3D_BASE::m_reloadRequested, m_renderMutex, SMATERIAL::m_Shininess, SMATERIAL::m_Specular, m_spheres_gizmo, SMATERIAL::m_Transparency, RENDER_3D_BASE::m_windowSize, NONE, OglDrawBackground(), OglResetTextureState(), OglSetMaterial(), EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::opengl_AA_disableOnMove, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::opengl_holes_disableOnMove, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::opengl_microvias_disableOnMove, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::opengl_selection_color, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::opengl_thickness_disableOnMove, Pgm(), LSET::PhysicalLayersMask(), premultiplyAlpha(), releaseRetiredRenderPtrs(), reload(), renderBoardBody(), renderExtrudedBodies(), renderOpaqueModels(), renderSolderMaskLayer(), renderTransparentModels(), GL_CONTEXT_MANAGER::RunWithoutCtxLock(), setCopperMaterial(), setLayerMaterial(), setLightBottom(), setLightFront(), setLightTop(), setPlatedCopperAndDepthOffset(), setupMaterials(), EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::show_navigator, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::show_off_board_silk, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::subtract_mask_from_silk, and unsetDepthOffset().

◆ releaseRetiredRenderPtrs()

void RENDER_3D_OPENGL::releaseRetiredRenderPtrs ( )
private

Definition at line 1082 of file render_3d_opengl.cpp.

References m_renderMutex, and m_retiredRenderPtrs.

Referenced by Redraw().

◆ reload()

◆ ReloadRequest()

void RENDER_3D_BASE::ReloadRequest ( )
inlineinherited
Todo
This must be reviewed to add flags to improve specific render.

Definition at line 64 of file render_3d_base.h.

References m_reloadRequested.

◆ renderBoardBody()

void RENDER_3D_OPENGL::renderBoardBody ( bool aSkipRenderHoles)
private

◆ renderExtrudedBodies() [1/2]

◆ renderExtrudedBodies() [2/2]

◆ renderModel()

◆ renderOpaqueModels()

void RENDER_3D_OPENGL::renderOpaqueModels ( const glm::mat4 & aCameraViewMatrix)
private

◆ renderPlaceholderForFootprint()

void RENDER_3D_OPENGL::renderPlaceholderForFootprint ( std::list< MODELTORENDER > & aDstRenderList,
const glm::mat4 & aFpMatrix,
const FOOTPRINT * aFootprint,
bool aRenderTransparentOnly,
bool aIsSelected,
float aOpacity )
private

◆ renderSolderMaskLayer()

void RENDER_3D_OPENGL::renderSolderMaskLayer ( PCB_LAYER_ID aLayerID,
float aZPos,
bool aShowThickness,
bool aSkipRenderHoles )
private

◆ renderTransparentModels()

void RENDER_3D_OPENGL::renderTransparentModels ( const glm::mat4 & aCameraViewMatrix)
private

◆ resetSelectedGizmoSphere()

void RENDER_3D_OPENGL::resetSelectedGizmoSphere ( )

Definition at line 153 of file render_3d_opengl.cpp.

References m_spheres_gizmo.

◆ retireRenderPtr()

template<typename T>
void RENDER_3D_OPENGL::retireRenderPtr ( std::shared_ptr< T > & aPtr)
inlineprivate

Definition at line 314 of file render_3d_opengl.h.

References m_retiredRenderPtrs.

Referenced by assignRenderMap(), and assignRenderPtr().

◆ runHitTestRebuild()

void RENDER_3D_OPENGL::runHitTestRebuild ( std::stop_token aStop)
private

Definition at line 1193 of file opengl/create_scene.cpp.

References m_bgWorkerBusy, m_canvas, and m_hitTestDirty.

Referenced by bgWorker(), and RebuildHitTestAsync().

◆ sendRefreshView()

void RENDER_3D_OPENGL::sendRefreshView ( )
private

Definition at line 829 of file opengl/create_scene.cpp.

References ID_CUSTOM_EVENT_1, and m_canvas.

Referenced by bgWorker(), and load3dModels().

◆ setArrowMaterial()

void RENDER_3D_OPENGL::setArrowMaterial ( )
private

Definition at line 1004 of file render_3d_opengl.cpp.

◆ SetBusyIndicatorFactory()

void RENDER_3D_BASE::SetBusyIndicatorFactory ( BUSY_INDICATOR::FACTORY aNewFactory)
inherited

Set a new busy indicator factory.

When set, this factory will be used to generate busy indicators when suitable. If not set, no busy indicator will be used.

Definition at line 59 of file render_3d_base.cpp.

References m_busyIndicatorFactory.

◆ setCopperMaterial()

void RENDER_3D_OPENGL::setCopperMaterial ( )
private

Definition at line 453 of file render_3d_opengl.cpp.

References m_materials, and OglSetMaterial().

Referenced by Redraw().

◆ SetCurrentRollOverItem()

void RENDER_3D_OPENGL::SetCurrentRollOverItem ( BOARD_ITEM * aRollOverItem)
inline

Definition at line 73 of file render_3d_opengl.h.

References m_currentRollOverItem.

◆ SetCurWindowSize()

void RENDER_3D_OPENGL::SetCurWindowSize ( const wxSize & aSize)
overridevirtual

Before each render, the canvas will tell the render what is the size of its windows, so render can take actions if it changed.

Parameters
aSizethe current size of the render window

Implements RENDER_3D_BASE.

Definition at line 110 of file render_3d_opengl.cpp.

References RENDER_3D_BASE::m_windowSize, and setGizmoViewport().

◆ setGizmoViewport()

void RENDER_3D_OPENGL::setGizmoViewport ( int x,
int y,
int width,
int height )

Definition at line 165 of file render_3d_opengl.cpp.

References m_spheres_gizmo.

Referenced by SetCurWindowSize().

◆ setLayerMaterial()

◆ setLightBottom()

void RENDER_3D_OPENGL::setLightBottom ( bool enabled)
private

Definition at line 144 of file render_3d_opengl.cpp.

Referenced by Redraw().

◆ setLightFront()

void RENDER_3D_OPENGL::setLightFront ( bool enabled)
private

Definition at line 126 of file render_3d_opengl.cpp.

Referenced by Redraw().

◆ setLightTop()

void RENDER_3D_OPENGL::setLightTop ( bool enabled)
private

Definition at line 135 of file render_3d_opengl.cpp.

Referenced by Redraw().

◆ setPlatedCopperAndDepthOffset()

void RENDER_3D_OPENGL::setPlatedCopperAndDepthOffset ( PCB_LAYER_ID aLayer_id)
private

Definition at line 459 of file render_3d_opengl.cpp.

References setLayerMaterial().

Referenced by Redraw().

◆ SetReporters()

void RENDER_3D_BASE::SetReporters ( std::shared_ptr< REPORTER > aActivityReporter,
std::shared_ptr< REPORTER > aWarningReporter )
inlineinherited

Set the reporters for activity and warning messages.

Parameters
aActivityReportera shared pointer to the activity reporter.
aWarningReportera shared pointer to the warning reporter.

Definition at line 105 of file render_3d_base.h.

References m_activityReporter, and m_warningReporter.

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender().

◆ setupMaterials()

void RENDER_3D_OPENGL::setupMaterials ( )
private

Definition at line 189 of file render_3d_opengl.cpp.

References RENDER_3D_BASE::m_boardAdapter, m_materials, and mapf().

Referenced by Redraw().

◆ startBgWorker()

void RENDER_3D_OPENGL::startBgWorker ( )
private

Definition at line 1153 of file opengl/create_scene.cpp.

References bgWorker(), m_bgWorkerBusy, m_bgWorkerThread, and RENDER_3D_BASE::m_logTrace.

Referenced by reload().

◆ StopBgWorker()

void RENDER_3D_OPENGL::StopBgWorker ( )
overridevirtual

Request stop and join any in-progress background loading.

Reimplemented from RENDER_3D_BASE.

Definition at line 1214 of file opengl/create_scene.cpp.

References _, RENDER_3D_BASE::m_activityReporter, m_bgWorkerBusy, m_bgWorkerThread, and RENDER_3D_BASE::m_logTrace.

Referenced by reload(), and ~RENDER_3D_OPENGL().

◆ unsetDepthOffset()

void RENDER_3D_OPENGL::unsetDepthOffset ( )
private

Definition at line 467 of file render_3d_opengl.cpp.

Referenced by Redraw().

◆ updateGizmoSelection()

void RENDER_3D_OPENGL::updateGizmoSelection ( glm::mat4 aCameraRotationMatrix)

Definition at line 183 of file render_3d_opengl.cpp.

References m_spheres_gizmo.

Member Data Documentation

◆ m_3dModelMap

std::map<wxString, std::shared_ptr<MODEL_3D_DEFERRED> > RENDER_3D_OPENGL::m_3dModelMap
private

◆ m_3dModelMatrixMap

std::map<std::vector<float>, glm::mat4> RENDER_3D_OPENGL::m_3dModelMatrixMap
private

Definition at line 357 of file render_3d_opengl.h.

Referenced by freeAllLists(), and get3dModelsFromFootprint().

◆ m_activityReporter

◆ m_antiBoard

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_antiBoard
private

Definition at line 338 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), Redraw(), and RENDER_3D_OPENGL().

◆ m_antiBoardPolys

SHAPE_POLY_SET RENDER_3D_OPENGL::m_antiBoardPolys
private

The negative polygon representation of the board outline.

Definition at line 361 of file render_3d_opengl.h.

Referenced by bgWorker(), and generatePlatedHoleShells().

◆ m_bgWorkerBusy

std::atomic<bool> RENDER_3D_OPENGL::m_bgWorkerBusy { false }
private

◆ m_bgWorkerThread

std::jthread RENDER_3D_OPENGL::m_bgWorkerThread
private

Definition at line 289 of file render_3d_opengl.h.

Referenced by JoinBgWorker(), RebuildHitTestAsync(), startBgWorker(), and StopBgWorker().

◆ m_board

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_board
private

◆ m_boardAdapter

BOARD_ADAPTER& RENDER_3D_BASE::m_boardAdapter
protectedinherited

Settings reference in use for this render.

Definition at line 118 of file render_3d_base.h.

Referenced by RENDER_3D_RAYTRACE_BASE::addCounterborePlating(), RENDER_3D_RAYTRACE_BASE::addCountersinkPlating(), RENDER_3D_RAYTRACE_BASE::addExtrudedBodyToRaytracer(), RENDER_3D_RAYTRACE_BASE::addModels(), RENDER_3D_OPENGL::addObjectTriangles(), RENDER_3D_RAYTRACE_BASE::addPadsAndVias(), RENDER_3D_OPENGL::appendPostMachiningGeometry(), RENDER_3D_OPENGL::backfillPostMachine(), RENDER_3D_RAYTRACE_BASE::backfillPostMachine(), RENDER_3D_OPENGL::bgWorker(), RENDER_3D_OPENGL::createBoard(), RENDER_3D_RAYTRACE_BASE::createItemsFromContainer(), RENDER_3D_OPENGL::generate3dGrid(), RENDER_3D_OPENGL::generateHoles(), RENDER_3D_OPENGL::generateLayerList(), RENDER_3D_OPENGL::generatePlatedHoleShells(), RENDER_3D_OPENGL::generateViaBarrels(), RENDER_3D_OPENGL::generateViaCovers(), RENDER_3D_OPENGL::generateViasAndPads(), RENDER_3D_OPENGL::get3dModelsFromFootprint(), RENDER_3D_OPENGL::get3dModelsSelected(), RENDER_3D_OPENGL::getLayerZPos(), RENDER_3D_RAYTRACE_BASE::getModelMaterial(), RENDER_3D_RAYTRACE_BASE::insertHole(), RENDER_3D_RAYTRACE_BASE::insertHole(), RENDER_3D_RAYTRACE_BASE::load3DModels(), RENDER_3D_OPENGL::load3dModels(), RENDER_3D_RAYTRACE_BASE::postProcessBlurFinish(), RENDER_3D_RAYTRACE_BASE::postProcessShading(), RENDER_3D_OPENGL::Redraw(), RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_BASE::Reload(), RENDER_3D_OPENGL::reload(), RENDER_3D_RAYTRACE_BASE::render(), RENDER_3D_BASE(), RENDER_3D_RAYTRACE_BASE::renderAntiAliasPackets(), RENDER_3D_RAYTRACE_BASE::renderBlockTracing(), RENDER_3D_OPENGL::renderBoardBody(), RENDER_3D_OPENGL::renderExtrudedBodies(), RENDER_3D_OPENGL::renderExtrudedBodies(), RENDER_3D_OPENGL::renderModel(), RENDER_3D_OPENGL::renderOpaqueModels(), RENDER_3D_OPENGL::renderPlaceholderForFootprint(), RENDER_3D_RAYTRACE_BASE::renderPreview(), RENDER_3D_OPENGL::renderSolderMaskLayer(), RENDER_3D_RAYTRACE_BASE::renderTracing(), RENDER_3D_OPENGL::renderTransparentModels(), RENDER_3D_OPENGL::setLayerMaterial(), RENDER_3D_OPENGL::setupMaterials(), RENDER_3D_RAYTRACE_BASE::setupMaterials(), and RENDER_3D_RAYTRACE_BASE::shadeHit().

◆ m_boardWithHoles

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_boardWithHoles
private

Definition at line 336 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), RENDER_3D_OPENGL(), and renderBoardBody().

◆ m_busyIndicatorFactory

BUSY_INDICATOR::FACTORY RENDER_3D_BASE::m_busyIndicatorFactory
privateinherited

Factory that returns a suitable busy indicator for the context.

Definition at line 144 of file render_3d_base.h.

Referenced by CreateBusyIndicator(), and SetBusyIndicatorFactory().

◆ m_camera

◆ m_canvas

EDA_3D_CANVAS* RENDER_3D_OPENGL::m_canvas
private

◆ m_canvasInitialized

bool RENDER_3D_BASE::m_canvasInitialized
protectedinherited

◆ m_circleTexture

◆ m_Copper

SMATERIAL RENDER_3D_OPENGL::m_Copper

Definition at line 283 of file render_3d_opengl.h.

◆ m_currentRollOverItem

BOARD_ITEM* RENDER_3D_OPENGL::m_currentRollOverItem
private

◆ m_EpoxyBoard

SMATERIAL RENDER_3D_OPENGL::m_EpoxyBoard

Definition at line 281 of file render_3d_opengl.h.

◆ m_extrudedBodyLists

std::map<const FOOTPRINT*, std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> > RENDER_3D_OPENGL::m_extrudedBodyLists
private

◆ m_extrudedPadLists

std::map<const FOOTPRINT*, std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> > RENDER_3D_OPENGL::m_extrudedPadLists
private

Definition at line 367 of file render_3d_opengl.h.

Referenced by freeAllLists(), Redraw(), and renderExtrudedBodies().

◆ m_GrayMaterial

SMATERIAL RENDER_3D_OPENGL::m_GrayMaterial

Definition at line 285 of file render_3d_opengl.h.

◆ m_grid

GLuint RENDER_3D_OPENGL::m_grid
private

oGL list that stores current grid

Definition at line 347 of file render_3d_opengl.h.

Referenced by freeAllLists(), generate3dGrid(), Redraw(), and RENDER_3D_OPENGL().

◆ m_hitTestDirty

std::atomic<bool> RENDER_3D_OPENGL::m_hitTestDirty { false }
private

Definition at line 291 of file render_3d_opengl.h.

Referenced by bgWorker(), RebuildHitTestAsync(), and runHitTestRebuild().

◆ m_innerLayerHoles

MAP_OGL_DISP_LISTS RENDER_3D_OPENGL::m_innerLayerHoles
private

Definition at line 334 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), and RENDER_3D_OPENGL().

◆ m_lastGridType

GRID3D_TYPE RENDER_3D_OPENGL::m_lastGridType
private

Stores the last grid type.

Definition at line 348 of file render_3d_opengl.h.

Referenced by Redraw(), and RENDER_3D_OPENGL().

◆ m_layers

MAP_OGL_DISP_LISTS RENDER_3D_OPENGL::m_layers
private

◆ [struct]

struct { ... } RENDER_3D_OPENGL::m_materials

◆ m_microviaHoles

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_microviaHoles
private

Definition at line 350 of file render_3d_opengl.h.

Referenced by freeAllLists(), generateViaBarrels(), Redraw(), and RENDER_3D_OPENGL().

◆ m_NonPlatedCopper

SMATERIAL RENDER_3D_OPENGL::m_NonPlatedCopper

Definition at line 282 of file render_3d_opengl.h.

◆ m_offboardPadsBack

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_offboardPadsBack
private

Definition at line 332 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), Redraw(), and RENDER_3D_OPENGL().

◆ m_offboardPadsFront

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_offboardPadsFront
private

Definition at line 331 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), Redraw(), and RENDER_3D_OPENGL().

◆ m_outerLayerHoles

MAP_OGL_DISP_LISTS RENDER_3D_OPENGL::m_outerLayerHoles
private

Definition at line 333 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), Redraw(), and RENDER_3D_OPENGL().

◆ m_outerThroughHoleRings

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_outerThroughHoleRings
private

Definition at line 341 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), Redraw(), and RENDER_3D_OPENGL().

◆ m_outerThroughHoles

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_outerThroughHoles
private

◆ m_outerViaThroughHoles

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_outerViaThroughHoles
private

Definition at line 340 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), and RENDER_3D_OPENGL().

◆ m_padHoles

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_padHoles
private

◆ m_Paste

SMATERIAL RENDER_3D_OPENGL::m_Paste

Definition at line 277 of file render_3d_opengl.h.

◆ m_placeholderModel

std::shared_ptr<MODEL_3D> RENDER_3D_OPENGL::m_placeholderModel = nullptr
private

◆ m_Plastic

SMATERIAL RENDER_3D_OPENGL::m_Plastic

Definition at line 284 of file render_3d_opengl.h.

◆ m_platedPadsBack

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_platedPadsBack
private

Definition at line 330 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), Redraw(), and RENDER_3D_OPENGL().

◆ m_platedPadsFront

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_platedPadsFront
private

Definition at line 329 of file render_3d_opengl.h.

Referenced by bgWorker(), freeAllLists(), Redraw(), and RENDER_3D_OPENGL().

◆ m_postMachinePlugs

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_postMachinePlugs
private

Board material plugs for backdrill/counterbore/countersink.

Definition at line 337 of file render_3d_opengl.h.

Referenced by backfillPostMachine(), freeAllLists(), RENDER_3D_OPENGL(), and renderBoardBody().

◆ m_reloadRequested

bool RENDER_3D_BASE::m_reloadRequested
protectedinherited

◆ m_renderMutex

std::recursive_mutex RENDER_3D_OPENGL::m_renderMutex
private

◆ m_retiredRenderPtrs

std::vector<std::shared_ptr<void> > RENDER_3D_OPENGL::m_retiredRenderPtrs
private

Definition at line 342 of file render_3d_opengl.h.

Referenced by releaseRetiredRenderPtrs(), and retireRenderPtr().

◆ m_SilkSBot

SMATERIAL RENDER_3D_OPENGL::m_SilkSBot

Definition at line 278 of file render_3d_opengl.h.

◆ m_SilkSTop

SMATERIAL RENDER_3D_OPENGL::m_SilkSTop

Definition at line 279 of file render_3d_opengl.h.

◆ m_SolderMask

SMATERIAL RENDER_3D_OPENGL::m_SolderMask

Definition at line 280 of file render_3d_opengl.h.

◆ m_spheres_gizmo

◆ m_triangles

LIST_TRIANGLES RENDER_3D_OPENGL::m_triangles
private

store pointers so can be deleted latter

Definition at line 344 of file render_3d_opengl.h.

Referenced by appendRenderTriangleList(), freeAllLists(), and RENDER_3D_OPENGL().

◆ m_viaBackCover

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_viaBackCover
private

◆ m_viaFrontCover

std::shared_ptr<OPENGL_RENDER_LIST_DEFERRED> RENDER_3D_OPENGL::m_viaFrontCover
private

◆ m_warningReporter

std::shared_ptr<REPORTER> RENDER_3D_BASE::m_warningReporter
protectedinherited

◆ m_windowSize


The documentation for this class was generated from the following files: