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

#include <render_3d_raytrace.h>

Inheritance diagram for RENDER_3D_RAYTRACE:
RENDER_3D_BASE

Public Member Functions

 RENDER_3D_RAYTRACE (EDA_3D_CANVAS *aCanvas, BOARD_ADAPTER &aAdapter, CAMERA &aCamera)
 
 ~RENDER_3D_RAYTRACE ()
 
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. More...
 
bool Redraw (bool aIsMoving, REPORTER *aStatusReporter, REPORTER *aWarningReporter) override
 Redraw the view. More...
 
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). More...
 
void Reload (REPORTER *aStatusReporter, REPORTER *aWarningReporter, bool aOnlyLoadCopperAndShapes)
 
BOARD_ITEMIntersectBoardItem (const RAY &aRay)
 
void ReloadRequest ()
 
bool IsReloadRequestPending () const
 Query if there is a pending reload request. More...
 
void SetBusyIndicatorFactory (BUSY_INDICATOR::FACTORY aNewFactory)
 Set a new busy indicator factory. More...
 

Static Public Attributes

static constexpr float MIN_DISTANCE_IU = 4 * PCB_IU_PER_MM
 

Protected Member Functions

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

Protected Attributes

EDA_3D_CANVASm_canvas
 Settings reference in use for this render. More...
 
BOARD_ADAPTERm_boardAdapter
 
CAMERAm_camera
 Flag if the opengl specific for this render was already initialized. More...
 
bool m_is_opengl_initialized
 
bool m_reloadRequested
 The window size that this camera is working. More...
 
wxSize m_windowSize
 

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. More...
 

Private Member Functions

bool initializeOpenGL ()
 
void initializeNewWindowSize ()
 
void initPbo ()
 
void deletePbo ()
 
void createItemsFromContainer (const BVH_CONTAINER_2D *aContainer2d, PCB_LAYER_ID aLayer_id, const MATERIAL *aMaterialLayer, const SFVEC3F &aLayerColor, float aLayerZOffset)
 
void restartRenderState ()
 
void renderTracing (GLubyte *ptrPBO, REPORTER *aStatusReporter)
 
void postProcessShading (GLubyte *ptrPBO, REPORTER *aStatusReporter)
 
void postProcessBlurFinish (GLubyte *ptrPBO, REPORTER *aStatusReporter)
 
void renderBlockTracing (GLubyte *ptrPBO, signed int iBlock)
 
void renderFinalColor (GLubyte *ptrPBO, const SFVEC3F &rgbColor, bool applyColorSpaceConversion)
 
void renderRayPackets (const SFVEC3F *bgColorY, const RAY *aRayPkt, HITINFO_PACKET *aHitPacket, bool is_testShadow, SFVEC3F *aOutHitColor)
 
void renderAntiAliasPackets (const SFVEC3F *aBgColorY, const HITINFO_PACKET *aHitPck_X0Y0, const HITINFO_PACKET *aHitPck_AA_X1Y1, const RAY *aRayPck, SFVEC3F *aOutHitColor)
 
void setupMaterials ()
 
SFVEC3F shadeHit (const SFVEC3F &aBgColor, const RAY &aRay, HITINFO &aHitInfo, bool aIsInsideObject, unsigned int aRecursiveLevel, bool is_testShadow) const
 
void createObject (CONTAINER_3D &aDstContainer, const OBJECT_2D *aObject2D, float aZMin, float aZMax, const MATERIAL *aMaterial, const SFVEC3F &aObjColor)
 Create one or more 3D objects form a 2D object and Z positions. More...
 
void addPadsAndVias ()
 
void insertHole (const PCB_VIA *aVia)
 
void insertHole (const PAD *aPad)
 
void load3DModels (CONTAINER_3D &aDstContainer, bool aSkipMaterialInformation)
 
void addModels (CONTAINER_3D &aDstContainer, const S3DMODEL *a3DModel, const glm::mat4 &aModelMatrix, float aFPOpacity, bool aSkipMaterialInformation, BOARD_ITEM *aBoardItem)
 
