public preferencesForm(BaseTypes.Settings settings) { // // Required for Windows Form Designer support // InitializeComponent(); localSettingsInstance=new FinalApp1.BaseTypes.Settings(); InitializeValues(settings); // // TODO: Add any constructor code after InitializeComponent call // }
//OK //Event handling private void InitializeValues(BaseTypes.Settings settings) { localSettingsInstance = settings; this.neuralNetworksInitialLearningDurationTB.Text=Convert.ToString(settings.neuralNetworkTrainingIterations); this.trainingRateTB.Text=Convert.ToString(settings.neuralNetworkTrainingRate); this.maxWeightTB.Text=Convert.ToString(settings.neuralNetworkMaximumWeight); this.minWeightTB.Text=Convert.ToString(settings.neuralNetworkMinimumWeight); this.hiddenLayersCountTB.Text=Convert.ToString(settings.neuralNetworkHiddenLayersCount); this.hiddenLayersSizeTB.Text=Convert.ToString(settings.neuralNetworkHiddenLayersSize); this.scalingFactorTB.Text=Convert.ToString(settings.viewportXYScalingFactor); this.horizontalResTB.Text=Convert.ToString(settings.viewportXYHorizontalRes); this.verticalResTB.Text=Convert.ToString(settings.viewportXYVerticalRes); this.scanAreaOffsetTB.Text=Convert.ToString(settings.scanAreaOffset); this.preciseAcceptanceThresholdTB.Text=Convert.ToString(settings.preciseAcceptanceThreshold); this.frameIteratorTB.Text=Convert.ToString(settings.frameIterator); this.minimumTrackingPointRadiusTB.Text=Convert.ToString(settings.minimumOrientPointRadius); this.maximumTrackingPointRadiusTB.Text=Convert.ToString(settings.maximumOrientPointRadius); if (settings.viewportXYScalingType==BaseTypes.scalingType.Native) this.keepNativeSizeRB.Checked=true; else if (settings.viewportXYScalingType==BaseTypes.scalingType.ScaleBy) this.scaleByRB.Checked=true; else this.customResolutionRB.Checked=true; }
//handles closing project (to re-implement) private void CloseCurrentProject() { if (app_status.GetStatus()>=_app_status.project_active) { saveQuery(); trackingPoints=null; projectSettings=null; viewportXY.Dispose(); viewportXZ.Dispose(); viewportYZ.Dispose(); tempTrackingPoint=null; tf=null; trackingPointsBasicInfo=null; trackingPoints=null; totalTrackingPoints=0; trackingHist = null; viewportXY=null; viewportXZ=null; viewportYZ=null; trackingPointsLB.Items.Clear(); app_status.SetStatus(_app_status.started); } else Message("No active project detected"); }
//handles preferences window (dialog) private void OpenPreferences() { if (projectSettings!=null) using (preferencesForm xForm = new preferencesForm(projectSettings)) { Message("Opening preferences window..."); if (xForm.ShowDialog(this)==DialogResult.OK) { //if ( (projectSettings.viewportXYScalingType!=xForm.localSettingsInstance.viewportXYScalingType) || // (projectSettings.viewportXZScalingType!=xForm.localSettingsInstance.viewportXZScalingType) || // (projectSettings.viewportYZScalingType!=xForm.localSettingsInstance.viewportYZScalingType) ) //{ //TU MA BYÆ OSTRZE¯ENIE O RESKALOWANIU!!! viewportXY.Dispose(); viewportXZ.Dispose(); viewportYZ.Dispose(); InitializeViewports(); if (xForm.localSettingsInstance.viewportXYScalingType==BaseTypes.scalingType.Custom) viewportXY.loadMedia(xForm.localSettingsInstance.viewportXYFileName,(int)xForm.localSettingsInstance.viewportXYHorizontalRes,(int)xForm.localSettingsInstance.viewportXYVerticalRes); else if (xForm.localSettingsInstance.viewportXYScalingType==BaseTypes.scalingType.ScaleBy) viewportXY.loadMedia(xForm.localSettingsInstance.viewportXYFileName,xForm.localSettingsInstance.viewportXYScalingFactor); else viewportXY.loadMedia(xForm.localSettingsInstance.viewportXYFileName); if (xForm.localSettingsInstance.viewportXZScalingType==BaseTypes.scalingType.Custom) viewportXZ.loadMedia(xForm.localSettingsInstance.viewportXZFileName,(int)xForm.localSettingsInstance.viewportXZHorizontalRes,(int)xForm.localSettingsInstance.viewportXZVerticalRes); else if (xForm.localSettingsInstance.viewportXZScalingType==BaseTypes.scalingType.ScaleBy) viewportXZ.loadMedia(xForm.localSettingsInstance.viewportXZFileName,xForm.localSettingsInstance.viewportXZScalingFactor); else viewportXZ.loadMedia(xForm.localSettingsInstance.viewportXZFileName); if (xForm.localSettingsInstance.viewportYZScalingType==BaseTypes.scalingType.Custom) viewportYZ.loadMedia(xForm.localSettingsInstance.viewportYZFileName,(int)xForm.localSettingsInstance.viewportYZHorizontalRes,(int)xForm.localSettingsInstance.viewportYZVerticalRes); else if (xForm.localSettingsInstance.viewportYZScalingType==BaseTypes.scalingType.ScaleBy) viewportYZ.loadMedia(xForm.localSettingsInstance.viewportYZFileName,xForm.localSettingsInstance.viewportYZScalingFactor); else viewportYZ.loadMedia(xForm.localSettingsInstance.viewportYZFileName); projectSettings=xForm.localSettingsInstance; viewportXY.setStartFrame(projectSettings.viewportXYStartFrame); viewportXZ.setStartFrame(projectSettings.viewportXZStartFrame); viewportYZ.setStartFrame(projectSettings.viewportYZStartFrame); viewportXY.capMode(); viewportXZ.capMode(); viewportYZ.capMode(); visualizePoints(); } Message("Updating preferences complete"); projectSaved=false; } else Message("No project active - load or create new project first"); }
//handles loading project private void LoadProject() { Message("Loading project"); loadProjectD.Filter = "Motion capture project files (*.mcp)|*.mcp"; if((loadProjectD.ShowDialog() == System.Windows.Forms.DialogResult.OK) && (loadProjectD.FileName!="")) { if (viewportXY!=null || viewportXZ!=null || viewportYZ!=null) CloseCurrentProject(); InitializeSettings("temp"); IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(loadProjectD.FileName, FileMode.Open, FileAccess.Read, FileShare.Read); projectSettings = new BaseTypes.Settings(); projectSettings= (BaseTypes.Settings)formatter.Deserialize(stream); stream.Close(); InitializeViewports(); trackingPoints = new ArrayList(); app_status.SetStatus(_app_status.project_active); if (projectSettings.viewportXYScalingType==BaseTypes.scalingType.Custom) viewportXY.loadMedia(projectSettings.viewportXYFileName,(int)projectSettings.viewportXYHorizontalRes,(int)projectSettings.viewportXYVerticalRes); else if (projectSettings.viewportXYScalingType==BaseTypes.scalingType.ScaleBy) viewportXY.loadMedia(projectSettings.viewportXYFileName,projectSettings.viewportXYScalingFactor); else viewportXY.loadMedia(projectSettings.viewportXYFileName); if (projectSettings.viewportXZScalingType==BaseTypes.scalingType.Custom) viewportXZ.loadMedia(projectSettings.viewportXZFileName,(int)projectSettings.viewportXZHorizontalRes,(int)projectSettings.viewportXZVerticalRes); else if (projectSettings.viewportXZScalingType==BaseTypes.scalingType.ScaleBy) viewportXZ.loadMedia(projectSettings.viewportXZFileName,projectSettings.viewportXZScalingFactor); else viewportXZ.loadMedia(projectSettings.viewportXZFileName); if (projectSettings.viewportYZScalingType==BaseTypes.scalingType.Custom) viewportYZ.loadMedia(projectSettings.viewportYZFileName,(int)projectSettings.viewportYZHorizontalRes,(int)projectSettings.viewportYZVerticalRes); else if (projectSettings.viewportYZScalingType==BaseTypes.scalingType.ScaleBy) viewportYZ.loadMedia(projectSettings.viewportYZFileName,projectSettings.viewportYZScalingFactor); else viewportYZ.loadMedia(projectSettings.viewportYZFileName); viewportXY.setStartFrame(projectSettings.viewportXYStartFrame); viewportXZ.setStartFrame(projectSettings.viewportXZStartFrame); viewportYZ.setStartFrame(projectSettings.viewportYZStartFrame); viewportXY.grayscale=projectSettings.viewportXYGreyScale; viewportXY.brightnessCorrection=projectSettings.viewportXYBrightnessCorrectionValue; viewportXY.contrastCorrection=projectSettings.viewportXYContrastCorrectionValue; viewportXZ.grayscale=projectSettings.viewportXZGreyScale; viewportXZ.brightnessCorrection=projectSettings.viewportXZBrightnessCorrectionValue; viewportXZ.contrastCorrection=projectSettings.viewportXZContrastCorrectionValue; viewportYZ.grayscale=projectSettings.viewportYZGreyScale; viewportYZ.brightnessCorrection=projectSettings.viewportYZBrightnessCorrectionValue; viewportYZ.contrastCorrection=projectSettings.viewportYZContrastCorrectionValue; app_status.SetStatus(_app_status.viewports_ready); if (File.Exists(loadProjectD.FileName+"th")) { formatter = new BinaryFormatter(); stream = new FileStream(loadProjectD.FileName+"th", FileMode.Open, FileAccess.Read, FileShare.Read); trackingHist = new BaseTypes.trackingHistory(); trackingHist= (BaseTypes.trackingHistory)formatter.Deserialize(stream); stream.Close(); foreach (BaseTypes.trackingPointLite tpp in trackingHist.initialTrackingPointsSet) { trackingPoint tempTrackingPoint = new trackingPoint(tpp.pName,tpp.xyCoordX,tpp.xyCoordY,tpp.xzCoordX,tpp.xzCoordZ,tpp.yzCoordY,tpp.yzCoordZ,tpp.xyRadius,tpp.xzRadius,tpp.yzRadius, tpp.pColor); trackingPoints.Add(tempTrackingPoint); if (trackingPointsBasicInfo==null) trackingPointsBasicInfo = new ArrayList(); trackingPointsBasicInfo.Add(tpp); } vprtsChngMode(); //visualizePoints() doesn't work in playback mode visualizePoints(); trackingPointsLB.Items.Clear(); foreach (trackingPoint tp in trackingPoints) trackingPointsLB.Items.Add(tp.PName); app_status.SetStatus(_app_status.distance_calibrated); app_status.SetStatus(_app_status.points_defined); } else if (projectSettings.viewportXY1pxDistance!=-1 && projectSettings.viewportXZ1pxDistance!=-1 && projectSettings.viewportYZ1pxDistance!=-1) app_status.SetStatus(_app_status.distance_calibrated); this.Text="LW3d Motion Capture Utility : "+projectSettings.projectName; Message("New project loaded: "+loadProjectD.FileName); } else Message("New project aborted"); }
//create and initialize new settings object private int InitializeSettings(string projectName) { projectSettings = new BaseTypes.Settings(); projectSettings.projectName=projectName; projectSettings.viewportXY1pxDistance=-1; projectSettings.viewportXZ1pxDistance=-1; projectSettings.viewportYZ1pxDistance=-1; projectSettings.neuralNetworkHiddenLayersCount=2; projectSettings.neuralNetworkHiddenLayersSize=80; projectSettings.neuralNetworkMaximumWeight=4; projectSettings.neuralNetworkMinimumWeight=-4; projectSettings.neuralNetworkTrainingIterations=2300; projectSettings.neuralNetworkTrainingRate=0.1; projectSettings.frameIterator=1; projectSettings.defaultRadius=4; projectSettings.viewportXYBrightnessCorrectionValue=0; projectSettings.viewportXYContrastCorrectionValue=0; projectSettings.viewportXYFileName=null; projectSettings.viewportXYGreyScale=false; projectSettings.viewportXYHorizontalRes=320; projectSettings.viewportXYScalingFactor=100; projectSettings.viewportXYScalingType=BaseTypes.scalingType.Native; projectSettings.viewportXYStartFrame=0; projectSettings.viewportXYVerticalRes=240; projectSettings.viewportXZBrightnessCorrectionValue=0; projectSettings.viewportXZContrastCorrectionValue=0; projectSettings.viewportXZFileName=null; projectSettings.viewportXZGreyScale=false; projectSettings.viewportXZHorizontalRes=320; projectSettings.viewportXZScalingFactor=100; projectSettings.viewportXZScalingType=BaseTypes.scalingType.Native; projectSettings.viewportXZStartFrame=0; projectSettings.viewportXZVerticalRes=240; projectSettings.viewportYZBrightnessCorrectionValue=0; projectSettings.viewportYZContrastCorrectionValue=0; projectSettings.viewportYZFileName=null; projectSettings.viewportYZGreyScale=false; projectSettings.viewportYZHorizontalRes=320; projectSettings.viewportYZScalingFactor=100; projectSettings.viewportYZScalingType=BaseTypes.scalingType.Native; projectSettings.viewportYZStartFrame=0; projectSettings.viewportYZVerticalRes=240; projectSettings.minimumOrientPointRadius=4; projectSettings.maximumOrientPointRadius=25; projectSettings.scanAreaOffset=10; projectSettings.preciseAcceptanceThreshold=80; projectSettings.fineAcceptanceThreshold=60; projectSettings.lowAcceptanceThreshold=50; this.Text="LW3d Motion Capture Utility : "+projectName; return 1; }