KiCad PCB EDA Suite
Loading...
Searching...
No Matches
RENDER_3D_RAYTRACE_BASE Class Referenceabstract

#include <render_3d_raytrace_base.h>

Inheritance diagram for RENDER_3D_RAYTRACE_BASE:
RENDER_3D_BASE RENDER_3D_RAYTRACE_GL RENDER_3D_RAYTRACE_RAM

Public Member Functions

 RENDER_3D_RAYTRACE_BASE (BOARD_ADAPTER &aAdapter, CAMERA &aCamera)
 
 ~RENDER_3D_RAYTRACE_BASE ()
 
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 Reload (REPORTER *aStatusReporter, REPORTER *aWarningReporter, bool aOnlyLoadCopperAndShapes)
 
BOARD_ITEMIntersectBoardItem (const RAY &aRay)
 
virtual void SetCurWindowSize (const wxSize &aSize)=0
 Before each render, the canvas will tell the render what is the size of its windows, so render can take actions if it changed.
 
virtual bool Redraw (bool aIsMoving, REPORTER *aStatusReporter=nullptr, REPORTER *aWarningReporter=nullptr)=0
 Redraw the view.
 
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.
 

Static Public Attributes

static constexpr float MIN_DISTANCE_IU = 4 * PCB_IU_PER_MM
 

Protected Member Functions

virtual void initPbo ()=0
 
virtual void deletePbo ()=0
 
void createItemsFromContainer (const BVH_CONTAINER_2D *aContainer2d, PCB_LAYER_ID aLayer_id, const MATERIAL *aMaterialLayer, const SFVEC3F &aLayerColor, float aLayerZOffset)
 
void restartRenderState ()
 
void renderTracing (uint8_t *ptrPBO, REPORTER *aStatusReporter)
 
void postProcessShading (uint8_t *ptrPBO, REPORTER *aStatusReporter)
 
void postProcessBlurFinish (uint8_t *ptrPBO, REPORTER *aStatusReporter)
 
void renderBlockTracing (uint8_t *ptrPBO, signed int iBlock)
 
void renderFinalColor (uint8_t *ptrPBO, const SFVEC4F &rgbColor, bool applyColorSpaceConversion)
 
void renderRayPackets (const SFVEC4F *bgColorY, const RAY *aRayPkt, HITINFO_PACKET *aHitPacket, bool is_testShadow, SFVEC4F *aOutHitColor)
 
void renderAntiAliasPackets (const SFVEC4F *aBgColorY, const HITINFO_PACKET *aHitPck_X0Y0, const HITINFO_PACKET *aHitPck_AA_X1Y1, const RAY *aRayPck, SFVEC4F *aOutHitColor)
 
void setupMaterials ()
 