MODEL_MATERIALSgetModelMaterial (const S3DMODEL *a3DModel)
 
void initializeBlockPositions ()
 
void render (GLubyte *ptrPBO, REPORTER *aStatusReporter)
 
void renderPreview (GLubyte *ptrPBO)
 

Private Attributes

struct {
   BLINN_PHONG_MATERIAL   m_Paste
 
   BLINN_PHONG_MATERIAL   m_SilkS
 
   BLINN_PHONG_MATERIAL   m_SolderMask
 
   BLINN_PHONG_MATERIAL   m_EpoxyBoard
 
   BLINN_PHONG_MATERIAL   m_Copper
 
   BLINN_PHONG_MATERIAL   m_NonPlatedCopper
 
   BLINN_PHONG_MATERIAL   m_Floor
 
m_materials
 
BOARD_NORMAL m_boardMaterial
 
COPPER_NORMAL m_copperMaterial
 
PLATED_COPPER_NORMAL m_platedCopperMaterial
 
SOLDER_MASK_NORMAL m_solderMaskMaterial
 
PLASTIC_NORMAL m_plasticMaterial
 
PLASTIC_SHINE_NORMAL m_shinyPlasticMaterial
 
BRUSHED_METAL_NORMAL m_brushedMetalMaterial
 
SILK_SCREEN_NORMAL m_silkScreenMaterial
 
bool m_isPreview
 
RT_RENDER_STATE m_renderState
 State used on quality render. More...
 
unsigned long int m_renderStartTime
 Time that the render starts. More...
 
size_t m_blockRenderProgressCount
 Save the number of blocks progress of the render. More...
 
POST_SHADER_SSAO m_postShaderSsao
 
std::list< LIGHT * > m_lights
 
DIRECTIONAL_LIGHTm_cameraLight
 
bool m_openglSupportsVertexBufferObjects
 
GLuint m_pboId
 
GLuint m_pboDataSize
 
CONTAINER_3D m_objectContainer
 Store the list of created objects special for RT that will be clear in the end. More...
 
CONTAINER_2D m_containerWithObjectsToDelete
 
CONTAINER_2Dm_outlineBoard2dObjects
 
BVH_CONTAINER_2Dm_antioutlineBoard2dObjects
 
ACCELERATOR_3Dm_accelerator
 
SFVEC3F m_backgroundColorTop
 
SFVEC3F m_backgroundColorBottom
 Used to see if the windows size changed. More...
 
wxSize m_oldWindowsSize
 Encode Morton code positions. More...
 
std::vector< SFVEC2UIm_blockPositions
 Flag if a position was already processed (cleared each new render). More...
 
std::vector< int > m_blockPositionsWasProcessed
 Encode the Morton code positions (on fast preview mode). More...
 
std::vector< SFVEC2UIm_blockPositionsFast
 
SFVEC2UI m_realBufferSize
 
SFVEC2UI m_fastPreviewModeSize
 
HITINFO_PACKETm_firstHitinfo
 
SFVEC3Fm_shaderBuffer
 
unsigned int m_xoffset
 
unsigned int m_yoffset
 
MAP_MODEL_MATERIALS m_modelMaterialMap
 Stores materials of the 3D models. More...
 
unsigned int m_convertedDummyBlockCount
 
unsigned int m_converted2dRoundSegmentCount
 
BUSY_INDICATOR::FACTORY m_busyIndicatorFactory
 < Factory that returns a suitable busy indicator for the context. More...
 

Detailed Description

Definition at line 55 of file render_3d_raytrace.h.

Constructor & Destructor Documentation

◆ RENDER_3D_RAYTRACE()

◆ ~RENDER_3D_RAYTRACE()

RENDER_3D_RAYTRACE::~RENDER_3D_RAYTRACE ( )

Member Function Documentation

◆ addModels()

◆ addPadsAndVias()

void RENDER_3D_RAYTRACE::addPadsAndVias ( )
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.

the canvas to display the scene

Definition at line 70 of file render_3d_base.cpp.

References RENDER_3D_BASE::m_busyIndicatorFactory.

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

◆ createItemsFromContainer()

◆ createObject()

void RENDER_3D_RAYTRACE::createObject ( CONTAINER_3D aDstContainer,
const OBJECT_2D aObject2D,
float  aZMin,
float  aZMax,
const MATERIAL aMaterial,
const SFVEC3F aObjColor 
)
private

Create one or more 3D objects form a 2D object and Z positions.

It tries to optimize some types of objects that will be faster to trace than the LAYER_ITEM object.

Definition at line 179 of file raytracing/create_scene.cpp.

References CONTAINER_3D_BASE::Add(), ConvertSRGBToLinear(), OBJECT_2D::GetBBox(), OBJECT_2D::GetObjectType(), m_converted2dRoundSegmentCount, m_convertedDummyBlockCount, BBOX_2D::Max(), BBOX_2D::Min(), LAYER_ITEM::SetColor(), XY_PLANE::SetColor(), ROUND_SEGMENT::SetColor(), and OBJECT_3D::SetMaterial().

Referenced by Reload().

◆ deletePbo()

void RENDER_3D_RAYTRACE::deletePbo ( )
private

Definition at line 98 of file render_3d_raytrace.cpp.

References m_openglSupportsVertexBufferObjects, and m_pboId.

Referenced by initPbo(), and ~RENDER_3D_RAYTRACE().

◆ getModelMaterial()

◆ GetWaitForEditingTimeOut()

int RENDER_3D_RAYTRACE::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 92 of file render_3d_raytrace.cpp.

◆ initializeBlockPositions()

◆ initializeNewWindowSize()

void RENDER_3D_RAYTRACE::initializeNewWindowSize ( )
private

Definition at line 1802 of file render_3d_raytrace.cpp.

References initPbo().

Referenced by SetCurWindowSize().

◆ initializeOpenGL()

bool RENDER_3D_RAYTRACE::initializeOpenGL ( )
private

Definition at line 1837 of file render_3d_raytrace.cpp.

References RENDER_3D_BASE::m_is_opengl_initialized.

Referenced by Redraw().

◆ initPbo()

void RENDER_3D_RAYTRACE::initPbo ( )
private

◆ insertHole() [1/2]

◆ insertHole() [2/2]

◆ IntersectBoardItem()

BOARD_ITEM * RENDER_3D_RAYTRACE::IntersectBoardItem ( const RAY aRay)

◆ 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 77 of file render_3d_base.h.

References RENDER_3D_BASE::m_reloadRequested.

Referenced by EDA_3D_CANVAS::DoRePaint(), and EDA_3D_CANVAS::IsReloadRequestPending().

◆ load3DModels()

◆ postProcessBlurFinish()

void RENDER_3D_RAYTRACE::postProcessBlurFinish ( GLubyte *  ptrPBO,
REPORTER aStatusReporter 
)
private

◆ postProcessShading()

◆ Redraw()

bool RENDER_3D_RAYTRACE::Redraw ( bool  aIsMoving,
REPORTER aStatusReporter,
REPORTER aWarningReporter 
)
overridevirtual

◆ Reload()

void RENDER_3D_RAYTRACE::Reload ( REPORTER aStatusReporter,
REPORTER aWarningReporter,
bool  aOnlyLoadCopperAndShapes 
)

Definition at line 361 of file raytracing/create_scene.cpp.

References _, CONTAINER_2D_BASE::Add(), CONTAINER_3D_BASE::Add(), addPadsAndVias(), B_Adhes, B_CrtYd, B_Cu, B_Fab, B_Mask, B_Paste, B_SilkS, BOARD_ADAPTER::BiuTo3dUnits(), SHAPE_POLY_SET::BooleanSubtract(), buildBoardBoundingBoxPoly(), BVH_CONTAINER_2D::BuildBVH(), CONTAINER_2D_BASE::Clear(), CONTAINER_3D_BASE::Clear(), Cmts_User, ConvertPolygonToBlocks(), ConvertSRGBToLinear(), createItemsFromContainer(), createObject(), CSGITEM_EMPTY, CSGITEM_FULL, CAMERA::DEFAULT_MAX_ZOOM, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::differentiate_plated_copper, Dwgs_User, Eco1_User, Eco2_User, F_Adhes, F_CrtYd, F_Cu, F_Fab, F_Mask, F_Paste, F_SilkS, SHAPE_POLY_SET::Fracture(), BOARD_ADAPTER::GetAverageHoleDiameter(), BOARD_ADAPTER::GetAverageViaHoleDiameter(), BOARD_ADAPTER::GetBackCopperThickness(), CONTAINER_3D_BASE::GetBBox(), BOARD_ADAPTER::GetBBox(), BOARD_ADAPTER::GetBoard(), BOARD_ADAPTER::GetBoardCenter(), BOARD_ADAPTER::GetBoardPoly(), CAMERA::GetCameraInitPos(), BBOX_3D::GetCenter(), BOARD_ADAPTER::GetColor(), BOARD_ADAPTER::GetFrontCopperThickness(), BOARD_ADAPTER::GetHoleCount(), BVH_CONTAINER_2D::GetIntersectingObjects(), BOARD_ADAPTER::GetLayerBottomZPos(), BOARD_ADAPTER::GetLayerMap(), BOARD_ADAPTER::GetLayerTopZPos(), CONTAINER_2D_BASE::GetList(), CONTAINER_3D_BASE::GetList(), BBOX_3D::GetMaxDimension(), BOARD_ADAPTER::GetPlatedPadsBack(), BOARD_ADAPTER::GetPlatedPadsFront(), GetRunningMicroSecs(), BOARD_ADAPTER::GetSphericalCoord(), BOARD_ADAPTER::GetTH_ODs(), BOARD_ADAPTER::GetViaCount(), BOARD_ADAPTER::GetVisibleLayers(), BOARD_ADAPTER::InitSettings(), OBJECT_2D_STATS::Instance(), OBJECT_3D_STATS::Instance(), IsCopperLayer(), BBOX_3D::IsInitialized(), LAYER_3D_BOARD, LAYER_3D_SOLDERMASK_BOTTOM, LAYER_3D_SOLDERMASK_TOP, load3DModels(), m_accelerator, m_antioutlineBoard2dObjects, BOARD_ADAPTER::m_BgColorTop, RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_BoardBodyColor, RENDER_3D_BASE::m_camera, m_cameraLight, BOARD_ADAPTER::m_Cfg, m_containerWithObjectsToDelete, BOARD_ADAPTER::m_CopperColor, BOARD_ADAPTER::m_ECO1Color, BOARD_ADAPTER::m_ECO2Color, m_lights, m_materials, m_modelMaterialMap, m_objectContainer, m_outlineBoard2dObjects, RENDER_3D_BASE::m_reloadRequested, EDA_3D_VIEWER_SETTINGS::m_Render, BOARD_ADAPTER::m_SilkScreenColorBot, BOARD_ADAPTER::m_SilkScreenColorTop, BOARD_ADAPTER::m_SolderMaskColorBot, BOARD_ADAPTER::m_SolderMaskColorTop, BOARD_ADAPTER::m_SolderPasteColor, BOARD_ADAPTER::m_UserCommentsColor, BOARD_ADAPTER::m_UserDrawingsColor, BBOX_3D::Max(), BBOX_3D::Min(), MIN_DISTANCE_IU, NextFloatDown(), NextFloatUp(), SHAPE_POLY_SET::OutlineCount(), SHAPE_POLY_SET::PM_FAST, RANGE_SCALE_3D, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_backfloor, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_lightColor, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_lightColorBottom, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_lightColorCamera, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_lightColorTop, REPORTER::Report(), OBJECT_2D_STATS::ResetStats(), OBJECT_3D_STATS::ResetStats(), BBOX_3D::Scale(), CAMERA::SetBoardLookAtPos(), LIGHT::SetCastShadows(), TRIANGLE::SetColor(), CYLINDER::SetColor(), LAYER_ITEM::SetColor(), OBJECT_3D::SetMaterial(), CAMERA::SetMaxZoom(), CAMERA::SetMinZoom(), setupMaterials(), SphericalToCartesian(), v1, v2, v3, v4, v5, VECTOR2< T >::x, VECTOR3< T >::x, VECTOR2< T >::y, VECTOR3< T >::y, and VECTOR3< T >::z.

Referenced by EDA_3D_CANVAS::DoRePaint(), and Redraw().

◆ ReloadRequest()

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

Definition at line 70 of file render_3d_base.h.

References RENDER_3D_BASE::m_reloadRequested.

Referenced by EDA_3D_CANVAS::ReloadRequest(), EDA_3D_CANVAS::RenderEngineChanged(), and EDA_3D_CANVAS::RenderRaytracingRequest().

◆ render()

◆ renderAntiAliasPackets()

void RENDER_3D_RAYTRACE::renderAntiAliasPackets ( const SFVEC3F aBgColorY,
const HITINFO_PACKET aHitPck_X0Y0,
const HITINFO_PACKET aHitPck_AA_X1Y1,
const RAY aRayPck,
SFVEC3F aOutHitColor 
)
private

◆ renderBlockTracing()

◆ renderFinalColor()

void RENDER_3D_RAYTRACE::renderFinalColor ( GLubyte *  ptrPBO,
const SFVEC3F rgbColor,
bool  applyColorSpaceConversion 
)
private
Note
This should be used in future when the KiCad support a greater version of glm lib.

Definition at line 444 of file render_3d_raytrace.cpp.

References color, and convertLinearToSRGB().

Referenced by renderBlockTracing().

◆ renderPreview()

◆ renderRayPackets()

void RENDER_3D_RAYTRACE::renderRayPackets ( const SFVEC3F bgColorY,
const RAY aRayPkt,
HITINFO_PACKET aHitPacket,
bool  is_testShadow,
SFVEC3F aOutHitColor 
)
private

Definition at line 479 of file render_3d_raytrace.cpp.

References RAYPACKET_DIM, and shadeHit().

Referenced by renderBlockTracing().

◆ renderTracing()

void RENDER_3D_RAYTRACE::renderTracing ( GLubyte *  ptrPBO,
REPORTER aStatusReporter 
)
private

Definition at line 344 of file render_3d_raytrace.cpp.

References m_blockPositions, and m_isPreview.

Referenced by render().

◆ restartRenderState()

◆ 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 64 of file render_3d_base.cpp.

References RENDER_3D_BASE::m_busyIndicatorFactory.

◆ SetCurWindowSize()

void RENDER_3D_RAYTRACE::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 111 of file render_3d_raytrace.cpp.

References initializeNewWindowSize(), and RENDER_3D_BASE::m_windowSize.

◆ setupMaterials()

◆ shadeHit()

SFVEC3F RENDER_3D_RAYTRACE::shadeHit ( const SFVEC3F aBgColor,
const RAY aRay,
HITINFO aHitInfo,
bool  aIsInsideObject,
unsigned int  aRecursiveLevel,
bool  is_testShadow 
) const
private

Member Data Documentation

◆ m_accelerator

◆ m_antioutlineBoard2dObjects

BVH_CONTAINER_2D* RENDER_3D_RAYTRACE::m_antioutlineBoard2dObjects
private

◆ m_backgroundColorBottom

SFVEC3F RENDER_3D_RAYTRACE::m_backgroundColorBottom
private

Used to see if the windows size changed.

Definition at line 184 of file render_3d_raytrace.h.

Referenced by render(), and renderBlockTracing().

◆ m_backgroundColorTop

SFVEC3F RENDER_3D_RAYTRACE::m_backgroundColorTop
private

Definition at line 183 of file render_3d_raytrace.h.

Referenced by render(), and renderBlockTracing().

◆ m_blockPositions

std::vector< SFVEC2UI > RENDER_3D_RAYTRACE::m_blockPositions
private

Flag if a position was already processed (cleared each new render).

Definition at line 190 of file render_3d_raytrace.h.

Referenced by initializeBlockPositions(), renderBlockTracing(), renderPreview(), renderTracing(), and restartRenderState().

◆ m_blockPositionsFast

std::vector< SFVEC2UI > RENDER_3D_RAYTRACE::m_blockPositionsFast
private

Definition at line 196 of file render_3d_raytrace.h.

Referenced by initializeBlockPositions(), and renderPreview().

◆ m_blockPositionsWasProcessed

std::vector< int > RENDER_3D_RAYTRACE::m_blockPositionsWasProcessed
private

Encode the Morton code positions (on fast preview mode).

Definition at line 193 of file render_3d_raytrace.h.

Referenced by restartRenderState().

◆ m_blockRenderProgressCount

size_t RENDER_3D_RAYTRACE::m_blockRenderProgressCount
private

Save the number of blocks progress of the render.

Definition at line 160 of file render_3d_raytrace.h.

Referenced by RENDER_3D_RAYTRACE(), and restartRenderState().

◆ m_boardAdapter

◆ m_boardMaterial

BOARD_NORMAL RENDER_3D_RAYTRACE::m_boardMaterial
private

Definition at line 142 of file render_3d_raytrace.h.

Referenced by setupMaterials().

◆ m_brushedMetalMaterial

BRUSHED_METAL_NORMAL RENDER_3D_RAYTRACE::m_brushedMetalMaterial
private

Definition at line 148 of file render_3d_raytrace.h.

Referenced by getModelMaterial(), and setupMaterials().

◆ m_busyIndicatorFactory

BUSY_INDICATOR::FACTORY RENDER_3D_BASE::m_busyIndicatorFactory
privateinherited

< Factory that returns a suitable busy indicator for the context.

Definition at line 128 of file render_3d_base.h.

Referenced by RENDER_3D_BASE::CreateBusyIndicator(), and RENDER_3D_BASE::SetBusyIndicatorFactory().

◆ m_camera

CAMERA& RENDER_3D_BASE::m_camera
protectedinherited

Flag if the opengl specific for this render was already initialized.

Definition at line 107 of file render_3d_base.h.

Referenced by RENDER_3D_OPENGL::Redraw(), Redraw(), RENDER_3D_OPENGL::reload(), Reload(), render(), RENDER_3D_OPENGL::render3dArrows(), renderBlockTracing(), and RENDER_3D_OPENGL::renderTransparentModels().

◆ m_cameraLight

DIRECTIONAL_LIGHT* RENDER_3D_RAYTRACE::m_cameraLight
private

Definition at line 166 of file render_3d_raytrace.h.

Referenced by Redraw(), Reload(), render(), and RENDER_3D_RAYTRACE().

◆ m_canvas

EDA_3D_CANVAS* RENDER_3D_BASE::m_canvas
protectedinherited

Settings reference in use for this render.

Definition at line 102 of file render_3d_base.h.

Referenced by RENDER_3D_OPENGL::Load3dModelsIfNeeded(), and RENDER_3D_BASE::RENDER_3D_BASE().

◆ m_containerWithObjectsToDelete

CONTAINER_2D RENDER_3D_RAYTRACE::m_containerWithObjectsToDelete
private

Definition at line 176 of file render_3d_raytrace.h.

Referenced by createItemsFromContainer(), insertHole(), and Reload().

◆ m_converted2dRoundSegmentCount

unsigned int RENDER_3D_RAYTRACE::m_converted2dRoundSegmentCount
private

Definition at line 214 of file render_3d_raytrace.h.

Referenced by createObject(), and RENDER_3D_RAYTRACE().

◆ m_convertedDummyBlockCount

unsigned int RENDER_3D_RAYTRACE::m_convertedDummyBlockCount
private

Definition at line 213 of file render_3d_raytrace.h.

Referenced by createObject(), and RENDER_3D_RAYTRACE().

◆ m_Copper

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE::m_Copper

Definition at line 137 of file render_3d_raytrace.h.

◆ m_copperMaterial

COPPER_NORMAL RENDER_3D_RAYTRACE::m_copperMaterial
private

Definition at line 143 of file render_3d_raytrace.h.

Referenced by setupMaterials().

◆ m_EpoxyBoard

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE::m_EpoxyBoard

Definition at line 136 of file render_3d_raytrace.h.

◆ m_fastPreviewModeSize

SFVEC2UI RENDER_3D_RAYTRACE::m_fastPreviewModeSize
private

Definition at line 199 of file render_3d_raytrace.h.

Referenced by initializeBlockPositions().

◆ m_firstHitinfo

HITINFO_PACKET* RENDER_3D_RAYTRACE::m_firstHitinfo
private

Definition at line 201 of file render_3d_raytrace.h.

Referenced by RENDER_3D_RAYTRACE().

◆ m_Floor

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE::m_Floor

Definition at line 139 of file render_3d_raytrace.h.

◆ m_is_opengl_initialized

bool RENDER_3D_BASE::m_is_opengl_initialized
protectedinherited
Todo:
This must be reviewed in order to flag change types.

Definition at line 110 of file render_3d_base.h.

Referenced by RENDER_3D_OPENGL::initializeOpenGL(), initializeOpenGL(), RENDER_3D_OPENGL::Redraw(), Redraw(), and RENDER_3D_BASE::RENDER_3D_BASE().

◆ m_isPreview

bool RENDER_3D_RAYTRACE::m_isPreview
private

Definition at line 151 of file render_3d_raytrace.h.

Referenced by RENDER_3D_RAYTRACE(), renderPreview(), renderTracing(), and shadeHit().

◆ m_lights

std::list<LIGHT*> RENDER_3D_RAYTRACE::m_lights
private

Definition at line 164 of file render_3d_raytrace.h.

Referenced by Reload(), and shadeHit().

◆ 

struct { ... } RENDER_3D_RAYTRACE::m_materials

Referenced by insertHole(), Reload(), and setupMaterials().

◆ m_modelMaterialMap

MAP_MODEL_MATERIALS RENDER_3D_RAYTRACE::m_modelMaterialMap
private

Stores materials of the 3D models.

Definition at line 210 of file render_3d_raytrace.h.

Referenced by getModelMaterial(), and Reload().

◆ m_NonPlatedCopper

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE::m_NonPlatedCopper

Definition at line 138 of file render_3d_raytrace.h.

◆ m_objectContainer

CONTAINER_3D RENDER_3D_RAYTRACE::m_objectContainer
private

Store the list of created objects special for RT that will be clear in the end.

Definition at line 173 of file render_3d_raytrace.h.

Referenced by createItemsFromContainer(), insertHole(), and Reload().

◆ m_oldWindowsSize

wxSize RENDER_3D_RAYTRACE::m_oldWindowsSize
private

Encode Morton code positions.

Definition at line 187 of file render_3d_raytrace.h.

Referenced by Redraw(), and RENDER_3D_RAYTRACE().

◆ m_openglSupportsVertexBufferObjects

bool RENDER_3D_RAYTRACE::m_openglSupportsVertexBufferObjects
private

Definition at line 168 of file render_3d_raytrace.h.

Referenced by deletePbo(), initPbo(), and RENDER_3D_RAYTRACE().

◆ m_outlineBoard2dObjects

CONTAINER_2D* RENDER_3D_RAYTRACE::m_outlineBoard2dObjects
private

Definition at line 178 of file render_3d_raytrace.h.

Referenced by Reload(), RENDER_3D_RAYTRACE(), and ~RENDER_3D_RAYTRACE().

◆ m_Paste

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE::m_Paste

Definition at line 133 of file render_3d_raytrace.h.

◆ m_pboDataSize

GLuint RENDER_3D_RAYTRACE::m_pboDataSize
private

Definition at line 171 of file render_3d_raytrace.h.

Referenced by initPbo(), and RENDER_3D_RAYTRACE().

◆ m_pboId

GLuint RENDER_3D_RAYTRACE::m_pboId
private

Definition at line 170 of file render_3d_raytrace.h.

Referenced by deletePbo(), initPbo(), Redraw(), and RENDER_3D_RAYTRACE().

◆ m_plasticMaterial

PLASTIC_NORMAL RENDER_3D_RAYTRACE::m_plasticMaterial
private

Definition at line 146 of file render_3d_raytrace.h.

Referenced by getModelMaterial(), and setupMaterials().

◆ m_platedCopperMaterial

PLATED_COPPER_NORMAL RENDER_3D_RAYTRACE::m_platedCopperMaterial
private

Definition at line 144 of file render_3d_raytrace.h.

Referenced by setupMaterials().

◆ m_postShaderSsao

POST_SHADER_SSAO RENDER_3D_RAYTRACE::m_postShaderSsao
private

◆ m_realBufferSize

SFVEC2UI RENDER_3D_RAYTRACE::m_realBufferSize
private

◆ m_reloadRequested

bool RENDER_3D_BASE::m_reloadRequested
protectedinherited

◆ m_renderStartTime

unsigned long int RENDER_3D_RAYTRACE::m_renderStartTime
private

Time that the render starts.

Definition at line 157 of file render_3d_raytrace.h.

Referenced by render(), RENDER_3D_RAYTRACE(), and restartRenderState().

◆ m_renderState

RT_RENDER_STATE RENDER_3D_RAYTRACE::m_renderState
private

State used on quality render.

Definition at line 154 of file render_3d_raytrace.h.

Referenced by postProcessShading(), Redraw(), render(), RENDER_3D_RAYTRACE(), and restartRenderState().

◆ m_shaderBuffer

SFVEC3F* RENDER_3D_RAYTRACE::m_shaderBuffer
private

◆ m_shinyPlasticMaterial

PLASTIC_SHINE_NORMAL RENDER_3D_RAYTRACE::m_shinyPlasticMaterial
private

Definition at line 147 of file render_3d_raytrace.h.

Referenced by getModelMaterial(), and setupMaterials().

◆ m_SilkS

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE::m_SilkS

Definition at line 134 of file render_3d_raytrace.h.

◆ m_silkScreenMaterial

SILK_SCREEN_NORMAL RENDER_3D_RAYTRACE::m_silkScreenMaterial
private

Definition at line 149 of file render_3d_raytrace.h.

Referenced by setupMaterials().

◆ m_SolderMask

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE::m_SolderMask

Definition at line 135 of file render_3d_raytrace.h.

◆ m_solderMaskMaterial

SOLDER_MASK_NORMAL RENDER_3D_RAYTRACE::m_solderMaskMaterial
private

Definition at line 145 of file render_3d_raytrace.h.

Referenced by setupMaterials().

◆ m_windowSize

◆ m_xoffset

unsigned int RENDER_3D_RAYTRACE::m_xoffset
private

◆ m_yoffset

unsigned int RENDER_3D_RAYTRACE::m_yoffset
private

◆ MIN_DISTANCE_IU

constexpr float RENDER_3D_RAYTRACE::MIN_DISTANCE_IU = 4 * PCB_IU_PER_MM
staticconstexpr

Definition at line 60 of file render_3d_raytrace.h.

Referenced by Reload().


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