@@ -127,10 +127,16 @@ ViewOptions3DPoints::ViewOptions3DPoints(wxWindow* parent, wxWindowID id)
127127 FlexGridSizer3->Add (
128128 cbOnlyPointsWithColor, 1 , wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5 );
129129
130- rbColorByAxis = new wxRadioBox (
131- this , ID_RADIOBOX1, _ (" Otherwise, color from: " ), wxDefaultPosition, wxDefaultSize, 4 ,
132- __wxRadioBoxChoices_1, 1 , 0 , wxDefaultValidator, _T (" ID_RADIOBOX1" ));
133- FlexGridSizer3->Add (rbColorByAxis, 1 , wxEXPAND, 5 );
130+ const wxString colorOptions[] = {" x" , " y" , " z" , " i" , " intensity" , " ambient" ,
131+ " r" , " t" , " time" , " timestamp" , " reflectivity" };
132+
133+ cbColorByAxis = new wxComboBox (
134+ this , ID_RADIOBOX1, _ (" Otherwise, color from:" ), wxDefaultPosition, wxDefaultSize,
135+ WXSIZEOF (colorOptions), colorOptions,
136+ wxCB_READONLY, // prevents typing arbitrary values
137+ wxDefaultValidator, _T (" ID_COMBOBOX_COLORBY" ));
138+
139+ FlexGridSizer3->Add (cbColorByAxis, 1 , wxEXPAND, 5 );
134140 wxString __wxRadioBoxChoices_2[3 ] = {_ (" cmGRAYSCALE" ), _ (" cmJET" ), _ (" cmHOT" )};
135141 RadioBox1 = new wxRadioBox (
136142 this , ID_RADIOBOX2, _ (" Color map" ), wxDefaultPosition, wxDefaultSize, 3 ,
@@ -215,7 +221,7 @@ ViewOptions3DPoints::ViewOptions3DPoints(wxWindow* parent, wxWindowID id)
215221 Bind (wxEVT_BUTTON, &Me::OnbtnApplyClick, this , ID_BUTTON1);
216222 Bind (wxEVT_CHECKBOX, &Me::OnbtnApplyClick, this , ID_CHECKBOX1);
217223 Bind (wxEVT_CHECKBOX, &Me::OnbtnApplyClick, this , ID_CHECKBOX2);
218- Bind (wxEVT_RADIOBOX , &Me::OnbtnApplyClick, this , ID_RADIOBOX1);
224+ Bind (wxEVT_COMBOBOX , &Me::OnbtnApplyClick, this , ID_RADIOBOX1);
219225 Bind (wxEVT_RADIOBOX, &Me::OnbtnApplyClick, this , ID_RADIOBOX2);
220226 Bind (wxEVT_CHECKBOX, &Me::OnbtnApplyClick, this , ID_CHECKBOX3);
221227 Bind (wxEVT_SPINCTRL, &Me::OnbtnApplyClick, this , ID_SPINCTRL1);
@@ -245,7 +251,8 @@ void ParametersView3DPoints::to_UI(ViewOptions3DPoints& ui) const
245251 ui.edTickTextSize ->SetValue (wxString::Format (" %.03f" , axisTickTextSize));
246252
247253 ui.cbColorFromRGB ->SetValue (colorFromRGBimage);
248- ui.rbColorByAxis ->SetSelection (colorizeByAxis);
254+ ui.cbColorByAxis ->SetValue (colorizeByField);
255+
249256 ui.cbInvertColormap ->SetValue (invertColorMapping);
250257
251258 ui.RadioBox1 ->SetSelection (static_cast <int >(colorMap));
@@ -275,7 +282,7 @@ void ParametersView3DPoints::from_UI(const ViewOptions3DPoints& ui)
275282
276283 colorFromRGBimage = ui.cbColorFromRGB ->IsChecked ();
277284
278- colorizeByAxis = ui.rbColorByAxis -> GetSelection ();
285+ colorizeByField = ui.cbColorByAxis -> GetValue ();
279286
280287 invertColorMapping = ui.cbInvertColormap ->IsChecked ();
281288
0 commit comments