KiCad PCB EDA Suite
PANEL_PREV_3D Class Reference

#include <panel_prev_model.h>

Inheritance diagram for PANEL_PREV_3D:
PANEL_PREV_3D_BASE

Public Member Functions

 PANEL_PREV_3D (wxWindow *aParent, S3D_CACHE *aCacheManager, MODULE *aModuleCopy, COLORS_DESIGN_SETTINGS *aColors, std::vector< MODULE_3D_SETTINGS > *aParentInfoList=NULL)
 
 ~PANEL_PREV_3D ()
 
void SetModelDataIdx (int idx, bool aReloadPreviewModule=false)
 SetModelDataIdx - This will set the index of the INFO list that was set on the parent. More...
 
void ResetModelData (bool aReloadPreviewModule=false)
 ResetModelData - Clear the values and reload the preview board. More...
 
void UpdateModelName (wxString const &aModel)
 
bool ValidateWithMessage (wxString &aErrorMessage)
 verify X,Y and Z scale factors are acceptable (> 0.001 and < 1000.0) More...
 
bool Validate () override
 

Public Attributes

wxTextCtrl * yoff
 

Protected Attributes

wxStaticText * m_staticText1
 
wxTextCtrl * xscale
 
wxSpinButton * m_spinXscale
 
wxStaticText * m_staticText2
 
wxTextCtrl * yscale
 
wxSpinButton * m_spinYscale
 
wxStaticText * m_staticText3
 
wxTextCtrl * zscale
 
wxSpinButton * m_spinZscale
 
wxStaticText * m_staticText11
 
wxTextCtrl * xrot
 
wxSpinButton * m_spinXrot
 
wxStaticText * m_staticText21
 
wxTextCtrl * yrot
 
wxSpinButton * m_spinYrot
 
wxStaticText * m_staticText31
 
wxTextCtrl * zrot
 
wxSpinButton * m_spinZrot
 
wxStaticBoxSizer * vbOffset
 
wxStaticText * m_staticText12
 
wxTextCtrl * xoff
 
wxSpinButton * m_spinXoffset
 
wxStaticText * m_staticText22
 
wxSpinButton * m_spinYoffset
 
wxStaticText * m_staticText32
 
wxTextCtrl * zoff
 
wxSpinButton * m_spinZoffset
 
wxBoxSizer * m_SizerPanelView
 
wxFlexGridSizer * m_fgSizerButtons
 
wxBitmapButton * m_bpvISO
 
wxBitmapButton * m_bpvLeft
 
wxBitmapButton * m_bpvFront
 
wxBitmapButton * m_bpvTop
 
wxBitmapButton * m_bpUpdate
 
wxBitmapButton * m_bpvRight
 
wxBitmapButton * m_bpvBack
 
wxBitmapButton * m_bpvBottom
 

Private Member Functions

void initPanel ()
 
void updateOrientation (wxCommandEvent &event) override
 updateOrientation - it will receive the events from editing the fields More...
 
void onMouseWheelScale (wxMouseEvent &event) override
 
void onMouseWheelRot (wxMouseEvent &event) override
 
void onMouseWheelOffset (wxMouseEvent &event) override
 
void onIncrementRot (wxSpinEvent &event) override
 
void onDecrementRot (wxSpinEvent &event) override
 
void onIncrementScale (wxSpinEvent &event) override
 
void onDecrementScale (wxSpinEvent &event) override
 
void onIncrementOffset (wxSpinEvent &event) override
 
void onDecrementOffset (wxSpinEvent &event) override
 
void getOrientationVars (SGPOINT &aScale, SGPOINT &aRotation, SGPOINT &aOffset)
 getOrientationVars - gets the transformation from entries and validate it More...
 
void updateListOnModelCopy ()
 updateListOnModelCopy - copy the current shape list to the copy of module that is on the preview dummy board More...
 
void onEnterPreviewCanvas (wxMouseEvent &event)
 
void View3DISO (wxCommandEvent &event) override
 
void View3DLeft (wxCommandEvent &event) override
 
void View3DFront (wxCommandEvent &event) override
 
void View3DTop (wxCommandEvent &event) override
 
void View3DUpdate (wxCommandEvent &event) override
 
void View3DRight (wxCommandEvent &event) override
 
void View3DBack (wxCommandEvent &event) override
 
void View3DBottom (wxCommandEvent &event) override
 

Private Attributes

wxString currentModelFile
 Used to check if the model file was changed. More...
 
S3D_FILENAME_RESOLVERm_resolver
 Used to get the full path name. More...
 
EDA_3D_CANVASm_previewPane
 The 3D canvas. More...
 
BOARDm_dummyBoard
 A dummy board used to store the copy moduled. More...
 
CINFO3D_VISUm_settings3Dviewer
 The settings that will be used for this 3D viewer canvas. More...
 
MODULEm_copyModule
 A pointer to a new copy of the original module. More...
 
std::vector< MODULE_3D_SETTINGS > * m_parentInfoList
 A pointer to the parent MODULE_3D_SETTINGS list that we will use to copy to the preview module. More...
 
int m_currentSelectedIdx
 The current selected index of the MODULE_3D_SETTINGS list. More...
 
MODULE_3D_SETTINGS m_modelInfo
 Current MODULE_3D_SETTINGS that is being edited. More...
 

Detailed Description

Definition at line 72 of file panel_prev_model.h.

Constructor & Destructor Documentation

PANEL_PREV_3D::PANEL_PREV_3D ( wxWindow *  aParent,
S3D_CACHE aCacheManager,
MODULE aModuleCopy,
COLORS_DESIGN_SETTINGS aColors,
std::vector< MODULE_3D_SETTINGS > *  aParentInfoList = NULL 
)

Definition at line 45 of file panel_prev_model.cpp.

References BOARD::Add(), FRAME_PCB_DISPLAY3D, COGL_ATT_LIST::GetAttributesList(), S3D_CACHE::GetResolver(), initPanel(), m_copyModule, m_dummyBoard, m_parentInfoList, m_previewPane, m_resolver, m_settings3Dviewer, PANEL_PREV_3D_BASE::m_SizerPanelView, onEnterPreviewCanvas(), and BOARD::SetColorsSettings().