SFVEC4F shadeHit (const SFVEC4F &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.
 
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 (uint8_t *ptrPBO, REPORTER *aStatusReporter)
 
void renderPreview (uint8_t *ptrPBO)
 
std::unique_ptr< BUSY_INDICATORCreateBusyIndicator () const
 Return a created busy indicator, if a factory has been set, else a null pointer.
 

Static Protected Member Functions

static SFVEC4F premultiplyAlpha (const SFVEC4F &aInput)
 

Protected 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_is_canvas_initialized
 
bool m_isPreview
 
RT_RENDER_STATE m_renderState
 State used on quality render.
 
int64_t m_renderStartTime
 Time that the render starts.
 
size_t m_blockRenderProgressCount
 Save the number of blocks progress of the render.
 
POST_SHADER_SSAO m_postShaderSsao
 
std::list< LIGHT * > m_lights
 
DIRECTIONAL_LIGHTm_cameraLight
 
CONTAINER_3D m_objectContainer
 Store the list of created objects special for RT that will be clear in the end.
 
CONTAINER_2D m_containerWithObjectsToDelete
 
CONTAINER_2Dm_outlineBoard2dObjects
 
BVH_CONTAINER_2Dm_antioutlineBoard2dObjects
 
ACCELERATOR_3Dm_accelerator
 
SFVEC4F m_backgroundColorTop
 
SFVEC4F m_backgroundColorBottom
 Used to see if the windows size changed.
 
wxSize m_oldWindowsSize
 Encode Morton code positions.
 
std::vector< SFVEC2UIm_blockPositions
 Flag if a position was already processed (cleared each new render).
 
std::vector< int > m_blockPositionsWasProcessed
 Encode the Morton code positions (on fast preview mode).
 
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.
 
unsigned int m_convertedDummyBlockCount
 
unsigned int m_converted2dRoundSegmentCount
 
BOARD_ADAPTERm_boardAdapter
 
CAMERAm_camera
 Flag if the canvas specific for this render was already initialized.
 
bool m_canvasInitialized
 
bool m_reloadRequested
 The window size that this camera is working.
 
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.
 

Private Attributes

BUSY_INDICATOR::FACTORY m_busyIndicatorFactory
 < Factory that returns a suitable busy indicator for the context.
 

Detailed Description

Definition at line 54 of file render_3d_raytrace_base.h.

Constructor & Destructor Documentation

◆ RENDER_3D_RAYTRACE_BASE()

◆ ~RENDER_3D_RAYTRACE_BASE()

RENDER_3D_RAYTRACE_BASE::~RENDER_3D_RAYTRACE_BASE ( )

Member Function Documentation

◆ addModels()

◆ addPadsAndVias()

void RENDER_3D_RAYTRACE_BASE::addPadsAndVias ( )
protected

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

Settings reference in use for this render.

Definition at line 69 of file render_3d_base.cpp.

References RENDER_3D_BASE::m_busyIndicatorFactory.

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

◆ createItemsFromContainer()

◆ createObject()

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

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()

virtual void RENDER_3D_RAYTRACE_BASE::deletePbo ( )
protectedpure virtual

◆ getModelMaterial()

◆ GetWaitForEditingTimeOut()

int RENDER_3D_RAYTRACE_BASE::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 88 of file render_3d_raytrace_base.cpp.

◆ initializeBlockPositions()

◆ initPbo()

virtual void RENDER_3D_RAYTRACE_BASE::initPbo ( )
protectedpure virtual

◆ insertHole() [1/2]

◆ insertHole() [2/2]

◆ IntersectBoardItem()

BOARD_ITEM * RENDER_3D_RAYTRACE_BASE::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(), EDA_3D_CANVAS::IsReloadRequestPending(), and EDA_3D_CANVAS::OnMouseMove().

◆ load3DModels()

◆ postProcessBlurFinish()

void RENDER_3D_RAYTRACE_BASE::postProcessBlurFinish ( uint8_t *  ptrPBO,
REPORTER aStatusReporter 
)
protected

◆ postProcessShading()

◆ premultiplyAlpha()

SFVEC4F RENDER_3D_RAYTRACE_BASE::premultiplyAlpha ( const SFVEC4F aInput)
staticprotected

◆ Redraw()

virtual bool RENDER_3D_BASE::Redraw ( bool  aIsMoving,
REPORTER aStatusReporter = nullptr,
REPORTER aWarningReporter = nullptr 
)
pure virtualinherited

Redraw the view.

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

Implemented in RENDER_3D_OPENGL, RENDER_3D_RAYTRACE_GL, and RENDER_3D_RAYTRACE_RAM.

Referenced by EDA_3D_CANVAS::DoRePaint().

◆ Reload()

void RENDER_3D_RAYTRACE_BASE::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(), RENDER_3D_RAYTRACE_GL::Redraw(), and RENDER_3D_RAYTRACE_RAM::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_BASE::renderAntiAliasPackets ( const SFVEC4F aBgColorY,
const HITINFO_PACKET aHitPck_X0Y0,
const HITINFO_PACKET aHitPck_AA_X1Y1,
const RAY aRayPck,
SFVEC4F aOutHitColor 
)
protected

◆ renderBlockTracing()

◆ renderFinalColor()

void RENDER_3D_RAYTRACE_BASE::renderFinalColor ( uint8_t *  ptrPBO,
const SFVEC4F rgbColor,
bool  applyColorSpaceConversion 
)
protected
Note
This should be used in future when the KiCad support a greater version of glm lib.

Definition at line 286 of file render_3d_raytrace_base.cpp.

References color, and convertLinearToSRGB().

Referenced by renderBlockTracing().

◆ renderPreview()

◆ renderRayPackets()

void RENDER_3D_RAYTRACE_BASE::renderRayPackets ( const SFVEC4F bgColorY,
const RAY aRayPkt,
HITINFO_PACKET aHitPacket,
bool  is_testShadow,
SFVEC4F aOutHitColor 
)
protected

Definition at line 321 of file render_3d_raytrace_base.cpp.

References RAYPACKET_DIM, and shadeHit().

Referenced by renderBlockTracing().

◆ renderTracing()

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

References RENDER_3D_BASE::m_busyIndicatorFactory.

◆ SetCurWindowSize()

virtual void RENDER_3D_BASE::SetCurWindowSize ( const wxSize &  aSize)
pure virtualinherited

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

Implemented in RENDER_3D_OPENGL, RENDER_3D_RAYTRACE_GL, and RENDER_3D_RAYTRACE_RAM.

Referenced by EDA_3D_CANVAS::DoRePaint().

◆ setupMaterials()

◆ shadeHit()

SFVEC4F RENDER_3D_RAYTRACE_BASE::shadeHit ( const SFVEC4F aBgColor,
const RAY aRay,
HITINFO aHitInfo,
bool  aIsInsideObject,
unsigned int  aRecursiveLevel,
bool  is_testShadow 
) const
protected

Member Data Documentation

◆ m_accelerator

◆ m_antioutlineBoard2dObjects

BVH_CONTAINER_2D* RENDER_3D_RAYTRACE_BASE::m_antioutlineBoard2dObjects
protected

◆ m_backgroundColorBottom

SFVEC4F RENDER_3D_RAYTRACE_BASE::m_backgroundColorBottom
protected

Used to see if the windows size changed.

Definition at line 179 of file render_3d_raytrace_base.h.

Referenced by render(), and renderBlockTracing().

◆ m_backgroundColorTop

SFVEC4F RENDER_3D_RAYTRACE_BASE::m_backgroundColorTop
protected

Definition at line 178 of file render_3d_raytrace_base.h.

Referenced by render(), and renderBlockTracing().

◆ m_blockPositions

std::vector< SFVEC2UI > RENDER_3D_RAYTRACE_BASE::m_blockPositions
protected

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

Definition at line 185 of file render_3d_raytrace_base.h.

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

◆ m_blockPositionsFast

std::vector< SFVEC2UI > RENDER_3D_RAYTRACE_BASE::m_blockPositionsFast
protected

Definition at line 191 of file render_3d_raytrace_base.h.

Referenced by initializeBlockPositions(), and renderPreview().

◆ m_blockPositionsWasProcessed

std::vector< int > RENDER_3D_RAYTRACE_BASE::m_blockPositionsWasProcessed
protected

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

Definition at line 188 of file render_3d_raytrace_base.h.

Referenced by renderTracing(), and restartRenderState().

◆ m_blockRenderProgressCount

size_t RENDER_3D_RAYTRACE_BASE::m_blockRenderProgressCount
protected

Save the number of blocks progress of the render.

Definition at line 157 of file render_3d_raytrace_base.h.

Referenced by RENDER_3D_RAYTRACE_BASE(), renderTracing(), and restartRenderState().

◆ m_boardAdapter

◆ m_boardMaterial

BOARD_NORMAL RENDER_3D_RAYTRACE_BASE::m_boardMaterial
protected

Definition at line 138 of file render_3d_raytrace_base.h.

Referenced by setupMaterials().

◆ m_brushedMetalMaterial

BRUSHED_METAL_NORMAL RENDER_3D_RAYTRACE_BASE::m_brushedMetalMaterial
protected

Definition at line 144 of file render_3d_raytrace_base.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 125 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

◆ m_cameraLight

DIRECTIONAL_LIGHT* RENDER_3D_RAYTRACE_BASE::m_cameraLight
protected

◆ m_canvasInitialized

bool RENDER_3D_BASE::m_canvasInitialized
protectedinherited

◆ m_containerWithObjectsToDelete

CONTAINER_2D RENDER_3D_RAYTRACE_BASE::m_containerWithObjectsToDelete
protected

Definition at line 171 of file render_3d_raytrace_base.h.

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

◆ m_converted2dRoundSegmentCount

unsigned int RENDER_3D_RAYTRACE_BASE::m_converted2dRoundSegmentCount
protected

Definition at line 209 of file render_3d_raytrace_base.h.

Referenced by createObject(), and RENDER_3D_RAYTRACE_BASE().

◆ m_convertedDummyBlockCount

unsigned int RENDER_3D_RAYTRACE_BASE::m_convertedDummyBlockCount
protected

Definition at line 208 of file render_3d_raytrace_base.h.

Referenced by createObject(), and RENDER_3D_RAYTRACE_BASE().

◆ m_Copper

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_Copper

Definition at line 133 of file render_3d_raytrace_base.h.

◆ m_copperMaterial

COPPER_NORMAL RENDER_3D_RAYTRACE_BASE::m_copperMaterial
protected

Definition at line 139 of file render_3d_raytrace_base.h.

Referenced by setupMaterials().

◆ m_EpoxyBoard

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_EpoxyBoard

Definition at line 132 of file render_3d_raytrace_base.h.

◆ m_fastPreviewModeSize

SFVEC2UI RENDER_3D_RAYTRACE_BASE::m_fastPreviewModeSize
protected

Definition at line 194 of file render_3d_raytrace_base.h.

Referenced by initializeBlockPositions().

◆ m_firstHitinfo

HITINFO_PACKET* RENDER_3D_RAYTRACE_BASE::m_firstHitinfo
protected

Definition at line 196 of file render_3d_raytrace_base.h.

Referenced by RENDER_3D_RAYTRACE_BASE().

◆ m_Floor

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_Floor

Definition at line 135 of file render_3d_raytrace_base.h.

◆ m_is_canvas_initialized

bool RENDER_3D_RAYTRACE_BASE::m_is_canvas_initialized
protected

Definition at line 147 of file render_3d_raytrace_base.h.

Referenced by RENDER_3D_RAYTRACE_BASE().

◆ m_isPreview

bool RENDER_3D_RAYTRACE_BASE::m_isPreview
protected

◆ m_lights

std::list<LIGHT*> RENDER_3D_RAYTRACE_BASE::m_lights
protected

Definition at line 161 of file render_3d_raytrace_base.h.

Referenced by Reload(), and shadeHit().

◆ 

struct { ... } RENDER_3D_RAYTRACE_BASE::m_materials

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

◆ m_modelMaterialMap

MAP_MODEL_MATERIALS RENDER_3D_RAYTRACE_BASE::m_modelMaterialMap
protected

Stores materials of the 3D models.

Definition at line 205 of file render_3d_raytrace_base.h.

Referenced by getModelMaterial(), and Reload().

◆ m_NonPlatedCopper

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_NonPlatedCopper

Definition at line 134 of file render_3d_raytrace_base.h.

◆ m_objectContainer

CONTAINER_3D RENDER_3D_RAYTRACE_BASE::m_objectContainer
protected

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

Definition at line 168 of file render_3d_raytrace_base.h.

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

◆ m_oldWindowsSize

wxSize RENDER_3D_RAYTRACE_BASE::m_oldWindowsSize
protected

Encode Morton code positions.

Definition at line 182 of file render_3d_raytrace_base.h.

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

◆ m_outlineBoard2dObjects

CONTAINER_2D* RENDER_3D_RAYTRACE_BASE::m_outlineBoard2dObjects
protected

◆ m_Paste

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_Paste

Definition at line 129 of file render_3d_raytrace_base.h.

◆ m_plasticMaterial

PLASTIC_NORMAL RENDER_3D_RAYTRACE_BASE::m_plasticMaterial
protected

Definition at line 142 of file render_3d_raytrace_base.h.

Referenced by getModelMaterial(), and setupMaterials().

◆ m_platedCopperMaterial

PLATED_COPPER_NORMAL RENDER_3D_RAYTRACE_BASE::m_platedCopperMaterial
protected

Definition at line 140 of file render_3d_raytrace_base.h.

Referenced by setupMaterials().

◆ m_postShaderSsao

POST_SHADER_SSAO RENDER_3D_RAYTRACE_BASE::m_postShaderSsao
protected

◆ m_realBufferSize

◆ m_reloadRequested

bool RENDER_3D_BASE::m_reloadRequested
protectedinherited

◆ m_renderStartTime

int64_t RENDER_3D_RAYTRACE_BASE::m_renderStartTime
protected

Time that the render starts.

Definition at line 154 of file render_3d_raytrace_base.h.

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

◆ m_renderState

RT_RENDER_STATE RENDER_3D_RAYTRACE_BASE::m_renderState
protected

◆ m_shaderBuffer

SFVEC3F* RENDER_3D_RAYTRACE_BASE::m_shaderBuffer
protected

◆ m_shinyPlasticMaterial

PLASTIC_SHINE_NORMAL RENDER_3D_RAYTRACE_BASE::m_shinyPlasticMaterial
protected

Definition at line 143 of file render_3d_raytrace_base.h.

Referenced by getModelMaterial(), and setupMaterials().

◆ m_SilkS

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_SilkS

Definition at line 130 of file render_3d_raytrace_base.h.

◆ m_silkScreenMaterial

SILK_SCREEN_NORMAL RENDER_3D_RAYTRACE_BASE::m_silkScreenMaterial
protected

Definition at line 145 of file render_3d_raytrace_base.h.

Referenced by setupMaterials().

◆ m_SolderMask

BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_SolderMask

Definition at line 131 of file render_3d_raytrace_base.h.

◆ m_solderMaskMaterial

SOLDER_MASK_NORMAL RENDER_3D_RAYTRACE_BASE::m_solderMaskMaterial
protected

Definition at line 141 of file render_3d_raytrace_base.h.

Referenced by setupMaterials().

◆ m_windowSize

◆ m_xoffset

unsigned int RENDER_3D_RAYTRACE_BASE::m_xoffset
protected

◆ m_yoffset

unsigned int RENDER_3D_RAYTRACE_BASE::m_yoffset
protected

◆ MIN_DISTANCE_IU

constexpr float RENDER_3D_RAYTRACE_BASE::MIN_DISTANCE_IU = 4 * PCB_IU_PER_MM
staticconstexpr

Definition at line 59 of file render_3d_raytrace_base.h.

Referenced by Reload().


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