Exemplo n.º 1
0
MainFrame::MainFrame(void):QMainWindow(0)
{
	setupUi(this);
	displayMode = AIS_DisplayMode::AIS_WireFrame;
	this->setWindowIconText("AsmPlan");
	myViewer = new Viewer(this);
	myViewer->setFocus();

	setCentralWidget(myViewer);
	connect(actionEXIT, SIGNAL(triggered()),this,SLOT(Exit()));
	connect(actionSTEP, SIGNAL(triggered()),this,SLOT(ImportStep()));
	connect(actionABOUT, SIGNAL(triggered()),this,SLOT(about()));
	connect(actionSTEPBack, SIGNAL(triggered()),this,SLOT(StepBack()));
	connect(actionPlayBack, SIGNAL(triggered()),this,SLOT(PlayBack()));
	connect(actionStop, SIGNAL(triggered()),this,SLOT(Stop()));
	connect(actionNextStep, SIGNAL(triggered()),this,SLOT(NextStep()));
	connect(actionPlayFoward, SIGNAL(triggered()),this,SLOT(PlayFoward()));
	connect(actionFoto, SIGNAL(triggered()),this,SLOT(ExportPhoto()));
	connect(actionDBGShow, SIGNAL(triggered()),this,SLOT(DBGShow()));
	connect(myViewer, SIGNAL(contextMenuSignal(const QPoint &)), this, SLOT(contextMenu(const QPoint &)));
	connect(actionViewMode, SIGNAL(triggered()), this, SLOT(ViewModeChanged()));
	connect(action_AssemlyInfoRequest, SIGNAL(triggered()), this, SLOT(ShowAssemblyInfo()));
	connect(action_SetFrameDisplayMode, SIGNAL(triggered()), this, SLOT(SetWireFrameMode()));
	connect(action_SetShadedDisplayMode, SIGNAL(triggered()), this, SLOT(SetShadedMode()));
	connect(action_ShowFullProduct, SIGNAL(triggered()), this, SLOT(ShowFullProduct()));
	connect(action_HideDisassembled, SIGNAL(triggered()), this, SLOT(HideDisaasembledPart()));


	//Test panel functions
	connect(action_ContactTest, SIGNAL(triggered()), this, SLOT(TestContactSpotVerbose()));
	connect(action_PointOnFace, SIGNAL(triggered()), this, SLOT(TestPointOnPart()));
	connect(action_FaceTrait, SIGNAL(triggered()), this, SLOT(TestSpartialDesc()));
	connect(action_PartIso, SIGNAL(triggered()), this, SLOT(TestIsoFaceForPart()));
	connect(action_DBGTime, SIGNAL(triggered()), this, SLOT(TestDBGTime()));
	connect(actionPartGraph, SIGNAL(triggered()), this, SLOT(PartGraph()));
	connect(actionBodyDescriptor, SIGNAL(triggered()), this, SLOT(TestBodyDescriptor()));
	connect(action_VoxelGeneration, SIGNAL(triggered()), this, SLOT(TestVoxelGeneration()));

}
Exemplo n.º 2
0
//
// TBuf::NextToken
//
// Reads the next token into 'dest'. Skips any preceeding spaces, 
// stopping when either a space, a punctuation char, or end of data
// occurs.  Generates an error if token exceeds max token length.
//
// Returns :
// 
//  TR_OK   - if token was read with no problems
//  TR_PUN  - if punctuation char was found
//  TR_EOF  - if end of data reached
//
TBufResult TBuf::NextToken()
{
  ASSERT(setup);

  U8 c;
  U32 tokenLen = 0;
  char *sPtr;

  // Have we peeked at the next token
  if (peekState == PS_ON)
  {
    peekState = PS_OFF;
    Utils::Strcpy(prevToken, lastToken);
    Utils::Strcpy(lastToken, peekToken);
    return (peekVal);
  }

  // Setup peek operation
  if (peekState == PS_PRE)
  {
    // Store next token in peek buffer
    sPtr = peekToken;

    // We are now in peek mode
    peekState = PS_ON;
  }
  else
  { 
    // Save previous token
    Utils::Strcpy(prevToken, lastToken);
  
    // Store next token in last token buffer
    sPtr = lastToken;
  }

  // Clear token buffer
  *sPtr = '\0';

  // Read next token
  for (;;)
  {
    // Have we reached the end of the data
    if (!NextChar(&c))
    {
      // Return token if we have one
      return (tokenLen ? TR_OK : TR_EOF);
    }

    // Finish reading constant
    if (constantOn && c == constantChar)
    { 
      constantOn = FALSE;
    }
   
    // Ignore these checks if reading a constant
    if (!constantOn)
    {
      // What char have we got
      if ((c == TBUF_CH_SPACE) || (c == TBUF_CH_EOL))
      {
        // Have we read a token
        if (tokenLen)
        {
          return (TR_OK);
        }

        // Ignore this character
        continue;
      }

      // Check for punctuation
      if (CharType(c) == PUNCTUATION)
      {
        // Haven't read anything yet
        if (!tokenLen)
        {
          sPtr[0] = c;
          sPtr[1] = '\0';
          return(TR_PUN);
        }

        // Successfully read a token
        StepBack();
        return(TR_OK);
      }
    }

    // Add this char to the current token
    if (tokenLen < TBUF_MAX_TOKEN - 1)
    {
      sPtr[tokenLen++] = c;
      sPtr[tokenLen] = '\0';
    }
    else
    {
      TokenError("maximum token length [%d bytes] exceeded", TBUF_MAX_TOKEN-1);
    }
  }
}
QmitkActiveSurfaceToolGUI::QmitkActiveSurfaceToolGUI()
:QmitkToolGUI()
{
	//std::cout << "hi from " << __FUNCSIG__ << std::endl;
	// create the visible widgets
	QBoxLayout* verticalLayout = new QVBoxLayout( this );

	m_HorizontalLayout = new QHBoxLayout();
	verticalLayout->addLayout(m_HorizontalLayout);
	m_HorizontalLayout1 = new QHBoxLayout();
	verticalLayout->addLayout(m_HorizontalLayout1);
	m_HorizontalLayout2 = new QHBoxLayout();
	verticalLayout->addLayout(m_HorizontalLayout2);

	m_SelectSurfaceBox = new QComboBox();
	m_HorizontalLayout->addWidget(m_SelectSurfaceBox);
	connect(m_SelectSurfaceBox, SIGNAL(activated(int)), this, SLOT(SelectSurface(int)));

	m_PbtnSelectSurfaceViaMouse = new QPushButton();
	QIcon icn_OpenFile;
	icn_OpenFile.addFile(":/threeDEditing/res/threeDEditing/mousepointer.png");
	m_PbtnSelectSurfaceViaMouse->setIcon(icn_OpenFile);
	m_PbtnSelectSurfaceViaMouse->setFixedSize(22,22);
	m_HorizontalLayout->addWidget(m_PbtnSelectSurfaceViaMouse);
	connect(m_PbtnSelectSurfaceViaMouse, SIGNAL(clicked()), this, SLOT(SelectSurfaceViaMouse()));
	
	m_PbtnReinitSelection = new QPushButton();
	m_PbtnReinitSelection->setText("Reinit Selection");
	m_PbtnReinitSelection->setCheckable(true);
	m_HorizontalLayout1->addWidget(m_PbtnReinitSelection);
	connect(m_PbtnReinitSelection, SIGNAL(clicked()), this, SLOT(ReinitSelection()));

	m_PbtnJumpToPosition = new QPushButton();
	m_PbtnJumpToPosition->setText("Jump to Position");
	m_PbtnJumpToPosition->setCheckable(true);
	m_HorizontalLayout1->addWidget(m_PbtnJumpToPosition);
	connect(m_PbtnJumpToPosition, SIGNAL(clicked()), this, SLOT(JumpToPosition()));

	QLabel* label = new QLabel( "Radius", this );
	QFont f = label->font();
	f.setBold(false);
	label->setFont( f );
	m_HorizontalLayout2->addWidget(label);

	m_RadiusSlider = new QSlider(Qt::Horizontal);
	m_RadiusSlider->setSliderPosition(20);
	m_HorizontalLayout2->addWidget(m_RadiusSlider);
	QObject::connect(m_RadiusSlider, SIGNAL(sliderMoved(int)), this, SLOT(RadiusChanged(int)));


	// Tool Specific
	QBoxLayout* horizontalLayout3 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout3);
	QBoxLayout* horizontalLayout4 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout4);
	QBoxLayout* horizontalLayout5 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout5);
	QBoxLayout* horizontalLayout6 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout6);
	QBoxLayout* horizontalLayout7 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout7);
	QBoxLayout* horizontalLayout8 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout8);
	QBoxLayout* horizontalLayout9 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout9);
	QBoxLayout* horizontalLayout10 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout10);
	QBoxLayout* horizontalLayout11 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout11);
	QBoxLayout* horizontalLayout12 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout12);
	QBoxLayout* horizontalLayout13 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout13);
	QBoxLayout* horizontalLayout14 = new QHBoxLayout();
	verticalLayout->addLayout(horizontalLayout14);

	QFrame *frame = new QFrame( this );
	frame->setFrameStyle( QFrame::Box | QFrame::Plain );
	frame->setLineWidth(10);
	frame->setFixedSize(200,10);
	QColor color(214,247,202);
	QPalette colorPalette(color);
	colorPalette.setColor(QPalette::Foreground, color);
	frame->setPalette(colorPalette);
	horizontalLayout3->addWidget(frame);

	QLabel* label2 = new QLabel( "Select feature image:", this );
	QFont f2 = label2->font();
	f2.setBold(false);
	label2->setFont( f2 );
	horizontalLayout4->addWidget(label2);

	m_SelectImageBox = new QComboBox();
	horizontalLayout5->addWidget(m_SelectImageBox);
	connect(m_SelectImageBox, SIGNAL(activated(int)), this, SLOT(SelectImage(int)));

	QLabel* label3 = new QLabel( "Set seed point bubble\n(left click):\nRemove bubble\n(shift + left click)", this );
	QFont f3 = label3->font();
	f3.setPointSize(7);
	f3.setBold(false);
	label3->setFont( f3 );
	horizontalLayout6->addWidget(label3);

	QPushButton* pbtn_RemoveBubble = new QPushButton();
	pbtn_RemoveBubble->setText("Remove Bubble");
	horizontalLayout6->addWidget(pbtn_RemoveBubble);
	connect(pbtn_RemoveBubble, SIGNAL(clicked()), this, SLOT(RemoveBubble()));

	m_VCR = new std::vector<QPushButton*>;
	int size = 24;

	QPushButton* pbtn_Stop = new QPushButton();
	QIcon icn_Stop;
	icn_Stop.addFile(":/threeDEditing/res/threeDEditing/Backward_01.png");
	pbtn_Stop->setIcon(icn_Stop);
	pbtn_Stop->setIconSize(QSize(size,size));
	horizontalLayout7->addWidget(pbtn_Stop);	
	connect(pbtn_Stop, SIGNAL(clicked()), this, SLOT(Stop()));

	QPushButton* pbtn_StepBack = new QPushButton();
	QIcon icn_StepBack;
	icn_StepBack.addFile(":/threeDEditing/res/threeDEditing/left.png");
	pbtn_StepBack->setIcon(icn_StepBack);
	pbtn_StepBack->setIconSize(QSize(size,size));
	horizontalLayout7->addWidget(pbtn_StepBack);	
	connect(pbtn_StepBack, SIGNAL(clicked()), this, SLOT(StepBack()));

	QPushButton* pbtn_ReversePlay = new QPushButton();
	m_VCR->push_back(pbtn_ReversePlay);
	QIcon icn_ReversePlay;
	icn_ReversePlay.addFile(":/threeDEditing/res/threeDEditing/Backward.png");
	pbtn_ReversePlay->setIcon(icn_ReversePlay);
	pbtn_ReversePlay->setCheckable(true);
	pbtn_ReversePlay->setIconSize(QSize(size,size));
	horizontalLayout7->addWidget(pbtn_ReversePlay);	
	connect(pbtn_ReversePlay, SIGNAL(clicked()), this, SLOT(ReversePlay()));

	QPushButton* pbtn_Pause = new QPushButton();
	m_VCR->push_back(pbtn_Pause);
	QIcon icn_Pause;
	icn_Pause.addFile(":/threeDEditing/res/threeDEditing/pause.png");
	pbtn_Pause->setIcon(icn_Pause);
	pbtn_Pause->setCheckable(true);
	pbtn_Pause->setChecked(true);
	pbtn_Pause->setIconSize(QSize(size,size));
	horizontalLayout7->addWidget(pbtn_Pause);	
	connect(pbtn_Pause, SIGNAL(clicked()), this, SLOT(Pause()));

	QPushButton* pbtn_Play = new QPushButton();
	m_VCR->push_back(pbtn_Play);
	QIcon icn_Play;
	icn_Play.addFile(":/threeDEditing/res/threeDEditing/Forward.png");
	pbtn_Play->setIcon(icn_Play);
	pbtn_Play->setCheckable(true);
	pbtn_Play->setIconSize(QSize(size,size));
	horizontalLayout7->addWidget(pbtn_Play);	
	connect(pbtn_Play, SIGNAL(clicked()), this, SLOT(Play()));

	QPushButton* pbtn_StepForward = new QPushButton();
	QIcon icn_StepForward;
	icn_StepForward.addFile(":/threeDEditing/res/threeDEditing/right.png");
	pbtn_StepForward->setIcon(icn_StepForward);
	pbtn_StepForward->setIconSize(QSize(size,size));
	horizontalLayout7->addWidget(pbtn_StepForward);	
	connect(pbtn_StepForward, SIGNAL(clicked()), this, SLOT(StepForward()));

	QLabel* label5 = new QLabel( "Step size:", this );
	QFont f5 = label5->font();
	f5.setBold(false);
	label5->setFont( f5 );
	horizontalLayout8->addWidget(label5);
	QSpinBox* selectStepSize = new QSpinBox();
	selectStepSize->setRange(1, 50);
	selectStepSize->setValue(1);
	horizontalLayout8->addWidget(selectStepSize);
	connect(selectStepSize, SIGNAL(valueChanged(int)), this, SLOT(SelectStepSize(int)));

	QLabel* label6 = new QLabel( "Iteration:", this );
	QFont f6 = label6->font();
	f6.setBold(false);
	label6->setFont( f6 );
	horizontalLayout8->addWidget(label6);
	numberOfIterations = new QLineEdit(this);
	numberOfIterations->setText("0");
	numberOfIterations->setReadOnly(true);
	horizontalLayout8->addWidget(numberOfIterations);

	QFrame *frame1 = new QFrame( this );
	frame1->setFrameStyle( QFrame::Box | QFrame::Plain );
	frame1->setLineWidth(10);
	frame1->setFixedSize(200,10);
	frame1->setPalette(colorPalette);
	horizontalLayout9->addWidget(frame1);

	// Parameters
	QLabel* label7 = new QLabel( "Parameters:", this );
	QFont f7 = label7->font();
	f7.setBold(true);
	label7->setFont( f7 );
	horizontalLayout10->addWidget(label7);


	// make the "InputMask" for values between 1.11 and 17.93 with 2 digits after the comma
	QValidator *inputRange = new QDoubleValidator(0.000, 100000.000, 3, this);

	// table layout
	QBoxLayout* verticalLayout1 = new QVBoxLayout();
	horizontalLayout11->addLayout(verticalLayout1);
	QBoxLayout* verticalLayout2 = new QVBoxLayout();
	horizontalLayout11->addLayout(verticalLayout2);
	QBoxLayout* verticalLayout3 = new QVBoxLayout();
	horizontalLayout11->addLayout(verticalLayout3);

	QLabel* label8 = new QLabel( "Curvature\nForce:", this );
	QFont f8 = label8->font();
	f8.setBold(false);
	f8.setPointSize(7);
	label8->setFont( f8 );
	verticalLayout1->addWidget(label8);
	m_CurvatureForce = new QLineEdit(this);
	m_CurvatureForce->setText("0");
	m_CurvatureForce->setReadOnly(false);
	m_CurvatureForce->setValidator(inputRange);
	QObject::connect(m_CurvatureForce, SIGNAL(returnPressed()), this, SLOT(EditedCurvatureForce()));
	verticalLayout2->addWidget(m_CurvatureForce);
	QmitkCrossWidget* curvatureForceCross = new QmitkCrossWidget();
	QPixmap pixCurvatureForce(":/threeDEditing/res/threeDEditing/CrossArrow.png");
	curvatureForceCross->setPixmap(pixCurvatureForce.scaledToWidth(100));
	curvatureForceCross->setFixedSize(100,20);
	curvatureForceCross->setToolTip("Drag with a left mouse click from the center circle to the sides.");
	verticalLayout3->addWidget(curvatureForceCross);
	connect( curvatureForceCross, SIGNAL( SignalDeltaMove( int, int ) ), this, SLOT( CurvatureForceCross( int, int ) ) );

	QLabel* label10 = new QLabel( "Area\nForce:", this );
	QFont f10 = label10->font();
	f10.setBold(false);
	f10.setPointSize(7);
	label10->setFont( f10 );
	verticalLayout1->addWidget(label10);
	m_AreaForce = new QLineEdit(this);
	m_AreaForce->setText("0");
	m_AreaForce->setReadOnly(false);
	m_AreaForce->setValidator(inputRange);
	QObject::connect(m_AreaForce, SIGNAL(returnPressed()), this, SLOT(EditedAreaForce()));
	verticalLayout2->addWidget(m_AreaForce);
	QmitkCrossWidget* areaForceCross = new QmitkCrossWidget();
	QPixmap pixAreaForce(":/threeDEditing/res/threeDEditing/CrossArrow.png");
	areaForceCross->setPixmap(pixAreaForce.scaledToWidth(100));
	areaForceCross->setFixedSize(100,20);
	areaForceCross->setToolTip("Drag with a left mouse click from the center circle to the sides.");
	verticalLayout3->addWidget(areaForceCross);
	connect( areaForceCross, SIGNAL( SignalDeltaMove( int, int ) ), this, SLOT( AreaForceCross( int, int ) ) );

	QLabel* label11 = new QLabel( "Volume\nForce:", this );
	QFont f11 = label11->font();
	f11.setBold(false);
	f11.setPointSize(7);
	label11->setFont( f11 );
	verticalLayout1->addWidget(label11);
	m_VolumeForce = new QLineEdit(this);
	m_VolumeForce->setText("0");
	m_VolumeForce->setReadOnly(false);
	m_VolumeForce->setValidator(inputRange);
	QObject::connect(m_VolumeForce, SIGNAL(returnPressed()), this, SLOT(EditedVolumeForce()));
	verticalLayout2->addWidget(m_VolumeForce);
	QmitkCrossWidget* volumeForceCross = new QmitkCrossWidget();
	QPixmap pixVolumeForce(":/threeDEditing/res/threeDEditing/CrossArrow.png");
	volumeForceCross->setPixmap(pixVolumeForce.scaledToWidth(100));
	volumeForceCross->setFixedSize(100,20);
	volumeForceCross->setToolTip("Drag with a left mouse click from the center circle to the sides.");
	verticalLayout3->addWidget(volumeForceCross);
	connect( volumeForceCross, SIGNAL( SignalDeltaMove( int, int ) ), this, SLOT( VolumeForceCross( int, int ) ) );

	QFrame *frame2 = new QFrame( this );
	frame2->setFrameStyle( QFrame::Box | QFrame::Plain );
	frame2->setLineWidth(10);
	frame2->setFixedSize(200,10);
	frame2->setPalette(colorPalette);
	horizontalLayout12->addWidget(frame2);

	QPushButton* pbtnClosing = new QPushButton();
	pbtnClosing->setText("Closing by one pixel");
	pbtnClosing->setCheckable(true);
	horizontalLayout13->addWidget(pbtnClosing);
	connect(pbtnClosing, SIGNAL(clicked()), this, SLOT(Closing()));

	QLabel* label12 = new QLabel( "Zoom:", this );
	QFont f12 = label12->font();
	f12.setBold(false);
	//f12.setPointSize(6);
	label12->setFont( f12 );
	horizontalLayout14->addWidget(label12);
	QmitkCrossWidget* zoomCross = new QmitkCrossWidget();
	QPixmap pixZoom(":/threeDEditing/res/threeDEditing/CrossArrow.png");
	zoomCross->setPixmap(pixZoom.scaledToWidth(100));
	zoomCross->setFixedSize(100,20);
	zoomCross->setToolTip("Drag with a left mouse click from the center circle to the sides.");
	horizontalLayout14->addWidget(zoomCross);
	connect( zoomCross, SIGNAL( SignalDeltaMove( int, int ) ), this, SLOT( ZoomCross( int, int ) ) );

	connect( this, SIGNAL(NewToolAssociated(mitk::Tool*)), this, SLOT(OnNewToolAssociated(mitk::Tool*)) );
	//std::cout << "ciao from " << __FUNCSIG__ << std::endl;
}