48  :
49  PANEL_PREV_3D_BASE( aParent, wxID_ANY )
50  {
51  initPanel();
52 
53  // Initialize the color settings to draw the board and the footprint
54  if( aColors )
55  m_dummyBoard->SetColorsSettings( aColors );
56  else
57  {
58  static COLORS_DESIGN_SETTINGS defaultColors( FRAME_PCB_DISPLAY3D );
59  m_dummyBoard->SetColorsSettings( &defaultColors );
60  }
61 
62  if( NULL != aCacheManager )
63  m_resolver = aCacheManager->GetResolver();
64 
65  m_parentInfoList = aParentInfoList;
66 
67  m_dummyBoard->Add( (MODULE*)aModuleCopy );
68  m_copyModule = aModuleCopy;
69 
70  // Set 3d viewer configuration for preview
72 
73  // Create the 3D canvas
74  m_previewPane = new EDA_3D_CANVAS( this,
78  aCacheManager );
79 
80  m_SizerPanelView->Add( m_previewPane, 1, wxEXPAND );
81 
82  m_previewPane->Connect( wxEVT_ENTER_WINDOW, wxMouseEventHandler(
84  }
void SetColorsSettings(COLORS_DESIGN_SETTINGS *aColorsSettings)
Function SetColorsSettings.
Definition: class_board.h:569
std::vector< MODULE_3D_SETTINGS > * m_parentInfoList
A pointer to the parent MODULE_3D_SETTINGS list that we will use to copy to the preview module...
MODULE * m_copyModule
A pointer to a new copy of the original module.
CINFO3D_VISU * m_settings3Dviewer
The settings that will be used for this 3D viewer canvas.
static const int * GetAttributesList(bool aUseAntiAliasing)
Get a list of attributes to pass to wxGLCanvas.
PANEL_PREV_3D_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(503, 371), long style=wxTAB_TRAVERSAL)
Class EDA_3D_CANVAS Implement a canvas based on a wxGLCanvas.
Definition: eda_3d_canvas.h:53
wxBoxSizer * m_SizerPanelView
S3D_FILENAME_RESOLVER * m_resolver
Used to get the full path name.
void onEnterPreviewCanvas(wxMouseEvent &event)
void Add(BOARD_ITEM *aItem, ADD_MODE aMode=ADD_INSERT) override
Adds an item to the container.
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
Class CINFO3D_VISU Helper class to handle information needed to display 3D board. ...
Definition: cinfo3d_visu.h:70
S3D_FILENAME_RESOLVER * GetResolver(void)
Definition: 3d_cache.cpp:739
Class COLORS_DESIGN_SETTINGS is a list of color settings for designs in Pcbnew.
BOARD * m_dummyBoard
A dummy board used to store the copy moduled.
PANEL_PREV_3D::~PANEL_PREV_3D ( )

Definition at line 87 of file panel_prev_model.cpp.

References m_dummyBoard, m_previewPane, m_settings3Dviewer, and onEnterPreviewCanvas().

88 {
89  m_previewPane->Disconnect( wxEVT_ENTER_WINDOW,
90  wxMouseEventHandler( PANEL_PREV_3D::onEnterPreviewCanvas ), NULL, this );
91 
92  delete m_settings3Dviewer;
93  delete m_dummyBoard;
94  delete m_previewPane;
95 }
CINFO3D_VISU * m_settings3Dviewer
The settings that will be used for this 3D viewer canvas.
void onEnterPreviewCanvas(wxMouseEvent &event)
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
BOARD * m_dummyBoard
A dummy board used to store the copy moduled.

Member Function Documentation

void PANEL_PREV_3D::getOrientationVars ( SGPOINT aScale,
SGPOINT aRotation,
SGPOINT aOffset 
)
private

getOrientationVars - gets the transformation from entries and validate it

Parameters
aScaleoutput scale var
aRotationoutput rotation var
aOffsetoutput offset var

Definition at line 567 of file panel_prev_model.cpp.

References checkRotation(), g_UserUnit, INCHES, MILLIMETRES, SGPOINT::x, PANEL_PREV_3D_BASE::xoff, PANEL_PREV_3D_BASE::xrot, PANEL_PREV_3D_BASE::xscale, SGPOINT::y, PANEL_PREV_3D_BASE::yoff, PANEL_PREV_3D_BASE::yrot, PANEL_PREV_3D_BASE::yscale, SGPOINT::z, PANEL_PREV_3D_BASE::zoff, PANEL_PREV_3D_BASE::zrot, and PANEL_PREV_3D_BASE::zscale.

Referenced by updateOrientation().

568 {
569  if( NULL == xscale || NULL == yscale || NULL == zscale
570  || NULL == xrot || NULL == yrot || NULL == zrot
571  || NULL == xoff || NULL == yoff || NULL == zoff )
572  {
573  return;
574  }
575 
576  xscale->GetValue().ToDouble( &aScale.x );
577  yscale->GetValue().ToDouble( &aScale.y );
578  zscale->GetValue().ToDouble( &aScale.z );
579 
580  xrot->GetValue().ToDouble( &aRotation.x );
581  yrot->GetValue().ToDouble( &aRotation.y );
582  zrot->GetValue().ToDouble( &aRotation.z );
583 
584  checkRotation( aRotation.x );
585  checkRotation( aRotation.y );
586  checkRotation( aRotation.z );
587 
588  xoff->GetValue().ToDouble( &aOffset.x );
589  yoff->GetValue().ToDouble( &aOffset.y );
590  zoff->GetValue().ToDouble( &aOffset.z );
591 
592  // Convert from user units to internal units (mm)
593 
594  double scaler = 1.0f;
595 
596  switch( g_UserUnit )
597  {
598  case MILLIMETRES:
599  scaler = 1.0f;
600  break;
601  case INCHES:
602  scaler = 25.4f;
603  break;
604  default:
605  wxASSERT( 0 );
606  }
607 
608  aOffset.x *= scaler;
609  aOffset.y *= scaler;
610  aOffset.z *= scaler;
611 
612  return;
613 }
double x
Definition: sg_base.h:70
double y
Definition: sg_base.h:71
Definition: common.h:144
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
double z
Definition: sg_base.h:72
static void checkRotation(double &aRotation)
checkRotation Ensure -MAX_ROTATION <= rotation <= MAX_ROTATION aRotation will be normalized between -...
void PANEL_PREV_3D::initPanel ( )
private

Definition at line 98 of file panel_prev_model.cpp.

References currentModelFile, Format(), g_UserUnit, INCHES, KiBitmap(), PANEL_PREV_3D_BASE::m_bpUpdate, PANEL_PREV_3D_BASE::m_bpvBack, PANEL_PREV_3D_BASE::m_bpvBottom, PANEL_PREV_3D_BASE::m_bpvFront, PANEL_PREV_3D_BASE::m_bpvISO, PANEL_PREV_3D_BASE::m_bpvLeft, PANEL_PREV_3D_BASE::m_bpvRight, PANEL_PREV_3D_BASE::m_bpvTop, m_currentSelectedIdx, m_dummyBoard, m_resolver, PANEL_PREV_3D_BASE::m_spinXoffset, PANEL_PREV_3D_BASE::m_spinXrot, PANEL_PREV_3D_BASE::m_spinXscale, PANEL_PREV_3D_BASE::m_spinYoffset, PANEL_PREV_3D_BASE::m_spinYrot, PANEL_PREV_3D_BASE::m_spinYscale, PANEL_PREV_3D_BASE::m_spinZoffset, PANEL_PREV_3D_BASE::m_spinZrot, PANEL_PREV_3D_BASE::m_spinZscale, MILLIMETRES, and PANEL_PREV_3D_BASE::vbOffset.

Referenced by PANEL_PREV_3D().

99 {
100  m_resolver = NULL;
101  currentModelFile.clear();
102  m_dummyBoard = new BOARD();
104 
105  // Set the bitmap of 3D view buttons:
106  m_bpvTop->SetBitmap( KiBitmap( axis3d_top_xpm ) );
107  m_bpvFront->SetBitmap( KiBitmap( axis3d_front_xpm ) );
108  m_bpvBack->SetBitmap( KiBitmap( axis3d_back_xpm ) );
109  m_bpvLeft->SetBitmap( KiBitmap( axis3d_left_xpm ) );
110  m_bpvRight->SetBitmap( KiBitmap( axis3d_right_xpm ) );
111  m_bpvBottom->SetBitmap( KiBitmap( axis3d_bottom_xpm ) );
112  m_bpvISO->SetBitmap( KiBitmap( ortho_xpm ) );
113  m_bpUpdate->SetBitmap( KiBitmap( reload_xpm ) );
114 
115  // Set the min and max values of spin buttons (mandatory on Linux)
116  // They are not used, so they are set to min and max 32 bits int values
117  // (the min and max values supported by a wxSpinButton)
118  // It avoids blocking the up or down arrows when reaching this limit after
119  // a few clicks.
120  wxSpinButton* spinButtonList[] =
121  {
125  };
126 
127  for( int ii = 0; ii < 9; ii++ )
128  {
129  spinButtonList[ii]->SetRange( INT_MIN, INT_MAX );
130  }
131 
132  wxString units;
133 
134  switch( g_UserUnit )
135  {
136  case INCHES:
137  units = _( "inches" );
138  break;
139  case MILLIMETRES:
140  units = _( "mm" );
141  break;
142  default:
143  break;
144  }
145 
146  if( !units.IsEmpty() )
147  {
148  units = wxString::Format( _( "Offset (%s)" ), units );
149  vbOffset->GetStaticBox()->SetLabel( units );
150  }
151 }
wxBitmapButton * m_bpvTop
wxBitmapButton * m_bpvBottom
wxSpinButton * m_spinZoffset
wxSpinButton * m_spinYoffset
wxBitmapButton * m_bpvBack
wxBitmapButton * m_bpvLeft
wxBitmapButton * m_bpUpdate
int m_currentSelectedIdx
The current selected index of the MODULE_3D_SETTINGS list.
wxBitmapButton * m_bpvRight
wxBitmap KiBitmap(BITMAP_DEF aBitmap)
Function KiBitmap constructs a wxBitmap from a memory record, held in a BITMAP_DEF.
Definition: bitmap.cpp:36
wxSpinButton * m_spinZrot
S3D_FILENAME_RESOLVER * m_resolver
Used to get the full path name.
wxStaticBoxSizer * vbOffset
wxSpinButton * m_spinXoffset
Definition: common.h:144
wxSpinButton * m_spinYrot
wxSpinButton * m_spinXrot
wxBitmapButton * m_bpvFront
wxSpinButton * m_spinZscale
wxSpinButton * m_spinXscale
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:169
wxBitmapButton * m_bpvISO
BOARD * m_dummyBoard
A dummy board used to store the copy moduled.
wxString currentModelFile
Used to check if the model file was changed.
wxSpinButton * m_spinYscale
void PANEL_PREV_3D::onDecrementOffset ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 493 of file panel_prev_model.cpp.

References g_UserUnit, INCHES, incrementTextCtrl(), PANEL_PREV_3D_BASE::m_spinYoffset, PANEL_PREV_3D_BASE::m_spinZoffset, MAX_OFFSET, OFFSET_INCREMENT_MIL, OFFSET_INCREMENT_MM, PANEL_PREV_3D_BASE::xoff, PANEL_PREV_3D_BASE::yoff, and PANEL_PREV_3D_BASE::zoff.

494 {
495  wxSpinButton* spinCtrl = (wxSpinButton*) event.GetEventObject();
496 
497  wxTextCtrl * textCtrl = xoff;
498 
499  if( spinCtrl == m_spinYoffset )
500  textCtrl = yoff;
501  else if( spinCtrl == m_spinZoffset )
502  textCtrl = zoff;
503 
504  double step = OFFSET_INCREMENT_MM;
505 
506  if( g_UserUnit == INCHES )
507  step = OFFSET_INCREMENT_MIL/1000.0;
508 
509  incrementTextCtrl( textCtrl, -step, -MAX_OFFSET, MAX_OFFSET );
510 }
wxSpinButton * m_spinZoffset
wxSpinButton * m_spinYoffset
#define OFFSET_INCREMENT_MM
static void incrementTextCtrl(wxTextCtrl *aTextCtrl, double aInc, double aMinval, double aMaxval)
Definition: common.h:144
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
#define OFFSET_INCREMENT_MIL
#define MAX_OFFSET
void PANEL_PREV_3D::onDecrementRot ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 428 of file panel_prev_model.cpp.

References incrementTextCtrl(), PANEL_PREV_3D_BASE::m_spinYrot, PANEL_PREV_3D_BASE::m_spinZrot, MAX_ROTATION, ROTATION_INCREMENT, PANEL_PREV_3D_BASE::xrot, PANEL_PREV_3D_BASE::yrot, and PANEL_PREV_3D_BASE::zrot.

429 {
430  wxSpinButton* spinCtrl = (wxSpinButton*) event.GetEventObject();
431 
432  wxTextCtrl * textCtrl = xrot;
433 
434  if( spinCtrl == m_spinYrot )
435  textCtrl = yrot;
436  else if( spinCtrl == m_spinZrot )
437  textCtrl = zrot;
438 
440 }
static void incrementTextCtrl(wxTextCtrl *aTextCtrl, double aInc, double aMinval, double aMaxval)
#define ROTATION_INCREMENT
wxSpinButton * m_spinZrot
wxSpinButton * m_spinYrot
#define MAX_ROTATION
void PANEL_PREV_3D::onDecrementScale ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 458 of file panel_prev_model.cpp.

References incrementTextCtrl(), PANEL_PREV_3D_BASE::m_spinYscale, PANEL_PREV_3D_BASE::m_spinZscale, MAX_SCALE, SCALE_INCREMENT, PANEL_PREV_3D_BASE::xscale, PANEL_PREV_3D_BASE::yscale, and PANEL_PREV_3D_BASE::zscale.

459 {
460  wxSpinButton* spinCtrl = (wxSpinButton*) event.GetEventObject();
461 
462  wxTextCtrl * textCtrl = xscale;
463 
464  if( spinCtrl == m_spinYscale )
465  textCtrl = yscale;
466  else if( spinCtrl == m_spinZscale )
467  textCtrl = zscale;
468 
470 }
static void incrementTextCtrl(wxTextCtrl *aTextCtrl, double aInc, double aMinval, double aMaxval)
#define SCALE_INCREMENT
wxSpinButton * m_spinZscale
wxSpinButton * m_spinYscale
void PANEL_PREV_3D::onEnterPreviewCanvas ( wxMouseEvent &  event)
inlineprivate

Definition at line 143 of file panel_prev_model.h.

Referenced by PANEL_PREV_3D(), and ~PANEL_PREV_3D().

144  {
145  m_previewPane->SetFocus();
146  }
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
void PANEL_PREV_3D::onIncrementOffset ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 473 of file panel_prev_model.cpp.

References g_UserUnit, INCHES, incrementTextCtrl(), PANEL_PREV_3D_BASE::m_spinYoffset, PANEL_PREV_3D_BASE::m_spinZoffset, MAX_OFFSET, OFFSET_INCREMENT_MIL, OFFSET_INCREMENT_MM, PANEL_PREV_3D_BASE::xoff, PANEL_PREV_3D_BASE::yoff, and PANEL_PREV_3D_BASE::zoff.

474 {
475  wxSpinButton* spinCtrl = (wxSpinButton*) event.GetEventObject();
476 
477  wxTextCtrl * textCtrl = xoff;
478 
479  if( spinCtrl == m_spinYoffset )
480  textCtrl = yoff;
481  else if( spinCtrl == m_spinZoffset )
482  textCtrl = zoff;
483 
484  double step = OFFSET_INCREMENT_MM;
485 
486  if( g_UserUnit == INCHES )
487  step = OFFSET_INCREMENT_MIL/1000.0;
488 
489  incrementTextCtrl( textCtrl, step, -MAX_OFFSET, MAX_OFFSET );
490 }
wxSpinButton * m_spinZoffset
wxSpinButton * m_spinYoffset
#define OFFSET_INCREMENT_MM
static void incrementTextCtrl(wxTextCtrl *aTextCtrl, double aInc, double aMinval, double aMaxval)
Definition: common.h:144
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
#define OFFSET_INCREMENT_MIL
#define MAX_OFFSET
void PANEL_PREV_3D::onIncrementRot ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 413 of file panel_prev_model.cpp.

References incrementTextCtrl(), PANEL_PREV_3D_BASE::m_spinYrot, PANEL_PREV_3D_BASE::m_spinZrot, MAX_ROTATION, ROTATION_INCREMENT, PANEL_PREV_3D_BASE::xrot, PANEL_PREV_3D_BASE::yrot, and PANEL_PREV_3D_BASE::zrot.

414 {
415  wxSpinButton* spinCtrl = (wxSpinButton*) event.GetEventObject();
416 
417  wxTextCtrl * textCtrl = xrot;
418 
419  if( spinCtrl == m_spinYrot )
420  textCtrl = yrot;
421  else if( spinCtrl == m_spinZrot )
422  textCtrl = zrot;
423 
425 }
static void incrementTextCtrl(wxTextCtrl *aTextCtrl, double aInc, double aMinval, double aMaxval)
#define ROTATION_INCREMENT
wxSpinButton * m_spinZrot
wxSpinButton * m_spinYrot
#define MAX_ROTATION
void PANEL_PREV_3D::onIncrementScale ( wxSpinEvent &  event)
overrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 443 of file panel_prev_model.cpp.

References incrementTextCtrl(), PANEL_PREV_3D_BASE::m_spinYscale, PANEL_PREV_3D_BASE::m_spinZscale, MAX_SCALE, SCALE_INCREMENT, PANEL_PREV_3D_BASE::xscale, PANEL_PREV_3D_BASE::yscale, and PANEL_PREV_3D_BASE::zscale.

444 {
445  wxSpinButton* spinCtrl = (wxSpinButton*) event.GetEventObject();
446 
447  wxTextCtrl * textCtrl = xscale;
448 
449  if( spinCtrl == m_spinYscale )
450  textCtrl = yscale;
451  else if( spinCtrl == m_spinZscale )
452  textCtrl = zscale;
453 
455 }
static void incrementTextCtrl(wxTextCtrl *aTextCtrl, double aInc, double aMinval, double aMaxval)
#define SCALE_INCREMENT
wxSpinButton * m_spinZscale
wxSpinButton * m_spinYscale
void PANEL_PREV_3D::onMouseWheelOffset ( wxMouseEvent &  event)
overrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 546 of file panel_prev_model.cpp.

References g_UserUnit, INCHES, incrementTextCtrl(), MAX_OFFSET, OFFSET_INCREMENT_MIL, OFFSET_INCREMENT_MIL_FINE, OFFSET_INCREMENT_MM, and OFFSET_INCREMENT_MM_FINE.

547 {
548  wxTextCtrl* textCtrl = (wxTextCtrl*) event.GetEventObject();
549 
550  double step = OFFSET_INCREMENT_MM;
551  if( event.ShiftDown( ) )
553 
554  if( g_UserUnit == INCHES )
555  {
556  step = OFFSET_INCREMENT_MIL/1000.0;
557  if( event.ShiftDown( ) )
558  step = OFFSET_INCREMENT_MIL_FINE/1000.0;
559  }
560 
561  if( event.GetWheelRotation() >= 0 )
562  step = -step;
563 
564  incrementTextCtrl( textCtrl, step, -MAX_OFFSET, MAX_OFFSET );
565 }
#define OFFSET_INCREMENT_MM_FINE
#define OFFSET_INCREMENT_MM
static void incrementTextCtrl(wxTextCtrl *aTextCtrl, double aInc, double aMinval, double aMaxval)
Definition: common.h:144
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
#define OFFSET_INCREMENT_MIL_FINE
#define OFFSET_INCREMENT_MIL
#define MAX_OFFSET
void PANEL_PREV_3D::onMouseWheelRot ( wxMouseEvent &  event)
overrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 529 of file panel_prev_model.cpp.

References incrementTextCtrl(), MAX_ROTATION, ROTATION_INCREMENT_WHEEL, and ROTATION_INCREMENT_WHEEL_FINE.

530 {
531  wxTextCtrl* textCtrl = (wxTextCtrl*) event.GetEventObject();
532 
533  wxKeyboardState kbdState;
534 
535  double step = ROTATION_INCREMENT_WHEEL;
536 
537  if( event.ShiftDown( ) )
539 
540  if( event.GetWheelRotation() >= 0 )
541  step = -step;
542 
543  incrementTextCtrl( textCtrl, step, -MAX_ROTATION, MAX_ROTATION );
544 }
static void incrementTextCtrl(wxTextCtrl *aTextCtrl, double aInc, double aMinval, double aMaxval)
#define ROTATION_INCREMENT_WHEEL_FINE
#define ROTATION_INCREMENT_WHEEL
#define MAX_ROTATION
void PANEL_PREV_3D::onMouseWheelScale ( wxMouseEvent &  event)
overrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 513 of file panel_prev_model.cpp.

References incrementTextCtrl(), MAX_SCALE, SCALE_INCREMENT, and SCALE_INCREMENT_FINE.

514 {
515  wxTextCtrl* textCtrl = (wxTextCtrl*) event.GetEventObject();
516 
517  double step = SCALE_INCREMENT;
518 
519  if( event.ShiftDown( ) )
520  step = SCALE_INCREMENT_FINE;
521 
522  if( event.GetWheelRotation() >= 0 )
523  step = -step;
524 
525  incrementTextCtrl( textCtrl, step, 1/MAX_SCALE, MAX_SCALE );
526 }
#define SCALE_INCREMENT_FINE
static void incrementTextCtrl(wxTextCtrl *aTextCtrl, double aInc, double aMinval, double aMaxval)
#define SCALE_INCREMENT
void PANEL_PREV_3D::ResetModelData ( bool  aReloadPreviewModule = false)

ResetModelData - Clear the values and reload the preview board.

Parameters
aReloadPreviewModuleif need to update the preview module

Definition at line 282 of file panel_prev_model.cpp.

References m_currentSelectedIdx, m_previewPane, EDA_3D_CANVAS::ReloadRequest(), EDA_3D_CANVAS::Request_refresh(), updateListOnModelCopy(), PANEL_PREV_3D_BASE::xoff, PANEL_PREV_3D_BASE::xrot, PANEL_PREV_3D_BASE::xscale, PANEL_PREV_3D_BASE::yoff, PANEL_PREV_3D_BASE::yrot, PANEL_PREV_3D_BASE::yscale, PANEL_PREV_3D_BASE::zoff, PANEL_PREV_3D_BASE::zrot, and PANEL_PREV_3D_BASE::zscale.

Referenced by DIALOG_MODULE_MODULE_EDITOR::initModeditProperties(), DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties(), DIALOG_MODULE_MODULE_EDITOR::On3DShapeNameSelected(), DIALOG_MODULE_BOARD_EDITOR::On3DShapeNameSelected(), DIALOG_MODULE_MODULE_EDITOR::Remove3DShape(), and DIALOG_MODULE_BOARD_EDITOR::Remove3DShape().

283 {
285 
286  xscale->SetValue( wxString::FromDouble( 1.0 ) );
287  yscale->SetValue( wxString::FromDouble( 1.0 ) );
288  zscale->SetValue( wxString::FromDouble( 1.0 ) );
289 
290  xrot->SetValue( wxString::FromDouble( 0.0 ) );
291  yrot->SetValue( wxString::FromDouble( 0.0 ) );
292  zrot->SetValue( wxString::FromDouble( 0.0 ) );
293 
294  xoff->SetValue( wxString::FromDouble( 0.0 ) );
295  yoff->SetValue( wxString::FromDouble( 0.0 ) );
296  zoff->SetValue( wxString::FromDouble( 0.0 ) );
297 
298  // This will update the model on the preview board with the current list of 3d shapes
299  if( aReloadPreviewModule )
300  {
302 
303  if( m_previewPane )
304  {
307  }
308  }
309 
310  if( m_previewPane )
311  m_previewPane->SetFocus();
312 }
void Request_refresh(bool aRedrawImmediately=true)
Request_refresh - Schedule a refresh update of the canvas.
void ReloadRequest(BOARD *aBoard=NULL, S3D_CACHE *aCachePointer=NULL)
int m_currentSelectedIdx
The current selected index of the MODULE_3D_SETTINGS list.
void updateListOnModelCopy()
updateListOnModelCopy - copy the current shape list to the copy of module that is on the preview dumm...
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
void PANEL_PREV_3D::SetModelDataIdx ( int  idx,
bool  aReloadPreviewModule = false 
)

SetModelDataIdx - This will set the index of the INFO list that was set on the parent.

So we will update our values to edit based on the index on that list.

Parameters
idx- The index that was selected
aReloadPreviewModuleif need to update the preview module

Definition at line 215 of file panel_prev_model.cpp.

References Format(), g_UserUnit, INCHES, m_currentSelectedIdx, MODULE_3D_SETTINGS::m_Filename, MODULE_3D_SETTINGS::m_Offset, m_parentInfoList, m_previewPane, MODULE_3D_SETTINGS::m_Rotation, MODULE_3D_SETTINGS::m_Scale, MILLIMETRES, EDA_3D_CANVAS::ReloadRequest(), EDA_3D_CANVAS::Request_refresh(), updateListOnModelCopy(), UpdateModelName(), MODULE_3D_SETTINGS::VECTOR3D::x, PANEL_PREV_3D_BASE::xoff, PANEL_PREV_3D_BASE::xrot, PANEL_PREV_3D_BASE::xscale, MODULE_3D_SETTINGS::VECTOR3D::y, PANEL_PREV_3D_BASE::yoff, PANEL_PREV_3D_BASE::yrot, PANEL_PREV_3D_BASE::yscale, MODULE_3D_SETTINGS::VECTOR3D::z, PANEL_PREV_3D_BASE::zoff, PANEL_PREV_3D_BASE::zrot, and PANEL_PREV_3D_BASE::zscale.

Referenced by DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_MODULE_BOARD_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_MODULE_MODULE_EDITOR::Cfg3DPath(), DIALOG_MODULE_BOARD_EDITOR::Cfg3DPath(), DIALOG_MODULE_MODULE_EDITOR::initModeditProperties(), DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties(), DIALOG_MODULE_MODULE_EDITOR::On3DShapeNameSelected(), DIALOG_MODULE_BOARD_EDITOR::On3DShapeNameSelected(), DIALOG_MODULE_MODULE_EDITOR::Remove3DShape(), and DIALOG_MODULE_BOARD_EDITOR::Remove3DShape().

216 {
217  wxASSERT( m_parentInfoList != NULL );
218 
219  if( m_parentInfoList && (idx >= 0) )
220  {
221  wxASSERT( (unsigned int)idx < (*m_parentInfoList).size() );
222 
223  if( (unsigned int)idx < (*m_parentInfoList).size() )
224  {
225  m_currentSelectedIdx = -1; // In case that we receive events on the
226  // next updates, it will set first an
227  // invalid selection
228 
229  const MODULE_3D_SETTINGS *aModel = (const MODULE_3D_SETTINGS *)&((*m_parentInfoList)[idx]);
230 
231  xscale->SetValue( wxString::Format( "%.4f", aModel->m_Scale.x ) );
232  yscale->SetValue( wxString::Format( "%.4f", aModel->m_Scale.y ) );
233  zscale->SetValue( wxString::Format( "%.4f", aModel->m_Scale.z ) );
234 
235  xrot->SetValue( wxString::Format( "%.2f", aModel->m_Rotation.x ) );
236  yrot->SetValue( wxString::Format( "%.2f", aModel->m_Rotation.y ) );
237  zrot->SetValue( wxString::Format( "%.2f", aModel->m_Rotation.z ) );
238 
239  // Convert from internal units (mm) to user units
240 
241  double scaler = 1;
242 
243  switch( g_UserUnit )
244  {
245  case MILLIMETRES:
246  scaler = 1.0f;
247  break;
248  case INCHES:
249  scaler = 25.4f;
250  break;
251  default:
252  wxASSERT( 0 );
253  }
254 
255  xoff->SetValue( wxString::Format( "%.4f", aModel->m_Offset.x / scaler ) );
256  yoff->SetValue( wxString::Format( "%.4f", aModel->m_Offset.y / scaler ) );
257  zoff->SetValue( wxString::Format( "%.4f", aModel->m_Offset.z / scaler ) );
258 
259  UpdateModelName( aModel->m_Filename );
260 
261  if( aReloadPreviewModule && m_previewPane )
262  {
264 
267  }
268 
269  m_currentSelectedIdx = idx;
270  }
271  }
272 
273  if( m_previewPane )
274  {
275  m_previewPane->SetFocus();
276  }
277 
278  return;
279 }
std::vector< MODULE_3D_SETTINGS > * m_parentInfoList
A pointer to the parent MODULE_3D_SETTINGS list that we will use to copy to the preview module...
void Request_refresh(bool aRedrawImmediately=true)
Request_refresh - Schedule a refresh update of the canvas.
void ReloadRequest(BOARD *aBoard=NULL, S3D_CACHE *aCachePointer=NULL)
int m_currentSelectedIdx
The current selected index of the MODULE_3D_SETTINGS list.
VECTOR3D m_Offset
3D model offset (mm)
Definition: class_module.h:100
void updateListOnModelCopy()
updateListOnModelCopy - copy the current shape list to the copy of module that is on the preview dumm...
Definition: common.h:144
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
wxString m_Filename
The 3D shape filename in 3D library.
Definition: class_module.h:101
EDA_UNITS_T g_UserUnit
Global variables definitions.
Definition: common.cpp:56
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
VECTOR3D m_Rotation
3D model rotation (degrees)
Definition: class_module.h:99
VECTOR3D m_Scale
3D model scaling factor (dimensionless)
Definition: class_module.h:98
void UpdateModelName(wxString const &aModel)
void PANEL_PREV_3D::updateListOnModelCopy ( )
private

updateListOnModelCopy - copy the current shape list to the copy of module that is on the preview dummy board

Definition at line 681 of file panel_prev_model.cpp.

References m_copyModule, m_parentInfoList, and MODULE::Models().

Referenced by ResetModelData(), SetModelDataIdx(), UpdateModelName(), and updateOrientation().

682 {
683  auto draw3D = &m_copyModule->Models();
684  draw3D->clear();
685  draw3D->insert( draw3D->end(), m_parentInfoList->begin(), m_parentInfoList->end() );
686 }
std::vector< MODULE_3D_SETTINGS > * m_parentInfoList
A pointer to the parent MODULE_3D_SETTINGS list that we will use to copy to the preview module...
MODULE * m_copyModule
A pointer to a new copy of the original module.
std::list< MODULE_3D_SETTINGS > & Models()
Definition: class_module.h:170
void PANEL_PREV_3D::UpdateModelName ( wxString const &  aModel)

Definition at line 315 of file panel_prev_model.cpp.

References currentModelFile, MODULE_3D_SETTINGS::m_Filename, m_modelInfo, m_previewPane, m_resolver, EDA_3D_CANVAS::ReloadRequest(), S3D_FILENAME_RESOLVER::ResolvePath(), and updateListOnModelCopy().

Referenced by DIALOG_MODULE_MODULE_EDITOR::Edit3DShapeFileName(), DIALOG_MODULE_BOARD_EDITOR::Edit3DShapeFileName(), and SetModelDataIdx().

316 {
317  bool newModel = false;
318 
319  m_modelInfo.m_Filename = aModelName;
320 
321  // if the model name is a directory simply clear the current model
322  if( aModelName.empty() || wxFileName::DirExists( aModelName ) )
323  {
324  currentModelFile.clear();
325  m_modelInfo.m_Filename.clear();
326  }
327  else
328  {
329  wxString newModelFile;
330 
331  if( m_resolver )
332  newModelFile = m_resolver->ResolvePath( aModelName );
333 
334  if( !newModelFile.empty() && newModelFile.Cmp( currentModelFile ) )
335  newModel = true;
336 
337  currentModelFile = newModelFile;
338  }
339 
340  if( currentModelFile.empty() || newModel )
341  {
343 
344  if( m_previewPane )
345  {
347  m_previewPane->Refresh();
348  }
349 
350  if( currentModelFile.empty() )
351  return;
352  }
353  else
354  {
355  if( m_previewPane )
356  m_previewPane->Refresh();
357  }
358 
359  if( m_previewPane )
360  m_previewPane->SetFocus();
361 
362  return;
363 }
void ReloadRequest(BOARD *aBoard=NULL, S3D_CACHE *aCachePointer=NULL)
void updateListOnModelCopy()
updateListOnModelCopy - copy the current shape list to the copy of module that is on the preview dumm...
S3D_FILENAME_RESOLVER * m_resolver
Used to get the full path name.
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
wxString m_Filename
The 3D shape filename in 3D library.
Definition: class_module.h:101
wxString ResolvePath(const wxString &aFileName)
Function ResolvePath determines the full path of the given file name.
wxString currentModelFile
Used to check if the model file was changed.
MODULE_3D_SETTINGS m_modelInfo
Current MODULE_3D_SETTINGS that is being edited.
void PANEL_PREV_3D::updateOrientation ( wxCommandEvent &  event)
overrideprivatevirtual

updateOrientation - it will receive the events from editing the fields

Parameters
event

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 366 of file panel_prev_model.cpp.

References getOrientationVars(), m_currentSelectedIdx, m_modelInfo, MODULE_3D_SETTINGS::m_Offset, m_previewPane, MODULE_3D_SETTINGS::m_Rotation, MODULE_3D_SETTINGS::m_Scale, scale, updateListOnModelCopy(), SGPOINT::x, MODULE_3D_SETTINGS::VECTOR3D::x, SGPOINT::y, MODULE_3D_SETTINGS::VECTOR3D::y, SGPOINT::z, and MODULE_3D_SETTINGS::VECTOR3D::z.

367 {
368  wxTextCtrl *textCtrl = (wxTextCtrl *)event.GetEventObject();
369 
370  if( textCtrl == NULL )
371  return;
372 
373  if( textCtrl->GetLineLength(0) == 0 ) // This will skip the got and event with empty field
374  return;
375 
376  if( textCtrl->GetLineLength(0) == 1 )
377  if( (textCtrl->GetLineText(0).compare( "." ) == 0) ||
378  (textCtrl->GetLineText(0).compare( "," ) == 0) )
379  return;
380 
381  SGPOINT scale;
382  SGPOINT rotation;
383  SGPOINT offset;
384 
385  getOrientationVars( scale, rotation, offset );
386 
387  m_modelInfo.m_Scale.x = scale.x;
388  m_modelInfo.m_Scale.y = scale.y;
389  m_modelInfo.m_Scale.z = scale.z;
390  m_modelInfo.m_Offset.x = offset.x;
391  m_modelInfo.m_Offset.y = offset.y;
392  m_modelInfo.m_Offset.z = offset.z;
393  m_modelInfo.m_Rotation.x = rotation.x;
394  m_modelInfo.m_Rotation.y = rotation.y;
395  m_modelInfo.m_Rotation.z = rotation.z;
396 
397  if( m_currentSelectedIdx >= 0 )
398  {
399  // This will update the parent list with the new data
400  (*m_parentInfoList)[m_currentSelectedIdx] = m_modelInfo;
401 
402  // It will update the copy model in the preview board
404 
405  // Since the OpenGL render does not need to be reloaded to update the
406  // shapes position, we just request to redraw again the canvas
407  if( m_previewPane )
408  m_previewPane->Refresh();
409  }
410 }
double x
Definition: sg_base.h:70
void getOrientationVars(SGPOINT &aScale, SGPOINT &aRotation, SGPOINT &aOffset)
getOrientationVars - gets the transformation from entries and validate it
double y
Definition: sg_base.h:71
int m_currentSelectedIdx
The current selected index of the MODULE_3D_SETTINGS list.
VECTOR3D m_Offset
3D model offset (mm)
Definition: class_module.h:100
void updateListOnModelCopy()
updateListOnModelCopy - copy the current shape list to the copy of module that is on the preview dumm...
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
const int scale
VECTOR3D m_Rotation
3D model rotation (degrees)
Definition: class_module.h:99
double z
Definition: sg_base.h:72
VECTOR3D m_Scale
3D model scaling factor (dimensionless)
Definition: class_module.h:98
MODULE_3D_SETTINGS m_modelInfo
Current MODULE_3D_SETTINGS that is being edited.
bool PANEL_PREV_3D::Validate ( )
inlineoverride

Definition at line 214 of file panel_prev_model.h.

References ValidateWithMessage().

215  {
216  wxString temp;
217  return ValidateWithMessage(temp);
218  }
bool ValidateWithMessage(wxString &aErrorMessage)
verify X,Y and Z scale factors are acceptable (> 0.001 and < 1000.0)
bool PANEL_PREV_3D::ValidateWithMessage ( wxString &  aErrorMessage)

verify X,Y and Z scale factors are acceptable (> 0.001 and < 1000.0)

Returns
false if one (or more) value is not acceptable.
Parameters
aErrorMessageis a wxString to store error messages, if any

Definition at line 616 of file panel_prev_model.cpp.

References Format(), MODULE_3D_SETTINGS::m_Filename, m_parentInfoList, MODULE_3D_SETTINGS::m_Scale, MAX_SCALE, scale, SGPOINT::x, MODULE_3D_SETTINGS::VECTOR3D::x, SGPOINT::y, MODULE_3D_SETTINGS::VECTOR3D::y, SGPOINT::z, and MODULE_3D_SETTINGS::VECTOR3D::z.

Referenced by DIALOG_MODULE_MODULE_EDITOR::TransferDataFromWindow(), DIALOG_MODULE_BOARD_EDITOR::TransferDataFromWindow(), and Validate().

617 {
618  bool invalidScale = false;
619 
620  for( unsigned int idx = 0; idx < m_parentInfoList->size(); ++idx )
621  {
622  wxString msg;
623  bool addError = false;
624  MODULE_3D_SETTINGS& s3dshape = (*m_parentInfoList)[idx];
625 
626  SGPOINT scale;
627  scale.x = s3dshape.m_Scale.x;
628  scale.y = s3dshape.m_Scale.y;
629  scale.z = s3dshape.m_Scale.z;
630 
631  if( 1/MAX_SCALE > scale.x || MAX_SCALE < scale.x )
632  {
633  invalidScale = true;
634  addError = true;
635  msg += _( "Invalid X scale" );
636  }
637 
638  if( 1/MAX_SCALE > scale.y || MAX_SCALE < scale.y )
639  {
640  invalidScale = true;
641  addError = true;
642 
643  if( !msg.IsEmpty() )
644  msg += "\n";
645 
646  msg += _( "Invalid Y scale" );
647  }
648 
649  if( 1/MAX_SCALE > scale.z || MAX_SCALE < scale.z )
650  {
651  invalidScale = true;
652  addError = true;
653 
654  if( !msg.IsEmpty() )
655  msg += "\n";
656 
657  msg += _( "Invalid Z scale" );
658  }
659 
660  if( addError )
661  {
662  msg.Prepend( s3dshape.m_Filename + "\n" );
663 
664  if( !aErrorMessage.IsEmpty() )
665  aErrorMessage += "\n\n";
666 
667  aErrorMessage += msg;
668  }
669  }
670 
671  if( !aErrorMessage.IsEmpty() )
672  {
673  aErrorMessage += "\n\n";
674  aErrorMessage += wxString::Format( "Min value = %.4f and max value = %.4f",
675  1/MAX_SCALE, MAX_SCALE );
676  }
677 
678  return invalidScale == false;
679 }
std::vector< MODULE_3D_SETTINGS > * m_parentInfoList
A pointer to the parent MODULE_3D_SETTINGS list that we will use to copy to the preview module...
double x
Definition: sg_base.h:70
double y
Definition: sg_base.h:71
wxString m_Filename
The 3D shape filename in 3D library.
Definition: class_module.h:101
const int scale
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
double z
Definition: sg_base.h:72
VECTOR3D m_Scale
3D model scaling factor (dimensionless)
Definition: class_module.h:98
void PANEL_PREV_3D::View3DBack ( wxCommandEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 180 of file panel_prev_model.h.

References EDA_3D_CANVAS::SetView3D().

181  {
182  m_previewPane->SetView3D( 'y' );
183  }
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
void SetView3D(int keycode)
SetView3D - Helper function to call view commands.
void PANEL_PREV_3D::View3DBottom ( wxCommandEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 185 of file panel_prev_model.h.

References EDA_3D_CANVAS::SetView3D().

186  {
187  m_previewPane->SetView3D( 'Z' );
188  }
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
void SetView3D(int keycode)
SetView3D - Helper function to call view commands.
void PANEL_PREV_3D::View3DFront ( wxCommandEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 159 of file panel_prev_model.h.

References EDA_3D_CANVAS::SetView3D().

160  {
161  m_previewPane->SetView3D( 'Y' );
162  }
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
void SetView3D(int keycode)
SetView3D - Helper function to call view commands.
void PANEL_PREV_3D::View3DISO ( wxCommandEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 148 of file panel_prev_model.h.

References CINFO3D_VISU::CameraGet(), and CCAMERA::ToggleProjection().

149  {
151  m_previewPane->Refresh();
152  }
CINFO3D_VISU * m_settings3Dviewer
The settings that will be used for this 3D viewer canvas.
void ToggleProjection()
Definition: ccamera.cpp:417
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
CCAMERA & CameraGet() const
CameraGet - get current camera in use.
Definition: cinfo3d_visu.h:210
void PANEL_PREV_3D::View3DLeft ( wxCommandEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 154 of file panel_prev_model.h.

References EDA_3D_CANVAS::SetView3D().

155  {
156  m_previewPane->SetView3D( 'X' );
157  }
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
void SetView3D(int keycode)
SetView3D - Helper function to call view commands.
void PANEL_PREV_3D::View3DRight ( wxCommandEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 175 of file panel_prev_model.h.

References EDA_3D_CANVAS::SetView3D().

176  {
177  m_previewPane->SetView3D( 'x' );
178  }
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
void SetView3D(int keycode)
SetView3D - Helper function to call view commands.
void PANEL_PREV_3D::View3DTop ( wxCommandEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 164 of file panel_prev_model.h.

References EDA_3D_CANVAS::SetView3D().

165  {
166  m_previewPane->SetView3D( 'z' );
167  }
EDA_3D_CANVAS * m_previewPane
The 3D canvas.
void SetView3D(int keycode)
SetView3D - Helper function to call view commands.
void PANEL_PREV_3D::View3DUpdate ( wxCommandEvent &  event)
inlineoverrideprivatevirtual

Reimplemented from PANEL_PREV_3D_BASE.

Definition at line 169 of file panel_prev_model.h.

References EDA_3D_CANVAS::ReloadRequest().

170  {
172  m_previewPane->Refresh();
173  }
void ReloadRequest(BOARD *aBoard=NULL, S3D_CACHE *aCachePointer=NULL)
EDA_3D_CANVAS * m_previewPane
The 3D canvas.

Member Data Documentation

wxString PANEL_PREV_3D::currentModelFile
private

Used to check if the model file was changed.

Definition at line 83 of file panel_prev_model.h.

Referenced by initPanel(), and UpdateModelName().

wxBitmapButton* PANEL_PREV_3D_BASE::m_bpUpdate
protectedinherited
wxBitmapButton* PANEL_PREV_3D_BASE::m_bpvBack
protectedinherited
wxBitmapButton* PANEL_PREV_3D_BASE::m_bpvBottom
protectedinherited
wxBitmapButton* PANEL_PREV_3D_BASE::m_bpvFront
protectedinherited
wxBitmapButton* PANEL_PREV_3D_BASE::m_bpvISO
protectedinherited
wxBitmapButton* PANEL_PREV_3D_BASE::m_bpvLeft
protectedinherited
wxBitmapButton* PANEL_PREV_3D_BASE::m_bpvRight
protectedinherited
wxBitmapButton* PANEL_PREV_3D_BASE::m_bpvTop
protectedinherited
MODULE* PANEL_PREV_3D::m_copyModule
private

A pointer to a new copy of the original module.

Definition at line 96 of file panel_prev_model.h.

Referenced by PANEL_PREV_3D(), and updateListOnModelCopy().

int PANEL_PREV_3D::m_currentSelectedIdx
private

The current selected index of the MODULE_3D_SETTINGS list.

Definition at line 102 of file panel_prev_model.h.

Referenced by initPanel(), ResetModelData(), SetModelDataIdx(), and updateOrientation().

BOARD* PANEL_PREV_3D::m_dummyBoard
private

A dummy board used to store the copy moduled.

Definition at line 90 of file panel_prev_model.h.

Referenced by initPanel(), PANEL_PREV_3D(), and ~PANEL_PREV_3D().

wxFlexGridSizer* PANEL_PREV_3D_BASE::m_fgSizerButtons
protectedinherited

Definition at line 70 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

MODULE_3D_SETTINGS PANEL_PREV_3D::m_modelInfo
private

Current MODULE_3D_SETTINGS that is being edited.

Definition at line 105 of file panel_prev_model.h.

Referenced by UpdateModelName(), and updateOrientation().

std::vector<MODULE_3D_SETTINGS>* PANEL_PREV_3D::m_parentInfoList
private

A pointer to the parent MODULE_3D_SETTINGS list that we will use to copy to the preview module.

Definition at line 99 of file panel_prev_model.h.

Referenced by PANEL_PREV_3D(), SetModelDataIdx(), updateListOnModelCopy(), and ValidateWithMessage().

EDA_3D_CANVAS* PANEL_PREV_3D::m_previewPane
private
S3D_FILENAME_RESOLVER* PANEL_PREV_3D::m_resolver
private

Used to get the full path name.

Definition at line 84 of file panel_prev_model.h.

Referenced by initPanel(), PANEL_PREV_3D(), and UpdateModelName().

CINFO3D_VISU* PANEL_PREV_3D::m_settings3Dviewer
private

The settings that will be used for this 3D viewer canvas.

Definition at line 93 of file panel_prev_model.h.

Referenced by PANEL_PREV_3D(), and ~PANEL_PREV_3D().

wxBoxSizer* PANEL_PREV_3D_BASE::m_SizerPanelView
protectedinherited

Definition at line 69 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D(), and PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxSpinButton* PANEL_PREV_3D_BASE::m_spinXoffset
protectedinherited
wxSpinButton* PANEL_PREV_3D_BASE::m_spinXrot
protectedinherited
wxSpinButton* PANEL_PREV_3D_BASE::m_spinXscale
protectedinherited
wxSpinButton* PANEL_PREV_3D_BASE::m_spinYoffset
protectedinherited
wxSpinButton* PANEL_PREV_3D_BASE::m_spinYrot
protectedinherited
wxSpinButton* PANEL_PREV_3D_BASE::m_spinYscale
protectedinherited
wxSpinButton* PANEL_PREV_3D_BASE::m_spinZoffset
protectedinherited
wxSpinButton* PANEL_PREV_3D_BASE::m_spinZrot
protectedinherited
wxSpinButton* PANEL_PREV_3D_BASE::m_spinZscale
protectedinherited
wxStaticText* PANEL_PREV_3D_BASE::m_staticText1
protectedinherited

Definition at line 42 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxStaticText* PANEL_PREV_3D_BASE::m_staticText11
protectedinherited

Definition at line 51 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxStaticText* PANEL_PREV_3D_BASE::m_staticText12
protectedinherited

Definition at line 61 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxStaticText* PANEL_PREV_3D_BASE::m_staticText2
protectedinherited

Definition at line 45 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxStaticText* PANEL_PREV_3D_BASE::m_staticText21
protectedinherited

Definition at line 54 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxStaticText* PANEL_PREV_3D_BASE::m_staticText22
protectedinherited

Definition at line 64 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxStaticText* PANEL_PREV_3D_BASE::m_staticText3
protectedinherited

Definition at line 48 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxStaticText* PANEL_PREV_3D_BASE::m_staticText31
protectedinherited

Definition at line 57 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxStaticText* PANEL_PREV_3D_BASE::m_staticText32
protectedinherited

Definition at line 66 of file panel_prev_3d_base.h.

Referenced by PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().

wxStaticBoxSizer* PANEL_PREV_3D_BASE::vbOffset
protectedinherited

Definition at line 60 of file panel_prev_3d_base.h.

Referenced by initPanel(), and PANEL_PREV_3D_BASE::PANEL_PREV_3D_BASE().


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