Sketcher: Grid rework. Include:
- Adding 'auto spacing' option.
- Drawing grid dynamically on viewer area only.
- Moving code to coinManager.
- Adding a 'grid tool' to sketcher-edit-mode toolbar.
This commit is contained in:
@@ -57,6 +57,14 @@
|
||||
#include "ViewProviderSketch.h"
|
||||
#include "ViewProviderSketchCoinAttorney.h"
|
||||
|
||||
#include "EditModeGridCoinManager.h"
|
||||
|
||||
#include "EditModeGeometryCoinManager.h"
|
||||
#include "EditModeConstraintCoinManager.h"
|
||||
|
||||
#include "EditModeCoinManager.h"
|
||||
|
||||
#include "Utils.h"
|
||||
|
||||
using namespace SketcherGui;
|
||||
using namespace Sketcher;
|
||||
@@ -342,6 +350,9 @@ EditModeCoinManager::EditModeCoinManager(ViewProviderSketch &vp):viewProvider(vp
|
||||
analysisResults,
|
||||
editModeScenegraphNodes,
|
||||
coinMapping);
|
||||
|
||||
pEditModeGridCoinManager = std::make_unique<EditModeGridCoinManager>( viewProvider,
|
||||
editModeScenegraphNodes);
|
||||
// Create Edit Mode Scenograph
|
||||
createEditModeInventorNodes();
|
||||
|
||||
@@ -573,8 +584,6 @@ void EditModeCoinManager::processGeometryConstraintsInformationOverlay(const Geo
|
||||
|
||||
updateAxesLength();
|
||||
|
||||
updateGridExtent();
|
||||
|
||||
pEditModeConstraintCoinManager->processConstraints(geolistfacade);
|
||||
}
|
||||
|
||||
@@ -613,13 +622,6 @@ void EditModeCoinManager::updateAxesLength()
|
||||
editModeScenegraphNodes.RootCrossCoordinate->point.set1Value(3,SbVec3f(0.0f, analysisResults.boundingBoxMagnitudeOrder, zCrossH));
|
||||
}
|
||||
|
||||
void EditModeCoinManager::updateGridExtent()
|
||||
{
|
||||
float dMagF = analysisResults.boundingBoxMagnitudeOrder;
|
||||
|
||||
ViewProviderSketchCoinAttorney::updateGridExtent(viewProvider,-dMagF, dMagF, -dMagF, dMagF);
|
||||
}
|
||||
|
||||
void EditModeCoinManager::updateColor()
|
||||
{
|
||||
auto geolistfacade = ViewProviderSketchCoinAttorney::getGeoListFacade(viewProvider);
|
||||
@@ -657,6 +659,14 @@ void EditModeCoinManager::createEditModeInventorNodes()
|
||||
ViewProviderSketchCoinAttorney::addNodeToRoot(viewProvider, editModeScenegraphNodes.EditRoot);
|
||||
editModeScenegraphNodes.EditRoot->renderCaching = SoSeparator::OFF ;
|
||||
|
||||
// Create Grid Coin nodes ++++++++++++++++++++++++++++++++++++++++++
|
||||
editModeScenegraphNodes.GridRoot = new SoSeparator();
|
||||
editModeScenegraphNodes.GridRoot->ref();
|
||||
editModeScenegraphNodes.GridRoot->setName("GridRoot");
|
||||
editModeScenegraphNodes.EditRoot->addChild(editModeScenegraphNodes.GridRoot);
|
||||
if (viewProvider.ShowGrid.getValue())
|
||||
pEditModeGridCoinManager->createGrid();
|
||||
|
||||
// Create Geometry Coin nodes ++++++++++++++++++++++++++++++++++++++
|
||||
pEditModeGeometryCoinManager->createEditModeInventorNodes();
|
||||
|
||||
@@ -804,6 +814,13 @@ void EditModeCoinManager::updateVirtualSpace()
|
||||
pEditModeConstraintCoinManager->updateVirtualSpace();
|
||||
}
|
||||
|
||||
void EditModeCoinManager::drawGrid(bool cameraUpdate) {
|
||||
if (viewProvider.ShowGrid.getValue())
|
||||
pEditModeGridCoinManager->createGrid(cameraUpdate);
|
||||
else
|
||||
Gui::coinRemoveAllChildren(editModeScenegraphNodes.GridRoot);
|
||||
}
|
||||
|
||||
/************************ Resizing of coin nodes ************************/
|
||||
|
||||
int EditModeCoinManager::defaultApplicationFontSizePixels() const {
|
||||
|
||||
Reference in New Issue
Block a user