KiCad PCB EDA Suite
cinfo3d_visu.h
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2015-2016 Mario Luzeiro <mrluzeiro@ua.pt>
5  * Copyright (C) 1992-2016 KiCad Developers, see AUTHORS.txt for contributors.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, you may find one here:
19  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20  * or you may search the http://www.gnu.org website for the version 2 license,
21  * or you may write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23  */
24 
30 #ifndef CINFO3D_VISU_H
31 #define CINFO3D_VISU_H
32 
33 #include <vector>
34 #include "../3d_rendering/3d_render_raytracing/accelerators/ccontainer2d.h"
35 #include "../3d_rendering/3d_render_raytracing/accelerators/ccontainer.h"
36 #include "../3d_rendering/3d_render_raytracing/shapes3D/cbbox.h"
37 #include "../3d_rendering/ccamera.h"
38 #include "../3d_rendering/ctrack_ball.h"
39 #include "../3d_enums.h"
40 #include "../3d_cache/3d_cache.h"
41 
43 #include <class_pad.h>
44 #include <class_track.h>
45 #include <wx/gdicmn.h>
46 #include <wxBasePcbFrame.h>
47 #include <class_pcb_text.h>
48 #include <class_drawsegment.h>
49 #include <class_dimension.h>
50 #include <class_zone.h>
51 #include <class_module.h>
52 #include <reporter.h>
53 
55 typedef std::map< PCB_LAYER_ID, CBVHCONTAINER2D *> MAP_CONTAINER_2D;
56 
58 typedef std::map< PCB_LAYER_ID, SHAPE_POLY_SET *> MAP_POLY;
59 
63 #define RANGE_SCALE_3D 8.0f
64 
65 
71 {
72  public:
73 
74  CINFO3D_VISU();
75 
76  ~CINFO3D_VISU();
77 
82  void Set3DCacheManager( S3D_CACHE *aCachePointer ) { m_3d_model_manager = aCachePointer; }
83 
89 
95  bool GetFlag( DISPLAY3D_FLG aFlag ) const ;
96 
102  void SetFlag( DISPLAY3D_FLG aFlag, bool aState );
103 
109  bool Is3DLayerEnabled( PCB_LAYER_ID aLayer ) const;
110 
116  bool ShouldModuleBeDisplayed( MODULE_ATTR_T aModuleAttributs ) const;
117 
122  void SetBoard( BOARD *aBoard ) { m_board = aBoard; }
123 
128  const BOARD *GetBoard() const { return m_board; }
129 
135  void InitSettings( REPORTER *aStatusTextReporter );
136 
141  double BiuTo3Dunits() const { return m_biuTo3Dunits; }
142 
147  const CBBOX &GetBBox3DU() const { return m_boardBoudingBox; }
148 
153  float GetEpoxyThickness3DU() const { return m_epoxyThickness3DU; }
154 
160 
165  float GetCopperThickness3DU() const { return m_copperThickness3DU; }
166 
171  int GetCopperThicknessBIU() const;
172 
177  wxSize GetBoardSizeBIU() const { return m_boardSize; }
178 
183  wxPoint GetBoardPosBIU() const { return m_boardPos; }
184 
189  const SFVEC3F &GetBoardCenter3DU() const { return m_boardCenter; }
190 
198  float GetModulesZcoord3DIU( bool aIsFlipped ) const ;
199 
204  void CameraSetType( CAMERA_TYPE aCameraType );
205 
210  CCAMERA &CameraGet() const { return m_currentCamera; }
211 
216  GRID3D_TYPE GridGet() const { return m_3D_grid_type; }
217 
222  void GridSet( GRID3D_TYPE aGridType ) { m_3D_grid_type = aGridType; }
223 
228  void RenderEngineSet( RENDER_ENGINE aRenderEngine ) { m_render_engine = aRenderEngine; }
229 
235 
240  void MaterialModeSet( MATERIAL_MODE aMaterialMode ) { m_material_mode = aMaterialMode; }
241 
247 
252  const SHAPE_POLY_SET &GetBoardPoly() const { return m_board_poly; }
253 
259  SFVEC3F GetLayerColor( PCB_LAYER_ID aLayerId ) const;
260 
266  SFVEC3F GetItemColor( int aItemId ) const;
267 
273  SFVEC3F GetColor( COLOR4D aColor ) const;
274 
280  float GetLayerTopZpos3DU( PCB_LAYER_ID aLayerId ) const { return m_layerZcoordTop[aLayerId]; }
281 
287  float GetLayerBottomZpos3DU( PCB_LAYER_ID aLayerId ) const { return m_layerZcoordBottom[aLayerId]; }
288 
294 
300 
306 
312 
319 
325 
331 
338 
345 
351 
357 
362  unsigned int GetStats_Nr_Vias() const { return m_stats_nr_vias; }
363 
368  unsigned int GetStats_Nr_Holes() const { return m_stats_nr_holes; }
369 
375 
381 
387 
393  unsigned int GetNrSegmentsCircle( float aDiameter3DU ) const;
394 
400  unsigned int GetNrSegmentsCircle( int aDiameterBUI ) const;
401 
408  double GetCircleCorrectionFactor( int aNrSides ) const;
409 
414  const MAP_POLY &GetPolyMap() const { return m_layers_poly; }
415 
417 
419 
420  private:
421  void createBoardPolygon();
422  void createLayers( REPORTER *aStatusTextReporter );
423  void destroyLayers();
424 
425  // Helper functions to create the board
426  COBJECT2D *createNewTrack( const TRACK* aTrack , int aClearanceValue ) const;
427 
428  void createNewPad( const D_PAD* aPad,
429  CGENERICCONTAINER2D *aDstContainer,
430  const wxSize &aInflateValue ) const;
431 
432  void createNewPadWithClearance( const D_PAD *aPad,
433  CGENERICCONTAINER2D *aDstContainer,
434  int aClearanceValue ) const;
435 
436  COBJECT2D *createNewPadDrill( const D_PAD* aPad, int aInflateValue );
437 
438  void AddPadsShapesWithClearanceToContainer( const MODULE *aModule,
439  CGENERICCONTAINER2D *aDstContainer,
440  PCB_LAYER_ID aLayerId,
441  int aInflateValue,
442  bool aSkipNPTHPadsWihNoCopper );
443 
445  CGENERICCONTAINER2D *aDstContainer,
446  PCB_LAYER_ID aLayerId,
447  int aInflateValue );
448 
449  void AddShapeWithClearanceToContainer( const TEXTE_PCB *aTextPCB,
450  CGENERICCONTAINER2D *aDstContainer,
451  PCB_LAYER_ID aLayerId,
452  int aClearanceValue );
453 
454  void AddShapeWithClearanceToContainer( const DRAWSEGMENT *aDrawSegment,
455  CGENERICCONTAINER2D *aDstContainer,
456  PCB_LAYER_ID aLayerId,
457  int aClearanceValue );
458 
459  void AddShapeWithClearanceToContainer( const DIMENSION *aDimension,
460  CGENERICCONTAINER2D *aDstContainer,
461  PCB_LAYER_ID aLayerId,
462  int aClearanceValue );
463 
464  void AddSolidAreasShapesToContainer( const ZONE_CONTAINER *aZoneContainer,
465  CGENERICCONTAINER2D *aDstContainer,
466  PCB_LAYER_ID aLayerId );
467 
468  void TransformArcToSegments( const wxPoint &aCentre,
469  const wxPoint &aStart,
470  double aArcAngle,
471  int aCircleToSegmentsCount,
472  int aWidth,
473  CGENERICCONTAINER2D *aDstContainer,
474  const BOARD_ITEM &aBoardItem );
475 
476  void buildPadShapeThickOutlineAsSegments( const D_PAD *aPad,
477  CGENERICCONTAINER2D *aDstContainer,
478  int aWidth );
479 
480  // Helper functions to create poly contours
481  void buildPadShapeThickOutlineAsPolygon( const D_PAD *aPad,
482  SHAPE_POLY_SET &aCornerBuffer,
483  int aWidth) const;
484 
486  PCB_LAYER_ID aLayer,
487  SHAPE_POLY_SET &aCornerBuffer,
488  int aInflateValue,
489  bool aSkipNPTHPadsWihNoCopper) const;
490 
491  void transformGraphicModuleEdgeToPolygonSet( const MODULE *aModule,
492  PCB_LAYER_ID aLayer,
493  SHAPE_POLY_SET& aCornerBuffer ) const;
494 
495  void buildPadShapePolygon( const D_PAD *aPad,
496  SHAPE_POLY_SET &aCornerBuffer,
497  wxSize aInflateValue,
498  int aSegmentsPerCircle,
499  double aCorrectionFactor ) const;
500 
501 
502  public:
510 
511 
512  private:
513 
516 
519 
520 
521  // Render options
522 
524  std::vector< bool > m_drawFlags;
525 
528 
531 
534 
535 
536  // Pcb board position
537 
540 
542  wxSize m_boardSize;
543 
546 
547 
548  // Pcb board bounding boxes
549 
552 
555 
558 
561 
564 
567 
570 
573 
576 
579 
582 
583 
584  // 2D element containers
585 
588 
591 
595 
599 
603 
607 
608 
609  // Layers information
610 
612  unsigned int m_copperLayersCount;
613 
617 
620 
623 
626 
629 
632 
633 
634  // Cameras
635 
639 
642 
645 
646 
647  // Statistics
648 
650  unsigned int m_stats_nr_tracks;
651 
654 
656  unsigned int m_stats_nr_vias;
657 
660 
662  unsigned int m_stats_nr_holes;
663 
666 
673  static const wxChar *m_logTrace;
674 
675 };
676 
679 
680 #endif // CINFO3D_VISU_H
std::map< PCB_LAYER_ID, CBVHCONTAINER2D * > MAP_CONTAINER_2D
A type that stores a container of 2d objects for each layer id.
Definition: cinfo3d_visu.h:55
void AddShapeWithClearanceToContainer(const TEXTE_PCB *aTextPCB, CGENERICCONTAINER2D *aDstContainer, PCB_LAYER_ID aLayerId, int aClearanceValue)
GRID3D_TYPE GridGet() const
GridGet - get the current grid.
Definition: cinfo3d_visu.h:216
Class ZONE_CONTAINER handles a list of polygons defining a copper zone.
Definition: class_zone.h:60
std::map< PCB_LAYER_ID, SHAPE_POLY_SET * > MAP_POLY
A type that stores polysets for each layer id.
Definition: cinfo3d_visu.h:58
COBJECT2D * createNewTrack(const TRACK *aTrack, int aClearanceValue) const
SFVEC3F GetLayerColor(PCB_LAYER_ID aLayerId) const
GetLayerColor - get the technical color of a layer.
S3D_CACHE * Get3DCacheManager() const
Get3DCacheManager - Return the 3d cache manager pointer.
Definition: cinfo3d_visu.h:88
void CameraSetType(CAMERA_TYPE aCameraType)
CameraSetType - Set the camera type to use.
TEXTE_PCB class definition.
float GetCopperThickness3DU() const
GetCopperThickness3DU - Get the current copper layer thickness.
Definition: cinfo3d_visu.h:165
CBVHCONTAINER2D m_through_holes_vias_outer
It contains the list of throughHoles vias of the board, the radius of the hole is inflated with the c...
Definition: cinfo3d_visu.h:602
MATERIAL_MODE MaterialModeGet() const
MaterialModeGet.
Definition: cinfo3d_visu.h:246
wxPoint m_boardPos
center board actual position in board units
Definition: cinfo3d_visu.h:539
Class BOARD_ITEM is a base class for any item which can be embedded within the BOARD container class...
const SHAPE_POLY_SET & GetThroughHole_Vias_Outer_poly() const
GetThroughHole_Vias_Outer_poly -.
Definition: cinfo3d_visu.h:336
CBBOX2D m_board2dBBox3DU
2d bouding box of the pcb board in 3d units
Definition: cinfo3d_visu.h:554
void GridSet(GRID3D_TYPE aGridType)
GridSet - set the current grid.
Definition: cinfo3d_visu.h:222
SFVEC3D m_CopperColor
in realistic mode: copper color
Definition: cinfo3d_visu.h:509
const SHAPE_POLY_SET & GetBoardPoly() const
GetBoardPoly - Get the current polygon of the epoxy board.
Definition: cinfo3d_visu.h:252
SFVEC3F GetItemColor(int aItemId) const
GetItemColor - get the technical color of a layer.
CBBOX m_boardBoudingBox
3d bouding box of the pcb board in 3d units
Definition: cinfo3d_visu.h:551
float GetNonCopperLayerThickness3DU() const
GetNonCopperLayerThickness3DU - Get the current non copper layers thickness.
Definition: cinfo3d_visu.h:159
Class CCAMERA is a virtual class used to derive CCAMERA objects from.
Definition: ccamera.h:80
Class CBBOX manages a bounding box defined by two SFVEC2F min max points.
Definition: cbbox2d.h:40
float m_calc_seg_min_factor3DU
min factor used for cicle segment approximation calculation
Definition: cinfo3d_visu.h:641
SHAPE_POLY_SET m_through_inner_holes_poly
It contains polygon contours for through holes (inner cylinder)
Definition: cinfo3d_visu.h:572
MATERIAL_MODE m_material_mode
mode to render the 3d shape models material
Definition: cinfo3d_visu.h:533
MAP_POLY m_layers_inner_holes_poly
It contains polygon contours for holes of each layer (inner holes)
Definition: cinfo3d_visu.h:563
void TransformArcToSegments(const wxPoint &aCentre, const wxPoint &aStart, double aArcAngle, int aCircleToSegmentsCount, int aWidth, CGENERICCONTAINER2D *aDstContainer, const BOARD_ITEM &aBoardItem)
float m_calc_seg_max_factor3DU
max factor used for cicle segment approximation calculation
Definition: cinfo3d_visu.h:644
const SHAPE_POLY_SET & GetThroughHole_Outer_poly_NPTH() const
GetThroughHole_Outer_poly_NPTH -.
Definition: cinfo3d_visu.h:317
Classes to handle copper zones.
int GetCopperThicknessBIU() const
GetCopperThicknessBIU - Get the current copper layer thickness.
BOARD * m_board
Current board.
Definition: cinfo3d_visu.h:515
unsigned int m_stats_nr_holes
number of holes in the board
Definition: cinfo3d_visu.h:662
SFVEC3D m_BgColorBot
background bottom color
Definition: cinfo3d_visu.h:503
float m_nonCopperLayerThickness3DU
Non copper layers thickness.
Definition: cinfo3d_visu.h:631
Class REPORTER is a pure virtual class used to derive REPORTER objects from.
Definition: reporter.h:61
float GetStats_Med_Via_Hole_Diameter3DU() const
GetStats_Med_Via_Hole_Diameter3DU - Average diameter of the via holes.
Definition: cinfo3d_visu.h:374
std::vector< bool > m_drawFlags
options flags to render the board
Definition: cinfo3d_visu.h:524
CBVHCONTAINER2D m_through_holes_inner
It contains the list of throughHoles of the board, the radius is the inner hole.
Definition: cinfo3d_visu.h:598
float m_stats_via_med_hole_diameter
Computed medium diameter of the via holes in 3D units.
Definition: cinfo3d_visu.h:659
float GetLayerTopZpos3DU(PCB_LAYER_ID aLayerId) const
GetLayerTopZpos3DU - Get the top z position.
Definition: cinfo3d_visu.h:280
SFVEC3D m_BgColorTop
background top color
Definition: cinfo3d_visu.h:504
void MaterialModeSet(MATERIAL_MODE aMaterialMode)
MaterialModeSet.
Definition: cinfo3d_visu.h:240
MAP_CONTAINER_2D m_layers_container2D
It contains the 2d elements of each layer.
Definition: cinfo3d_visu.h:587
float m_epoxyThickness3DU
Epoxy thickness (normalized)
Definition: cinfo3d_visu.h:628
Functions relatives to tracks, vias and segments used to fill zones.
SFVEC3D m_BoardBodyColor
in realistic mode: FR4 board color
Definition: cinfo3d_visu.h:505
float m_stats_hole_med_diameter
Computed medium diameter of the holes in 3D units.
Definition: cinfo3d_visu.h:665
void RenderEngineSet(RENDER_ENGINE aRenderEngine)
RenderEngineSet.
Definition: cinfo3d_visu.h:228
DIMENSION class definition.
void createBoardPolygon()
const MAP_CONTAINER_2D & GetMapLayersHoles() const
GetMapLayersHoles -Get the map of container that have the holes per layer.
Definition: cinfo3d_visu.h:299
PCB_LAYER_ID
A quick note on layer IDs:
MAP_POLY m_layers_poly
It contains polygon contours for each layer.
Definition: cinfo3d_visu.h:557
SHAPE_POLY_SET m_through_inner_holes_vias_poly
It contains polygon contours for through holes vias (inner cylinder)
Definition: cinfo3d_visu.h:578
Classes used in Pcbnew, CvPcb and GerbView.
const SFVEC3F & GetBoardCenter3DU() const
GetBoardCenter - the board center position in 3d units.
Definition: cinfo3d_visu.h:189
unsigned int m_stats_nr_vias
Nr of vias.
Definition: cinfo3d_visu.h:656
float GetLayerBottomZpos3DU(PCB_LAYER_ID aLayerId) const
GetLayerBottomZpos3DU - Get the bottom z position.
Definition: cinfo3d_visu.h:287
Class SHAPE_POLY_SET.
void createLayers(REPORTER *aStatusTextReporter)
SFVEC3F m_boardCenter
3d center position of the pcb board in 3d units
Definition: cinfo3d_visu.h:545
wxSize m_boardSize
board actual size in board units
Definition: cinfo3d_visu.h:542
Class CINFO3D_VISU Helper class to handle information needed to display 3D board. ...
Definition: cinfo3d_visu.h:70
double m_biuTo3Dunits
Normalization scale to convert board internal units to 3D units to normalize 3D units between -1...
Definition: cinfo3d_visu.h:616
const SHAPE_POLY_SET & GetThroughHole_Outer_poly() const
GetThroughHole_Outer_poly -.
Definition: cinfo3d_visu.h:311
const MAP_POLY & GetPolyMapHoles_Outer() const
Definition: cinfo3d_visu.h:418
glm::dvec3 SFVEC3D
Definition: xv3d_types.h:48
SHAPE_POLY_SET m_through_outer_holes_poly_NPTH
It contains polygon contours for (just) non plated through holes (outer cylinder) ...
Definition: cinfo3d_visu.h:566
MAP_POLY m_layers_outer_holes_poly
It contains polygon contours for holes of each layer (outer holes)
Definition: cinfo3d_visu.h:560
wxPoint GetBoardPosBIU() const
GetBoardPosBIU - Get the board size.
Definition: cinfo3d_visu.h:183
MODULE_ATTR_T
Enum MODULE_ATTR_T is the set of attributes allowed within a MODULE, using MODULE::SetAttributes() an...
Definition: class_module.h:73
void AddSolidAreasShapesToContainer(const ZONE_CONTAINER *aZoneContainer, CGENERICCONTAINER2D *aDstContainer, PCB_LAYER_ID aLayerId)
const CBVHCONTAINER2D & GetThroughHole_Vias_Outer() const
GetThroughHole_Vias_Outer -.
Definition: cinfo3d_visu.h:324
SHAPE_POLY_SET m_board_poly
PCB board outline polygon.
Definition: cinfo3d_visu.h:581
static const wxChar * m_logTrace
Trace mask used to enable or disable the trace output of this class.
Definition: cinfo3d_visu.h:673
MATERIAL_MODE
Render 3d model shape materials mode.
Definition: 3d_enums.h:91
SFVEC3D m_SolderPasteColor
in realistic mode: solder paste color
Definition: cinfo3d_visu.h:507
const MAP_POLY & GetPolyMap() const
GetPolyMap - Get maps of polygons's layers.
Definition: cinfo3d_visu.h:414
bool Is3DLayerEnabled(PCB_LAYER_ID aLayer) const
Is3DLayerEnabled - Check if a layer is enabled.
RENDER_ENGINE RenderEngineGet() const
RenderEngineGet.
Definition: cinfo3d_visu.h:234
SFVEC3D m_SolderMaskColor
in realistic mode: solder mask color
Definition: cinfo3d_visu.h:506
const CBVHCONTAINER2D & GetThroughHole_Inner() const
GetThroughHole_Inner - Get the ThroughHole container.
Definition: cinfo3d_visu.h:350
SFVEC3F GetColor(COLOR4D aColor) const
GetColor.
GRID3D_TYPE
Grid types.
Definition: 3d_enums.h:72
Pad object description.
CINFO3D_VISU G_null_CINFO3D_VISU
This is a dummy visualization configuration.
float GetEpoxyThickness3DU() const
GetEpoxyThickness3DU - Get the current epoxy thickness.
Definition: cinfo3d_visu.h:153
const CBVHCONTAINER2D & GetThroughHole_Vias_Inner() const
GetThroughHole_Vias_Inner -.
Definition: cinfo3d_visu.h:330
CCAMERA & m_currentCamera
Holds a pointer to current camera in use.
Definition: cinfo3d_visu.h:637
unsigned int GetNrSegmentsCircle(float aDiameter3DU) const
GetNrSegmentsCircle.
DISPLAY3D_FLG
Flags used in rendering options.
Definition: 3d_enums.h:34
float GetModulesZcoord3DIU(bool aIsFlipped) const
GetModulesZcoord3DIU - Get the position of the module in 3d integer units considering if it is flippe...
S3D_CACHE * m_3d_model_manager
pointer to the 3d model manager
Definition: cinfo3d_visu.h:518
bool GetFlag(DISPLAY3D_FLG aFlag) const
GetFlag - get a configuration status of a flag.
SFVEC3D m_SilkScreenColor
in realistic mode: SilkScreen color
Definition: cinfo3d_visu.h:508
SHAPE_POLY_SET m_through_outer_holes_poly
It contains polygon contours for through holes (outer cylinder)
Definition: cinfo3d_visu.h:569
void transformPadsShapesWithClearanceToPolygon(const DLIST< D_PAD > &aPads, PCB_LAYER_ID aLayer, SHAPE_POLY_SET &aCornerBuffer, int aInflateValue, bool aSkipNPTHPadsWihNoCopper) const
const SHAPE_POLY_SET & GetThroughHole_Vias_Inner_poly() const
GetThroughHole_Vias_Inner_poly -.
Definition: cinfo3d_visu.h:343
double GetCircleCorrectionFactor(int aNrSides) const
GetCircleCorrectionFactor - computes a angle correction factor used when creating circles...
Board layer functions and definitions.
bool ShouldModuleBeDisplayed(MODULE_ATTR_T aModuleAttributs) const
ShouldModuleBeDisplayed - Test if module should be displayed in relation to attributs and the flags...
Class to handle a graphic segment.
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:169
CCAMERA & CameraGet() const
CameraGet - get current camera in use.
Definition: cinfo3d_visu.h:210
glm::vec3 SFVEC3F
Definition: xv3d_types.h:47
float m_copperThickness3DU
Copper thickness (normalized)
Definition: cinfo3d_visu.h:625
const MAP_POLY & GetPolyMapHoles_Inner() const
Definition: cinfo3d_visu.h:416
float m_stats_track_med_width
Track average width.
Definition: cinfo3d_visu.h:653
unsigned int m_copperLayersCount
Number of copper layers actually used by the board.
Definition: cinfo3d_visu.h:612
MAP_CONTAINER_2D m_layers_holes2D
It contains the holes per each layer.
Definition: cinfo3d_visu.h:590
unsigned int GetStats_Nr_Vias() const
GetStats_Nr_Vias - Get statistics of the nr of vias.
Definition: cinfo3d_visu.h:362
RENDER_ENGINE m_render_engine
render engine currently on use
Definition: cinfo3d_visu.h:530
float m_layerZcoordBottom[PCB_LAYER_ID_COUNT]
Bottom (Start) Z position of each layer (normalized)
Definition: cinfo3d_visu.h:622
wxSize GetBoardSizeBIU() const
GetBoardSizeBIU - Get the board size.
Definition: cinfo3d_visu.h:177
CTRACK_BALL m_trackBallCamera
Definition: cinfo3d_visu.h:638
RENDER_ENGINE
Render engine mode.
Definition: 3d_enums.h:83
GRID3D_TYPE m_3D_grid_type
Stores the current grid type.
Definition: cinfo3d_visu.h:527
CBVHCONTAINER2D m_through_holes_vias_inner
It contains the list of throughHoles vias of the board, the radius of the hole.
Definition: cinfo3d_visu.h:606
const SHAPE_POLY_SET & GetThroughHole_Inner_poly() const
GetThroughHole_Inner_poly -.
Definition: cinfo3d_visu.h:356
SHAPE_POLY_SET m_through_outer_holes_vias_poly
It contains polygon contours for through holes vias (outer cylinder)
Definition: cinfo3d_visu.h:575
Module description (excepted pads)
void createNewPadWithClearance(const D_PAD *aPad, CGENERICCONTAINER2D *aDstContainer, int aClearanceValue) const
float m_layerZcoordTop[PCB_LAYER_ID_COUNT]
Top (End) Z position of each layer (normalized)
Definition: cinfo3d_visu.h:619
const CBVHCONTAINER2D & GetThroughHole_Outer() const
GetThroughHole_Outer - Get the inflated ThroughHole container.
Definition: cinfo3d_visu.h:305
float GetStats_Med_Track_Width() const
GetStats_Med_Track_Width - Average width of the tracks.
Definition: cinfo3d_visu.h:386
void createNewPad(const D_PAD *aPad, CGENERICCONTAINER2D *aDstContainer, const wxSize &aInflateValue) const
CBVHCONTAINER2D m_through_holes_outer
It contains the list of throughHoles of the board, the radius of the hole is inflated with the copper...
Definition: cinfo3d_visu.h:594
void SetFlag(DISPLAY3D_FLG aFlag, bool aState)
SetFlag - set the status of a flag.
void buildPadShapeThickOutlineAsSegments(const D_PAD *aPad, CGENERICCONTAINER2D *aDstContainer, int aWidth)
void buildPadShapePolygon(const D_PAD *aPad, SHAPE_POLY_SET &aCornerBuffer, wxSize aInflateValue, int aSegmentsPerCircle, double aCorrectionFactor) const
float GetStats_Med_Hole_Diameter3DU() const
GetStats_Med_Hole_Diameter3DU - Average diameter of holes.
Definition: cinfo3d_visu.h:380
COBJECT2D * createNewPadDrill(const D_PAD *aPad, int aInflateValue)
void SetBoard(BOARD *aBoard)
SetBoard - Set current board to be rendered.
Definition: cinfo3d_visu.h:122
CAMERA_TYPE
Camera types.
Definition: 3d_enums.h:65
Class CBBOX manages a bounding box defined by two SFVEC3F min max points.
Definition: cbbox.h:40
const BOARD * GetBoard() const
GetBoard - Get current board to be rendered.
Definition: cinfo3d_visu.h:128
Class DIMENSION.
unsigned int m_stats_nr_tracks
Number of tracks in the board.
Definition: cinfo3d_visu.h:650
void transformGraphicModuleEdgeToPolygonSet(const MODULE *aModule, PCB_LAYER_ID aLayer, SHAPE_POLY_SET &aCornerBuffer) const
void AddGraphicsShapesWithClearanceToContainer(const MODULE *aModule, CGENERICCONTAINER2D *aDstContainer, PCB_LAYER_ID aLayerId, int aInflateValue)
void buildPadShapeThickOutlineAsPolygon(const D_PAD *aPad, SHAPE_POLY_SET &aCornerBuffer, int aWidth) const
double BiuTo3Dunits() const
BiuTo3Dunits - Board integer units To 3D units.
Definition: cinfo3d_visu.h:141
const MAP_CONTAINER_2D & GetMapLayers() const
GetMapLayers - Get the map of container that have the objects per layer.
Definition: cinfo3d_visu.h:293
void InitSettings(REPORTER *aStatusTextReporter)
InitSettings - Function to be called by the render when it need to reload the settings for the board...
unsigned int GetStats_Nr_Holes() const
GetStats_Nr_Holes - Get statistics of the nr of holes.
Definition: cinfo3d_visu.h:368
void Set3DCacheManager(S3D_CACHE *aCachePointer)
Set3DCacheManager - Update the Cache manager pointer.
Definition: cinfo3d_visu.h:82
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39
const CBBOX & GetBBox3DU() const
GetBBox3DU - Get the bbox of the pcb board.
Definition: cinfo3d_visu.h:147
void AddPadsShapesWithClearanceToContainer(const MODULE *aModule, CGENERICCONTAINER2D *aDstContainer, PCB_LAYER_ID aLayerId, int aInflateValue, bool aSkipNPTHPadsWihNoCopper)