Example #1
0
static void DOT_SetupBlastParameters(GrouP g, DOTStartDataPtr sdata)
{
  GrouP g0, g1, g2, g3, g4, g5, gtotal;
  GrouP g_sub1, g_sub2;

  gtotal = HiddenGroup(g, 1, 6, NULL);

  sdata->plusorminus = NormalGroup(gtotal, 2,1, "",  systemFont,NULL);
  RadioButton(sdata->plusorminus, "both");
  RadioButton(sdata->plusorminus, "plus-plus");
  RadioButton(sdata->plusorminus, "plus-minus");
  SetValue(sdata->plusorminus, 1);
  
  g0 = HiddenGroup(gtotal, 2, 1, NULL);
  StaticPrompt(g0, "Program name: ", 0, 0, systemFont, 'l');
  sdata->progname = DialogText(g0, "blastn", 7, NULL);


  g1 = NormalGroup(gtotal, 4, 2, "",  systemFont,NULL);
  StaticPrompt(g1, "query start -- ", 0, 0, systemFont, 'l');
  sdata->querystart = DialogText(g1, "All", 5, NULL);
  StaticPrompt(g1, "query stop -- ", 0, 0, systemFont, 'l');
  sdata->querystop = DialogText(g1, "All", 5, NULL);
  StaticPrompt(g1, "subject start -- ", 0, 0, systemFont, 'l');
  sdata->subjectstart = DialogText(g1, "All", 5, NULL);
  StaticPrompt(g1, "subject stop -- ", 0, 0, systemFont, 'l');
  sdata->subjectstop = DialogText(g1, "All", 5, NULL);

  g3 = NormalGroup(gtotal, 1, 3, "Local Alignment Options", programFont, NULL);
  g_sub1 = NormalGroup(g3, 1,1, "",  programFont,NULL);
  g_sub2 = HiddenGroup(g_sub1, 3, 2, NULL);
  sdata->gapped = HiddenGroup(g_sub2, 0, 2, NULL);
  RadioButton(sdata->gapped, "gapped");
  RadioButton(sdata->gapped, "ungapped");
  SetValue(sdata->gapped, 1);
  
  g4 = NormalGroup(gtotal, 1,1, "Mask Regions",  programFont,NULL);
  g_sub1=HiddenGroup(g4, 0, 2, NULL);
  sdata->mask_repeats= CheckBox(g_sub1, "Mask Repeats", NULL);
  SetStatus(sdata->mask_repeats, FALSE);
  sdata->mask_simple = CheckBox(g_sub1, "Mask Simple Sequence", NULL);
  SetStatus(sdata->mask_simple, TRUE);
  
  sdata->megablast= CheckBox(gtotal, "Mega Blast", DOT_MegaBlast2Defaults);
  SetObjectExtra(sdata->megablast, (Pointer)sdata, NULL);
  SetStatus(sdata->megablast, FALSE);

  g5 = NormalGroup(gtotal, 1,1, "",  programFont,NULL);
  g_sub1 = HiddenGroup(g5, 2, 2, NULL);
  StaticPrompt(g_sub1, "E-value:  e-", 0, 0, programFont, 'l');
  sdata->eval = DialogText(g_sub1, "1", 5, NULL);
  StaticPrompt(g_sub1, "wordsize:", 0, 0, programFont, 'l');
  sdata->wordsize = DialogText(g_sub1, "11", 5, NULL);

}
Example #2
0
void ClippingBoxTestCaseBase::InitialState()
{
    // Initial clipping box should be the same as the entire DC surface.
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(0, 0, s_dcSize.GetWidth(), s_dcSize.GetHeight());
}
Example #3
0
void ClippingBoxTestCaseBase::OneRegion()
{
    // Setting one clipping box inside DC area.
    m_dc->SetClippingRegion(10, 20, 80, 75);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(10, 20, 80, 75);
}
Example #4
0
void
CheckPartition (long my_id)
{
   long i;
   box *b;
   long NE, NoP, CB, PB;
   long Q1, Q2, Q3, Q4;
   long PC, CC;
   real xpos, ypos;

   NE = NoP = CB = PB = Q1 = Q2 = Q3 = Q4 = PC = CC = 0;
   for (i = 0; i <= Local[my_id].Max_Parent_Level; i++) {
      b = Local[my_id].Parent_Partition[i];
      while (b != NULL) {
	 NE += CheckBox(my_id, b, i);
	 PB += 1;
	 PC += b->cost;
	 b = b->next;
      }
   }
   b = Local[my_id].Childless_Partition;
   while (b != NULL) {
      NE += CheckBox(my_id, b, -1);
      for (i = 0; i < b->num_particles; i++) {
	 xpos = b->particles[i]->pos.x;
	 ypos = b->particles[i]->pos.y;
	 if (xpos > Grid->x_center) {
	    if (ypos > Grid->y_center)
	       Q1 += 1;
	    else
	       Q4 += 1;
	 }
	 else {
	    if (ypos > Grid->y_center)
	       Q2 += 1;
	    else
	       Q3 += 1;
	 }
      }
      NoP += b->num_particles;
      CB += 1;
      CC += b->cost;
      b = b->next;
   }
}
Example #5
0
CImportXMLDlg::CImportXMLDlg(wxWindow* parent) : wxDialog(parent, wxID_ANY, wxString(_("Import XML Settings"))),
                                                  importUnderGroup(false), 
                                                  importPasswordsOnly(false)
{
  enum { TopMargin = 20, BottomMargin = 20, SideMargin = 30, RowSeparation = 10, ColSeparation = 20};
  
  wxSizerFlags borderFlags = wxSizerFlags().Border(wxLEFT|wxRIGHT, SideMargin).Expand();
  wxSizerFlags separatorFlags = wxSizerFlags().Border(wxLEFT|wxRIGHT, SideMargin/2).Expand();
  
  wxBoxSizer* dlgSizer = new wxBoxSizer(wxVERTICAL);
  dlgSizer->AddSpacer(TopMargin);

  dlgSizer->Add(new wxStaticText(this, wxID_ANY, _("XML file to import:")), borderFlags);
  dlgSizer->AddSpacer(RowSeparation/2);
  COpenFilePickerValidator validator(filepath);
  dlgSizer->Add(new wxFilePickerCtrl(this, wxID_ANY, wxEmptyString, 
                                          _("Please Choose a XML File to Import"), 
                                          _("XML files (*.xml)|*.xml"), 
                                          wxDefaultPosition, wxDefaultSize, 
                                          wxFLP_DEFAULT_STYLE | wxFLP_USE_TEXTCTRL, 
                                          validator), borderFlags);
  dlgSizer->AddSpacer(RowSeparation);

  dlgSizer->Add(new wxStaticLine(this), separatorFlags);
  dlgSizer->AddSpacer(RowSeparation);
  
  wxBoxSizer* horzSizer = new wxBoxSizer(wxHORIZONTAL);
  horzSizer->Add(CheckBox(_("Import under Group"), &importUnderGroup), wxSizerFlags().Proportion(0));
  horzSizer->AddSpacer(ColSeparation);
  horzSizer->Add(TextCtrl(&groupName), wxSizerFlags().Proportion(1));
  dlgSizer->Add(horzSizer, borderFlags);
  dlgSizer->AddSpacer(RowSeparation);
  
  dlgSizer->Add(CheckBox(_("Import to change passwords of existing entries ONLY"), &importPasswordsOnly),
                    borderFlags);
  dlgSizer->AddSpacer(RowSeparation);
  
  dlgSizer->Add(new wxStaticLine(this), separatorFlags);
  dlgSizer->AddSpacer(RowSeparation);
  
  dlgSizer->Add(CreateStdDialogButtonSizer(wxOK|wxCANCEL|wxHELP), borderFlags);
  dlgSizer->AddSpacer(BottomMargin);
  
  SetSizerAndFit(dlgSizer);
}
Example #6
0
void ClippingBoxTestCaseBase::OneRegionNegDim()
{
    // Setting one clipping box with negative sizes values.
    // Final clipping box should have standard positive size values.
    m_dc->SetClippingRegion(10, 20, -80, -75);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(0, 0, 11, 21);
}
Example #7
0
void ClippingBoxTestCaseBase::OneOuterRegion()
{
    // Setting one clipping box entirely outside DC surface.
    // Final clipping box should be empty.
    m_dc->SetClippingRegion(-100, -80, 20, 40);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(0, 0, 0, 0);
}
Example #8
0
void ClippingBoxTestCaseBase::TwoRegionsNonOverlapping()
{
    // Setting one clipping box and next another box (non-overlapping).
    // Final clipping box should be empty.
    m_dc->SetClippingRegion(10, 20, 30, 30);
    m_dc->SetClippingRegion(50, 60, 50, 40);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(0, 0, 0, 0);
}
Example #9
0
void ClippingBoxTestCaseBase::TwoRegionsOverlapping()
{
    // Setting one clipping box and next another box (partially overlapping).
    // Final clipping box should be an intersection of these two boxes.
    m_dc->SetClippingRegion(10, 20, 80, 75);
    m_dc->SetClippingRegion(50, 60, 50, 40);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(50, 60, 40, 35);
}
Example #10
0
void ClippingBoxTestCaseBase::OneRegionAndEmpty()
{
    // Setting one clipping box and next an empty box.
    // Final clipping box should empty.
    m_dc->SetClippingRegion(10, 20, 80, 75);
    m_dc->SetClippingRegion(0, 0, 0, 0);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(0, 0, 0, 0);
}
Example #11
0
void ClippingBoxTestCaseBase::OneRegionAndReset()
{
    // Setting one clipping box and next destroy it.
    // Final clipping box should be the same as DC surface.
    m_dc->SetClippingRegion(10, 20, 80, 75);
    m_dc->DestroyClippingRegion();
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(0, 0, s_dcSize.GetWidth(), s_dcSize.GetHeight());
}
Example #12
0
void ClippingBoxTestCaseBase::OneLargeRegion()
{
    // Setting one clipping box larger then DC surface.
    // Final clipping box should be limited to the DC extents.
    m_dc->SetClippingRegion(-10, -20,
                         s_dcSize.GetWidth()+30, s_dcSize.GetHeight()+50);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(0, 0, s_dcSize.GetWidth(), s_dcSize.GetHeight());
}
Example #13
0
void ClippingBoxTestCaseBase::InitialStateWithTransformedDC()
{
    // Initial clipping box with transformed DC.
    m_dc->SetDeviceOrigin(10, 15);
    m_dc->SetUserScale(0.5, 1.5);
    m_dc->SetLogicalScale(4.0, 2.0);
    m_dc->SetLogicalOrigin(-15, -20);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(-20, -25, 50, 40);
}
Example #14
0
void ClippingBoxTestCaseBase::TwoRegionsOverlappingNegDim()
{
    // Setting one clipping box with negative size values
    // and next another box (partially overlapping).
    // Final clipping box should be an intersection of these two boxes
    // with positive size values.
    m_dc->SetClippingRegion(90, 95, -80, -75);
    m_dc->SetClippingRegion(50, 60, 50, 40);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(50, 60, 41, 36);
}
Example #15
0
void init(){
  grabber.init(pa("-i"));

  bool c_arg = pa("-c");

  gui << Draw().handle("draw").label("input image")
      << Image().handle("cropped").label("cropped")
      << ( VBox().maxSize(c_arg ? 0 : 12,99).minSize(c_arg ? 0 : 12,1)
           << Button("save as ..").handle("saveAs")
           << Button("overwrite input").handle("overwrite")
           << Combo("0,90,180,270").handle("rot").label("rotation")
           << CheckBox("rectangular",!pa("-r")).handle("rect")
           << Button("Batch crop...").handle("batch")
           << ( HBox().label("rectification size")
                << Spinner(1,4096,640).handle("s1")
                << Label(":")
                << Spinner(1,4096,480).handle("s2")
                )
           << (HBox() 
               << Fps().handle("fps")
               << CamCfg()
               )
           )
      << Show();


  if(!c_arg){
    gui["batch"].registerCallback(batch_crop);
  }
  const ImgBase *image = grabber.grab();
  if(!c_arg){
    mouse_1 = new Mouse1(image->getSize());
    gui["draw"].install(mouse_1);
  }
  mouse_2 = new Mouse2(image->getSize());
  gui["draw"].install(mouse_2);
  
  DrawHandle draw = gui["draw"];
  draw->setImageInfoIndicatorEnabled(false);
  
  if(!c_arg){
    gui["rect"].registerCallback(rectangular_changed);
    rectangular_changed();
    if(*pa("-i",0) != "file" || FileList(*pa("-i",1)).size() != 1){
      gui["overwrite"].disable();
    }else{
      gui["overwrite"].registerCallback(overwrite);
    }
    gui["saveAs"].registerCallback(save_as);
  }

}
Example #16
0
void ClippingBoxTestCaseBase::OneRegionWithTransformedDC()
{
    // Setting one clipping box inside DC area
    // with applied some transformations.
    m_dc->SetDeviceOrigin(10, 15);
    m_dc->SetUserScale(0.5, 1.5);
    m_dc->SetLogicalScale(4.0, 2.0);
    m_dc->SetLogicalOrigin(-15, -20);
    m_dc->SetClippingRegion(-10, -20, 80, 75);
    m_dc->SetBackground(wxBrush(s_fgColour, wxBRUSHSTYLE_SOLID));
    m_dc->Clear();
    CheckBox(-10, -20, 40, 35);
}
Example #17
0
static void DOT_StartupWindow(void)
{

  WindoW  w;
  GrouP   c, cg;
  DOTStartDataPtr sdata;
  PaneL   p;

  w = FixedWindow (-50, -33, -10, -10, "Welcome to D-Viewer", StdCloseWindowProc);

  p = SimplePanel (w, 28 * stdCharWidth, 4 * stdLineHeight, DOT_DrawAbout);
  sdata=(DOTStartDataPtr)MemNew(sizeof(DOTStartData));
  sdata->hStart=w;
  cg=HiddenGroup(w, 4, 0, NULL);
  sdata->dot=CheckBox(cg, "Dot plot", DOT_CheckDot);
  SetStatus(sdata->dot, TRUE);
  
  sdata->reg_blast=CheckBox(cg, "Bl2Seqs", DOT_CheckRegBlast);
  SetStatus(sdata->reg_blast, FALSE);
  sdata->auto_blast = CheckBox(cg, "Scoop", DOT_CheckAutoBlast);
  SetStatus(sdata->auto_blast, FALSE);

  sdata->seqa=CheckBox(cg, "SeqAnnote File", DOT_CheckSA);
  SetStatus(sdata->seqa, FALSE);
  c = HiddenGroup (w, 1, 3, NULL);
  SetGroupMargins(c, 10, 10);
  SetGroupSpacing (c, 10, 10);
  sdata->entrez=PushButton (c, "Fetch from Entrez", DOT_GetFromNetwork);
  Enable(sdata->entrez);
  sdata->file=PushButton (c, "Open Local Files", DOT_readExisting);
  Enable(sdata->file);
  PushButton (c, "Quit Program", DOT_quitProgram);
    
  SetObjectExtra(w, (Pointer)sdata, StdCleanupExtraProc);
  AlignObjects (ALIGN_CENTER, (HANDLE) p, (HANDLE) c, NULL,  NULL);
  Select(w);
  Show(w);
  ProcessEvents();
}
Example #18
0
void init() {

	grabber.init(pa("-i"));

	if (pa("-s")) {
		utils::Size size = pa("-s");
		grabber.setDesiredSizeInternal(size);
	}

    // create the GUI
	gui << ( VBox()
			 << ( HBox()
				  << Draw().label("Original").handle("view1").minSize(16, 12)
				  << Draw().label("Median").handle("view2").minSize(16, 12)
				  << Draw().label("Bilateral Filtered").handle("view3").minSize(16, 12)
				  )
			 << ( HBox()
				  << Draw().label("Original").handle("viewedge1").minSize(16, 12)
				  << Draw().label("Median").handle("viewedge2").minSize(16, 12)
				  << Draw().label("Bilateral Filtered").handle("viewedge3").minSize(16, 12)
				  )
			 << CheckBox("Use LAB",true).handle("use_lab")
			 << CheckBox("Use gray image",false).handle("to_gray")
			 << Slider(1,24,4).label("Bilateral Kernel Radius").handle("bi_radius")
			 << Slider(1,24,4).label("Median Kernel Radius").handle("median_radius")
			 << FSlider(0.1,200,5).label("sigma_r (bilateral) ").handle("sigma_r")
			 << FSlider(0.1,200,5).label("sigma_s (bilateral) ").handle("sigma_s")
			 << Slider(0,255,200).label("Canny low th").handle("canny_low_th")
			 << Slider(0,255,255).label("Canny high th").handle("canny_high_th")
			 << Slider(10,100,100).label("ROI of Img (Percent)").handle("roi_size")
			 << Fps().handle("fps")
			 );
    gui << Show();

	bi_filter = new BilateralFilterOp();

}
//---------------------------------
int main()
{
	int n;
	cout<<"enter the number of the foot."<<endl;
	cin>>n;
	cout<<"enter the series."<<endl;
	int *p=new int[n];
	for(int i=0;i<n;i++)
		cin>>p[i];
	if(CheckBox(p,n))
		cout<<"The box is routable."<<endl;
	else
		cout<<"The box is unroutable"<<endl;
	return 0;
}
Example #20
0
void init(){
  gui << Image().handle("image").minSize(32,24)
      << Image().handle("imageOut").minSize(32,24)
      << Slider(1,22,5).out("filterSize").label("filterSize").maxSize(100,2).handle("filterSize-handle")
      << Slider(1,22,10).out("difference").label("difference").maxSize(100,2).handle("difference-handle")
      << CheckBox("useCL", true).out("disableCL").maxSize(100,2).handle("disableCL-handle")
      << Show();
  
  int maxFilterSize=pa("-maxFilterSize");
  int nullValue=pa("-nullValue");
  
  smoothing = new MotionSensitiveTemporalSmoothing(nullValue, maxFilterSize);
  grabber.init(pa("-i"));
  
  update(); 
}
Example #21
0
//////////////////////////////////////////////////////////////////////////
// Check if given object is in frustum
//////////////////////////////////////////////////////////////////////////
bool CFrustum::CheckMesh( CObject3D &mesh )
{
	Vector3 pos = mesh.GetWorldPosition();

	if (mesh.boundingShape == EBoundingShape::Box)
	{
		Vector3 size = mesh.geometry->boundingBox.GetSize();
		size.x *= mesh.scale.x;
		size.y *= mesh.scale.y;
		size.z *= mesh.scale.z;
		Vector3 pos = mesh.GetWorldPosition();
		pos.x += (mesh.geometry->boundingBox.min.x + size.x/2) * mesh.scale.x;
		pos.y += (mesh.geometry->boundingBox.min.y + size.y/2) * mesh.scale.y;
		pos.z += (mesh.geometry->boundingBox.min.z + size.z/2) * mesh.scale.z;

		return CheckBox(pos.x, pos.y, pos.z, size.x, size.y, size.z);
	}
	else
	{
		float maxScale = max(max(mesh.scale.x, mesh.scale.y), mesh.scale.z);
		float boundingRadius = maxScale * mesh.geometry->boundingSphere;	
		return CheckSphere(pos.x, pos.y, pos.z, boundingRadius);
	}
}
Example #22
0
	void runGui(OrbGui &gui)
	{
		// GUI state
		vec2i wndSize = gui.input->getWindowSize();

		// set up the default projection & modelview matrices
		glMatrixMode(GL_PROJECTION);
		glLoadIdentity();
		glOrtho(0.0, (double)wndSize.x, (double)wndSize.y, 0.0, 10.0, -10.0);
		glMatrixMode(GL_MODELVIEW);
		glLoadIdentity();
		
		ColumnLayout lyt(FixedLayout(10, 10, 200, wndSize.y), 10, 10, 10, 10, 3);

		Label("Ikarus").run(gui, lyt);

		Spacer(vec2i(0, 10)).run(gui, lyt);

		Label("Skeleton:").run(gui, lyt);
		ComboBox skelSel("skeleton-sel", WidgetID(curSkel));
		for (int i = 0; i < (int)skeletons.size(); ++i)
			skelSel.add(WidgetID(i), skeletons[i].name);
		curSkel = skelSel.run(gui, lyt).getIndex();

		if (Button("reload-btn", "Reload").run(gui, lyt))
			skeletons.reset_at(curSkel, new SkeletonItem(skeletons[curSkel].fname, skeletons[curSkel].name));
		
		SkeletonItem &skel = skeletons[curSkel];

		Spacer(vec2i(0, 10)).run(gui, lyt);

		if (Button("reset-btn", "Reset Pose").run(gui, lyt))
		{
			skel.solver->resetPose();
			skel.targetPos = skel.solver->getEffectorPos();
			targetSpeed = 0.0;
		}

		if (Button("reset-all-btn", "Reset All").run(gui, lyt))
		{
			skel.solver->resetAll();
			skel.targetPos = skel.solver->getEffectorPos();
			targetSpeed = 0.0;
		}

		// the grid is always shown
		// (no point turning it off really)
		//showGrid = CheckBox("show-grid-chk", "Show grid", showGrid).run(gui, lyt);
		showJointBasis = CheckBox("show-joint-basis-chk", "Show joint basis vectors", showJointBasis).run(gui, lyt);
		showConstraints = CheckBox("show-constraints-chk", "Show joint constraints", showConstraints).run(gui, lyt);

		ikMode = CheckBox("ik-mode-chk", "IK Mode", ikMode).run(gui, lyt);
		ikEnabled = CheckBox("ik-enabled-chk", "IK Enabled", ikEnabled, ikMode).run(gui, lyt);
		bool constraintsOn = CheckBox("ik-constrained-chk", "Enable Constraints", skel.solver->areConstraintsEnabled(), ikMode).run(gui, lyt);
		skel.solver->enableConstraints(constraintsOn);

		if (Button("solve-btn", "Solve", ikMode && !ikEnabled).run(gui, lyt))
			skel.solver->solveIk(30);

		if (Button("step-btn", "Step IK", ikMode && !ikEnabled).run(gui, lyt))
			skel.solver->iterateIk();

		if (Button("constraint-btn", "Apply Constraints", ikMode).run(gui, lyt))
		{
			skel.solver->applyAllConstraints();
			skel.targetPos = skel.solver->getEffectorPos();
			targetSpeed = 0.0;
		}

		Label("Root bone:").run(gui, lyt);
		ComboBox rootSel("root-sel", WidgetID(&skel.solver->getRootBone()));
		for (int i = 0; i < skel.skeleton.numBones(); ++i)
		{
			const Bone &b = skel.skeleton[i];
			if (! b.isEffector())
				rootSel.add(WidgetID(&b), b.name);
		}
		const Bone *newRootBone = rootSel.run(gui, lyt).getData<const Bone>();
		skel.solver->setRootBone(*newRootBone);

		Label("Effector:").run(gui, lyt);
		ComboBox effectorSel("effector-sel", WidgetID(&skel.solver->getEffector()));
		for (int i = 0; i < skel.skeleton.numBones(); ++i)
		{
			const Bone &b = skel.skeleton[i];
			if (b.isEffector())
				effectorSel.add(WidgetID(&b), b.name);
		}
		const Bone *newEffector = effectorSel.run(gui, lyt).getData<const Bone>();
		if (newEffector != &skel.solver->getEffector())
		{
			skel.solver->setEffector(*newEffector);
			skel.solver->setTargetPos(skel.solver->getEffectorPos());
			skel.targetPos = skel.solver->getEffectorPos();
		}

		int leftRightSplit = 250;
		int topBottomSplit = wndSize.y - 200;
		int a = leftRightSplit + (wndSize.x - leftRightSplit) / 3;
		int b = leftRightSplit + ((wndSize.x - leftRightSplit)*2) / 3;

		FixedLayout mainViewLyt(leftRightSplit, 0, wndSize.x - leftRightSplit, topBottomSplit);
		FixedLayout ortho0Lyt(leftRightSplit, topBottomSplit, a - leftRightSplit, wndSize.y - topBottomSplit);
		FixedLayout ortho1Lyt(a, topBottomSplit, b - a, wndSize.y - topBottomSplit);
		FixedLayout ortho2Lyt(b, topBottomSplit, wndSize.x - b, wndSize.y - topBottomSplit);

		if (ikMode)
		{
			IkSolverDisplay("displayP", &camPerspective, skel.solver.get(), showJointBasis, showConstraints, showGrid ? gridList : 0).run(gui, mainViewLyt);
			IkSolverDisplay("displayX", &camX, skel.solver.get(), showJointBasis, showConstraints).run(gui, ortho0Lyt);
			IkSolverDisplay("displayY", &camY, skel.solver.get(), showJointBasis, showConstraints).run(gui, ortho1Lyt);
			IkSolverDisplay("displayZ", &camZ, skel.solver.get(), showJointBasis, showConstraints).run(gui, ortho2Lyt);
		}
		else
		{
			SkeletonDisplay("displayP", &camPerspective, &skel.skeleton, showJointBasis, showConstraints, showGrid ? gridList : 0).run(gui, mainViewLyt);
			SkeletonDisplay("displayX", &camX, &skel.skeleton, showJointBasis, showConstraints).run(gui, ortho0Lyt);
			SkeletonDisplay("displayY", &camY, &skel.skeleton, showJointBasis, showConstraints).run(gui, ortho1Lyt);
			SkeletonDisplay("displayZ", &camZ, &skel.skeleton, showJointBasis, showConstraints).run(gui, ortho2Lyt);
		}
	}
Example #23
0
/*---------------------------------------------------------*/
GrouP LIBCALL DisplayControls(Nlm_GrouP prnt)
{
    GrouP g, h;
    PrompT ppt1, /*ppt2,*/ ppt3, ppt4;

    g = HiddenGroup(prnt, -1, 0, NULL);
    if (!g)
        return NULL;
    SetGroupSpacing(g, 3, 9);
#ifdef WIN_MOTIF
    SetGroupMargins(g, 4, 1);
    SetGroupSpacing(g, 2, 1);
#else
    SetGroupMargins(g, 1, 1);
    SetGroupSpacing(g, 0, 0);
#endif

    StaticPrompt(g, "", 0, stdLineHeight, systemFont, 'l');
    StaticPrompt(g, "", 0, stdLineHeight, systemFont, 'l');

    h = HiddenGroup(g, 0, -4, NULL);
    SetGroupSpacing(h, 30, 10);

    ppt1 =
        StaticPrompt(h, "Molecule", 0, stdLineHeight + 5, systemFont, 'c');
    Cn3D_lStruc = MultiList(h, 6, 10, FillFeatureListProc);
    StaticPrompt(h, "", 0, stdLineHeight, systemFont, 'l');
    StaticPrompt(h, "", 0, stdLineHeight, systemFont, 'l');
    AlignObjects(ALIGN_LEFT, (HANDLE) ppt1, (HANDLE) Cn3D_lStruc, NULL);

    ppt3 =
        StaticPrompt(h, "Domain", 0, stdLineHeight + 5, systemFont, 'c');
    Cn3D_bDisplayAlignedDomain =
        CheckBox(h, "Aligned Domain Only", Cn3D_ListAlignedDomainProc);
    Cn3D_lFeature = MultiList(h, 6, 8, Cn3D_SelectDomainProc);
    StaticPrompt(h, "", 0, stdLineHeight, systemFont, 'l');
    AlignObjects(ALIGN_LEFT, (HANDLE) ppt3, (HANDLE) Cn3D_lFeature, NULL);

    ppt4 =
        StaticPrompt(h, "Residue", 0, stdLineHeight + 5, systemFont, 'c');
    Cn3D_bAlignOn = CheckBox(h, "Aligned", NULL);
    Cn3D_bUnalignOn = CheckBox(h, "Unaligned", NULL);
    Cn3D_bDisplayHighlight =
        CheckBox(h, "Show Selected Only", NULL);
    AlignObjects(ALIGN_LEFT, (HANDLE) ppt4,
                 (HANDLE) Cn3D_bDisplayHighlight, NULL);
    SetStatus(Cn3D_bDisplayHighlight, FALSE);
    SetStatus(Cn3D_bAlignOn, Cn3D_fAlignOn);
    SetStatus(Cn3D_bUnalignOn, Cn3D_fUnalignOn);

    Cn3D_altConfIdOverlay = CheckBox(g, 
        "Overlay uncorrelated conformer ensembles", NULL);
    AlignObjects(ALIGN_CENTER, (HANDLE) Cn3D_altConfIdOverlay, (HANDLE) g, NULL);
    SetStatus(Cn3D_altConfIdOverlay, TRUE);

    StaticPrompt(g, "", 0, stdLineHeight + 5, systemFont, 'c');
    Cn3D_bDisplayApply = PushButton(g, "Apply!", Cn3D_DisplayProc);
    AlignObjects(ALIGN_CENTER, (HANDLE) Cn3D_bDisplayApply, (HANDLE) h,
                 NULL);

    ResetDisplayCtrls();

    return g;
}
Example #24
0
extern void CreateAddSpecialDialog (
  GrouP prnt,
  SscTablesPtr stp
)

{
  Char         buf [64];
  GrouP        g, h, m, p;
  MiscRatePtr  mrp;
  SscSpecPtr   ssp;
  Char         str [16];

  if (stp == NULL) return;
  mrp = stp->miscrate_table;
  if (mrp == NULL) return;

  ssp = (SscSpecPtr) MemNew (sizeof (SscSpec));
  if (ssp == NULL) return;

  p = HiddenGroup (prnt, -1, 0, NULL);
  SetGroupSpacing (p, 10, 10);

  SetObjectExtra (p, ssp, StdCleanupExtraProc);

  ssp->dialog = (DialoG) p;

  ssp->tables = stp;

  ssp->whichspec = HiddenGroup (p, 5, 0, ChangeSpecType);
  SetObjectExtra (ssp->whichspec, ssp, NULL);

  RadioButton (ssp->whichspec, "Visiting");
  RadioButton (ssp->whichspec, "Affiliated");
  RadioButton (ssp->whichspec, "Transient");

  ssp->namegroup = HiddenGroup (p, 15, 0, NULL);
  SetGroupSpacing (ssp->namegroup, 5, 3);

  StaticPrompt (ssp->namegroup, "Name", 0, dialogTextHeight, programFont, 'l');
  ssp->name = DialogText (ssp->namegroup,
                          "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
                          0, ChangeSpecName);
  SetObjectExtra (ssp->name, (Pointer) ssp, NULL);
  SetTitle (ssp->name, "");

  Hide (ssp->namegroup);

  h = HiddenGroup (p, 0, 0, NULL);
  SetGroupMargins (h, 10, 10);

  g = HiddenGroup (h, -1, 0, NULL);

  Hide (g);
  ssp->controls [EMPTY_PAGE] = g;

  g = HiddenGroup (h, -1, 0, NULL);

  if (PrintWholeDollar (mrp->visiting_fee, str)) {
    sprintf (buf, "Charge $%s Visiting Fee", str);
  } else {
    sprintf (buf, "Charge Visiting Fee");
  }
  ssp->visitfee = CheckBox (g, buf, NULL);
  SetStatus (ssp->visitfee, TRUE);

  Hide (g);
  ssp->controls [ADD_VISIT_PAGE] = g;

  g = HiddenGroup (h, -1, 0, NULL);

  if (PrintWholeDollar (mrp->affiliated_fee, str)) {
    sprintf (buf, "Charge $%s Affiliated Fee", str);
  } else {
    sprintf (buf, "Charge Affiliated Fee");
  }
  ssp->affilfee = CheckBox (g, buf, NULL);
  SetStatus (ssp->visitfee, TRUE);

  Hide (g);
  ssp->controls [ADD_AFFIL_PAGE] = g;

  g = HiddenGroup (h, -1, 0, NULL);
  SetGroupSpacing (g, 10, 10);

  m = HiddenGroup (g, 1, 0, NULL);
  SetGroupSpacing (m, 5, 3);

  ProrateDollarAmount (mrp->transient_fee, 1, FALSE, stp, &(ssp->proratedtrans));

  if (PrintWholeDollar (&(ssp->proratedtrans), str)) {
    sprintf (buf, "Charge $%s Transient Dues", str);
  } else {
    sprintf (buf, "Charge Transient Dues");
  }
  ssp->transfee = CheckBox (m, buf, NULL);
  SetStatus (ssp->transfee, TRUE);

  ProrateDollarAmount (mrp->ssa_regular, 5, TRUE, stp, &(ssp->proratedssa));

  if (PrintWholeDollar (&(ssp->proratedssa), str)) {
    sprintf (buf, "Charge $%s SSA Dues (Prorated May-Apr)", str);
  } else {
    sprintf (buf, "Charge SSA Dues");
  }
  ssp->transssa = CheckBox (m, buf, NULL);
  SetStatus (ssp->transssa, TRUE);

  ssp->jobs = CreateClubJobsDialog (g);

  AlignObjects (ALIGN_CENTER,
                (HANDLE) m,
                (HANDLE) ssp->jobs,
                NULL);

  Hide (g);
  ssp->controls [ADD_TRANS_FEE] = g;

  ssp->addspec = PushButton (p, "Add Special Member", AddSpecMember);
  SetObjectExtra (ssp->addspec, (Pointer) ssp, NULL);
  Disable (ssp->addspec);

  ssp->currPage = 0;

  AlignObjects (ALIGN_CENTER,
                (HANDLE) ssp->whichspec,
                (HANDLE) ssp->namegroup,
                (HANDLE) ssp->controls [EMPTY_PAGE],
                (HANDLE) ssp->controls [ADD_VISIT_PAGE],
                (HANDLE) ssp->controls [ADD_AFFIL_PAGE],
                (HANDLE) ssp->controls [ADD_TRANS_FEE],
                (HANDLE) ssp->addspec,
                NULL);
}
Example #25
0
GrouP 
/*FCN*/Nlm_CreateDlgGroup ( 
  GrouP gTop
){
  GrouP    g, glr, g1, g2;
  Handle   toAlign[3];

  g = HiddenGroup ( gTop, 2, 1, NULL);
  SetGroupSpacing ( g, 1, 1 );
  glr = NormalGroup ( g, 1, 2, "Groups:", systemFont, NULL );
#ifdef WIN_MOTIF
  SetGroupSpacing ( glr, 12, 12 );
  SetGroupMargins ( glr, 8, 8 );
#else
  SetGroupSpacing ( glr, 6, 6 );
  SetGroupMargins ( glr, 6, 6 );
#endif
  g1 = HiddenGroup ( glr, 2, 1, NULL );
  g2 = HiddenGroup ( g1, 1, 0, NULL );
  PushButton ( g2, "Top", OnGroupTop );
  PushButton ( g2, "Bottom", OnGroupBottom );
  groupHideButton = PushButton ( g2, "Hide", OnGroupHide );
  groupCompBox = CheckBox ( g2, "Compress", OnGroupCompress );
  groupDelButton = PushButton ( g2, "Delete", OnGroupDelete );
  groupList = SingleList ( g1, 10, 8, OnGroupList );
  curGroupInd = 0;
  LoadGroupArray();
  g2 = HiddenGroup ( glr, 3, 0, NULL );
  toAlign[2] = (Handle)PushButton ( g2, "Create", OnGroupNew );
  toAlign[0] = (Handle)StaticPrompt ( g2, "Group", 0, 0, systemFont, 'l');
#ifdef WIN_MOTIF
  groupDialog = DialogText ( g2, "", 7, OnText16 );
#else
  groupDialog = DialogText ( g2, "", 9, OnText16 );
#endif
  toAlign[1] = (Handle)groupDialog;
  AlignObjects ( ALIGN_CENTER, (HANDLE)g1, (HANDLE)g2, NULL );

  featGroup = glr = NormalGroup ( g, 1, 2, "Features:", systemFont, NULL );
#ifdef WIN_MOTIF
  SetGroupSpacing ( glr, 12, 12 );
  SetGroupMargins ( glr, 8, 8 );
#else
  SetGroupSpacing ( glr, 6, 6 );
  SetGroupMargins ( glr, 6, 6 );
#endif
  g1 = HiddenGroup ( glr, 2, 1, NULL );
  featList = SingleList ( g1, 10, 8, OnFeatureList );
  LoadFeatureArray();
  FillFeatList( FALSE );
  if ( totalFeatures == 0 ){
    curFeatureInd = -1;
  } else {
    curFeatureInd = 0;
    SetValue ( featList, 1 );
  }
  g2 = HiddenGroup ( g1, 1, 0, NULL );
  PushButton ( g2, "Top", OnFeatTop );
  PushButton ( g2, " Bottom ", OnFeatBottom );
  featHideButton = PushButton ( g2, "Hide", OnFeatHide );
  g2 = HiddenGroup ( glr, 3, 0, NULL );
#ifdef WIN_MOTIF
  SetGroupMargins ( g2, 8, 8 );
#endif
  toAlign[0] = (Handle)PushButton ( g2, "Move", OnFeatMove );
  toAlign[1] = (Handle)StaticPrompt ( g2, "To", 0, 0, systemFont, 'l');
  featPopup = PopupList ( g2, FALSE, NULL );
  toAlign[2] = (Handle)featPopup;
  FillGroupList(FALSE);
  SetGroupValue (curGroupInd);
  FillFeatPopup(FALSE);
  UpdateDlgControls ();
  return g;
}
Example #26
0
		LevelEditorToolBar::LevelEditorToolBar()
		{
			System::Windows::Controls::Image^ image;
			// Кисть объектов
			System::Windows::Controls::RadioButton^ mBrushToolBtn = gcnew RadioButton();
			image = gcnew System::Windows::Controls::Image();
			image->Source = ResourceHelper::GetPngSource("Brush.png");
			image->Width = 24;
			image->Height = 24;
			mBrushToolBtn->Content = image;
			mBrushToolBtn->Command = LevelEditorWindow::SelectEntityBrush;
			mBrushToolBtn->ToolTip = "Entity brush";

			// Добавить слой
			System::Windows::Controls::Button^ mAddLayerBtn = gcnew Button();
			image = gcnew System::Windows::Controls::Image();
			image->Source = ResourceHelper::GetPngSource("AddLayer.png");
			image->Width = 24;
			image->Height = 24;
			mAddLayerBtn->Content = image;
			mAddLayerBtn->Command = LevelEditorWindow::AddLayerCommand;
			mAddLayerBtn->ToolTip = "Add layer";

			// Включить сетку
			System::Windows::Controls::CheckBox^ mActivateGridBtn = gcnew CheckBox();
			image = gcnew System::Windows::Controls::Image();
			image->Source = ResourceHelper::GetPngSource("Grid.png");
			image->Width = 24;
			image->Height = 24;
			mActivateGridBtn->Content = image;
			mActivateGridBtn->Command = LevelEditorCommands::ActivateGrid;
			mActivateGridBtn->ToolTip = "Snap to grid";

			// Выбор объектов
			System::Windows::Controls::RadioButton^ mSelectorBtn = gcnew RadioButton();
			image = gcnew System::Windows::Controls::Image();
			image->Source = ResourceHelper::GetPngSource("Select.png");
			image->Width = 24;
			image->Height = 24;
			mSelectorBtn->Content = image;
			mSelectorBtn->Command = LevelEditorCommands::SelectObjectsSelector;
			mSelectorBtn->ToolTip = "Select entity";

			// Включение физики
			CheckBox^ mTurnPhisics = gcnew CheckBox();
			image = gcnew System::Windows::Controls::Image();
			image->Source = ResourceHelper::GetPngSource("Physics.png");
			image->Width = 24;
			image->Height = 24;
			mTurnPhisics->Content = image;
			mTurnPhisics->Command = LevelEditorCommands::ActivatePhisics;
			mTurnPhisics->ToolTip = "Physics";

			CheckBox^ mDrawPhisics = gcnew CheckBox();
			image = gcnew System::Windows::Controls::Image();
			image->Source = ResourceHelper::GetPngSource("Shapes.png");
			image->Width = 24;
			image->Height = 24;
			mDrawPhisics->Content = image;
			mDrawPhisics->Command = LevelEditorCommands::DrawPhisics;
			mDrawPhisics->ToolTip = "Draw physics";

			// Добавляем кнопки
			AddChild(mBrushToolBtn);
			AddChild(mSelectorBtn);
			AddChild(mAddLayerBtn);
			AddChild(mActivateGridBtn);
			AddChild(mTurnPhisics);
			AddChild(mDrawPhisics);
		}
Example #27
0
/*-----------------------------------------------------------------------*
| <<< メニュー描画&判定 >>>
|	入力	p		  = 描画座標
|			HInterval = 縦の配置
*------------------------------------------------------------------------*/
void	MenuMain(VEC2 *p, float fHInterval)
{

	if(iIntervalTime == 0 && bMenuOk){ return;}

	//--- メニューの項目を描画 ----------------------------------
	d3_stat_zread_set( false);					// 重なりを無視する
	d3_stat_zwrite_set(false);
	d3_stat_alpha_set( true);					// 透明オン
	d3_stat_filter_set(D3_FILTER_LINEAR);		// ぼかし処理

	//--- カーソル処理 ------------------------------------------
	if(pad.bKeyClick[KEY_UP])
	{
		iMenuSel--;
		if(iMenuSel < 0){ iMenuSel = iMenuMax -1;}
	}
	if(pad.bKeyClick[KEY_DOWN])
	{
		iMenuSel++;
		if(iMenuSel >= iMenuMax){ iMenuSel = 0;}
	}

	//--- マウスを動かしたらどこを指しているかの変数をリセッする --
	if((pad.sMoveX || pad.sMoveY) && iIntervalTime == 0)
	{
		iMenuSel = -1;
	}

	// p0 を左上座標とする
	VEC2	p0 = *p;

	for(int i = 0; i < iMenuMax; i++)
	{
		//--- 描画スイッチ ------------------------------------------
		bool	bDraw = false;
		if(iIntervalTime == 0				// iIntervaltime が 0の時はメニュー未選択の時
		||(iIntervalTime % 20) > 5 && iMenuSel == i)
		{
			bDraw = true;
		}

		//--- 枠 -----------------------------------------------------
		int		iTex  = TEX_MENU_FRAME0;				// 枠のテクスチャー番号
		D3_INFO *info = &d3.texInfo[iTex];
		// p0 は右下座標		↓オリジナル画像のサイズを得ている
		VEC2	p1 = p0 + VEC2(info->fOriWidth, info->fOriHeight);

		// マウスとの当たり判定
		//if(CheckBox(&p0, &p1))
		if((pad.sMoveX || pad.sMoveY) && CheckBox(&p0, &p1) || iMenuSel == i)
		{
			d3_tex_set(iTex + 1);
			if(iIntervalTime == 0){ iMenuSel = i;}
		}
		else
		{
			d3_tex_set(iTex);
		}
		// 描画
		if(bDraw){ d3_2d_box_fill_tex_draw(&p0, &p1, 0, 0, info->fU, info->fV, D3_COL(255, 255, 255, 255));}

		//--- メニューの文字を描画 ----------------------------------------------
		info = &d3.texInfo[TEX_MENU0];

		#if CENTER_ == 1
			float	fX = (__SCR_W - info->fWidth / 4) / 2;
		#else
			float	fX = p0.x;
		#endif

		d3_tex_set(				TEX_MENU0 + i);
		if(bDraw){ d3_2d_box_fill_tex_draw(&VEC2(fX, p0.y),&VEC2(fX + info->fWidth / 2, p0.y + info->fHeight / 2));}

		//--- 改行 --------------------------------------------------------------
		p0.y += fHInterval;
	}
	//--- キャンセル時には -2、それ以外は指定の値を返す ---------------------------
	if((pad.bRightClick || pad.bKeyClick[KEY_X]) && bMenuCancelEnable)
	{
		iMenuMax	=0;
		bMenuCancel = true;
		iMenuSel	= -2;
	}
	else if((pad.bLeftClick || pad.bKeyClick[KEY_Z]) && iMenuSel >= 0)
	{
		iIntervalTime = INTERVAL_TIME_;
	}
	//--- 点滅処理 ----------------------------------------------
	if(iIntervalTime > 0)
	{
		iIntervalTime--;
		if(iIntervalTime == 0)
		{
			iMenuMax = 0;
			bMenuOk  = true;
		}
	}

	//--- 終了処理 ---------------------------------------------------------------
	d3_stat_zread_set( true);				// 重なりを有効にする
	d3_stat_zwrite_set(true);
}
Example #28
0
void init(){

  //  scene.getLight(0).setOn(false);
  scene.getLight(0).setDiffuse(GeomColor(255,255,255,50));

  SceneLight &l = scene.getLight(1);
  static Camera cam(Vec(0,0,600,1),
                    Vec(0,0,-1,1),
                    Vec(0,-1,0,1));
  cam.setResolution(Size(1024,1024));
  scene.setGravity(Vec(0,0,-1000));

  l.setShadowCam(new Camera(cam));
  l.setShadowEnabled(true);
  l.setAnchorToWorld();
  l.setPosition(Vec(0,0,600,1));
  l.setOn(true);
  l.setSpecularEnabled(true);
  l.setDiffuseEnabled(true);
  l.setSpecular(GeomColor(0,100,255,255));
  l.setDiffuse(GeomColor(255,100,0,30));

  scene.setPropertyValue("shadows.use improved shading",true);
  scene.setPropertyValue("shadows.resolution",2048);
  scene.setPropertyValue("shadows.bias",10);


  //static const int W=20,H=13,DIM=W*H;
  static const int W=pa("-paper-dim",0), H=pa("-paper-dim",1);
  static Img8u frontFace = load<icl8u>(*pa("-ff"));
  static Img8u backFace = load<icl8u>(*pa("-bf"));

  const Size s(210,297);
  const Vec corners[4] = {
    Vec(-s.width/2, -s.height/2, 150,1),
    Vec(s.width/2, -s.height/2, 150,1),
    Vec(s.width/2, s.height/2, 150,1),
    Vec(-s.width/2, s.height/2, 150,1),
  };

  paper = new ManipulatablePaper(&scene,&scene,W,H,corners,true,&frontFace,&backFace);
  //scene.removeObject(paper);
  //paper->addShadow(-74.5);


  if(pa("-o")){
    std::vector<Camera> cams;
    for(int i=0;i<3;++i){
      cams.push_back(Camera(*pa("-c",i)));
    }
    capturer = new SceneMultiCamCapturer(scene, cams);
    //    Scene::enableSharedOffscreenRendering();
    scene.setDrawCamerasEnabled(false);
  }

  gui << Draw3D(Size::VGA).minSize(32,24).handle("draw")
      << (VBox().maxSize(12,100).minSize(12,1)
          << ( HBox()
               << Fps(10).handle("fps")
               << Button("add clutter").handle("add")
               )
          << ( HBox()
               << Button("stopped","running",true).out("run")
               << Button("paper ...").handle("props")
               )
          << ( HBox()
               << CheckBox("show cubes").out("showCubes")
               << CheckBox("show texture",false).out("showTexture")
               << CheckBox("show links",false).out("showLinks")
             )
          << FSlider(0,1,0.5).out("vertexMoveFactor").label("manual force")
          << FSlider(1,100,10).out("attractorStreangth").label("attractor force")
          << FSlider(0.0001,0.9999,0.9).handle("globalStiffness").label("global paper stiffness")
          << ( HBox()
               << Button("reset paper").handle("resetPaper")
               << Combo("1,5,10,25,!200,300,500").handle("maxFPS").label("max FPS")
               )
          << FSlider(0.1,20,2).handle("cm").label("collision margin")

          << ( HBox()
               << Button("memorize").handle("mem")
               << CheckBox("soften with mouse",true).handle("soften")
               << Button("test").handle("pct")
             )
          )

      << Show();

  propGUI << Prop("paper").minSize(16,1).maxSize(16,100) << Create();

  gui["pct"].registerCallback(paper_coords_test);
  gui["props"].registerCallback(utils::function((GUI&)propGUI,&GUI::switchVisibility));
  gui["resetPaper"].registerCallback(reset_paper);
  gui["globalStiffness"].registerCallback(change_global_stiffness);

  scene.PhysicsWorld::addObject(&ground);
  scene.Scene::addObject(&groundVis);

  DrawHandle3D draw = gui["draw"];
  draw->install(paper->createMouseHandler(0));
  draw->install(&foldLine);
  draw->link(scene.getGLCallback(0));

  foldLine.cb = utils::function(fold_line_cb);



}
Example #29
0
extern void ShowNetConfigForm (WndActnProc activate, FormMessageFunc messages,
                               VoidProc accepted, VoidProc cancelled,
                               VoidProc turnedOff, Boolean netCurrentlyOn)
{
  ButtoN        b;
  GrouP         c;
  GrouP         g;
  GrouP         h;
  GrouP         j;
  Int2          len;
  NetConfigPtr  ncp;
  PrompT        ppt0, ppt1;
  ButtoN        rb;
  Char          str [256];
  WindoW        w;
  GrouP         x;
  GrouP         z;

  w = NULL;
  ncp = (NetConfigPtr) MemNew (sizeof (NetConfigData));
  if (ncp != NULL) {

    w = FixedWindow (-50, -33, -10, -10, "Network Configuration",
                     StdSendCloseWindowMessageProc);
    SetObjectExtra (w, ncp, StdCleanupFormProc);
    ncp->form = (ForM) w;
    ncp->formmessage = ConfigMessageProc;

    ncp->appmessage = messages;
    ncp->activate = activate;
    SetActivate (w, ConfigFormActivate);

    ncp->accepted = accepted;
    ncp->cancelled = cancelled;
    ncp->turnedOff = turnedOff;

    h = HiddenGroup (w, -1, 0, NULL);
    SetGroupSpacing (h, 5, 10);

    j = HiddenGroup (h, 2, 0, NULL);
    ppt0 = StaticPrompt (j, "Connection", 0, 0, programFont, 'l');
    ncp->srvConnMode = HiddenGroup (j, 4, 0, ChangeConnection);
    SetObjectExtra (ncp->srvConnMode, ncp, NULL);
    rb = RadioButton (ncp->srvConnMode, "None");
    RadioButton (ncp->srvConnMode, "Normal");
    RadioButton (ncp->srvConnMode, "Firewall");
    /* RadioButton (ncp->srvConnMode, "Stateless"); */
    SetValue (ncp->srvConnMode, 2);
    if (turnedOff == NULL) {
      Disable (rb);
    }
    AlignObjects (ALIGN_MIDDLE, (HANDLE) ppt0, (HANDLE) ncp->srvConnMode, NULL);

    ncp->netGroup = HiddenGroup (h, -1, 0, NULL);
    SetGroupSpacing (ncp->netGroup, 5, 10);
  
    SelectFont (programFont);
    len = StringWidth ("HTTP Proxy Server ") + 2;
    SelectFont (systemFont);

    z = HiddenGroup (ncp->netGroup, -2, 0, NULL);
    StaticPrompt (z, "HTTP Proxy Server", len, dialogTextHeight, programFont, 'l');
    ncp->proxyHost = DialogText (z, "", 12, ChangeProxy);
    SetObjectExtra (ncp->proxyHost, ncp, NULL);
    /*
    StaticPrompt (z, "", 0, 0, programFont, 'l');
    StaticPrompt (z, "", 0, 0, programFont, 'l');
    */
    ppt0 = StaticPrompt (z, "HTTP Proxy Port ", len, dialogTextHeight, programFont, 'l');
    ncp->proxyPort = DialogText (z, "", 3, NULL);
    x = MultiLinePrompt (z, "Non-transparent Proxy Server", len, programFont);
    ncp->firewallProxy = DialogText (z, "", 12, NULL);
    AlignObjects (ALIGN_MIDDLE, (HANDLE) x, (HANDLE) ncp->firewallProxy, NULL);
    /*
    AlignObjects (ALIGN_MIDDLE, (HANDLE) ppt0, (HANDLE) ncp->proxyPort,
                  (HANDLE) ncp->firewallProxy, NULL);
    */
    AlignObjects (ALIGN_RIGHT, (HANDLE) ncp->proxyHost, (HANDLE) ncp->firewallProxy, NULL);
    AlignObjects (ALIGN_LEFT, (HANDLE) ncp->proxyHost, (HANDLE) ncp->firewallProxy, NULL);

    g = HiddenGroup (ncp->netGroup, 5, 0, NULL);
    /*
    ppt0 = StaticPrompt (g, "Domain name server", 0, 0, programFont, 'l');
    ncp->dnsAvailable = CheckBox (g, "Available", NULL);
    */
    ncp->dnsAvailable = CheckBox (g, "Domain Name Server", NULL);
    SetStatus (ncp->dnsAvailable, TRUE);
    /* StaticPrompt (g, " ", 0, 0, programFont, 'l'); */
    ppt1 = StaticPrompt (g, "Timeout", 0, popupMenuHeight, programFont, 'l');
    ncp->timeOut = PopupList (g, TRUE, NULL);
    PopupItem (ncp->timeOut, "10 seconds");
    PopupItem (ncp->timeOut, "30 seconds");
    PopupItem (ncp->timeOut, "60 seconds");
    PopupItem (ncp->timeOut, " 5 minutes");
    SetValue (ncp->timeOut, 2);
    AlignObjects (ALIGN_MIDDLE, /* (HANDLE) ppt0, */ (HANDLE) ncp->dnsAvailable,
                  (HANDLE) ppt1, (HANDLE) ncp->timeOut, NULL);

    c = HiddenGroup (w, 4, 0, NULL);
    SetGroupSpacing (c, 10, 2);
    ncp->accept = PushButton (c, "Accept", AcceptNetConfigForm);
    SetObjectExtra (ncp->accept, ncp, NULL);
    b = PushButton (c, "Cancel", StdSendCancelButtonMessageProc);
    SetObjectExtra (b, ncp, NULL);

    /*
    AlignObjects (ALIGN_CENTER, (HANDLE) h, (HANDLE) c, NULL);
    */
    AlignObjects (ALIGN_CENTER, (HANDLE) j, (HANDLE) z, (HANDLE) g, (HANDLE) c, NULL);

    RealizeWindow (w);

    if (! netCurrentlyOn) {
      SafeSetValue (ncp->srvConnMode, 1);
      Hide (ncp->netGroup);
    } else if (GetAppParam ("NCBI", "CONN", "FIREWALL", NULL, str, sizeof (str))) {
      if (StringICmp (str, "TRUE") == 0) {
        SafeSetValue (ncp->srvConnMode, 3);
      }
    }
    if (GetAppParam ("NCBI", "CONN", "HTTP_PROXY_HOST", NULL, str, sizeof (str))) {
      if (! StringHasNoText (str)) {
        SafeSetTitle (ncp->proxyHost, str);
        if (GetValue (ncp->srvConnMode) == 2) {
          SafeSetValue (ncp->srvConnMode, 3);
        }
      }
    }
    if (GetAppParam ("NCBI", "CONN", "HTTP_PROXY_PORT", NULL, str, sizeof (str))) {
      if (! StringHasNoText (str)) {
        SafeSetTitle (ncp->proxyPort, str);
      }
    }
    if (GetAppParam ("NCBI", "CONN", "PROXY_HOST", NULL, str, sizeof (str))) {
      if (! StringHasNoText (str)) {
        SafeSetTitle (ncp->firewallProxy, str);
      }
    }
    if (GetAppParam ("NCBI", "CONN", "HOST", NULL, str, sizeof (str))) {
      if (StringICmp (str, "130.14.29.110") == 0) {
        SafeSetStatus (ncp->dnsAvailable, FALSE);
      }
    }
    if (GetAppParam ("NCBI", "CONN", "TIMEOUT", "30", str, sizeof (str))) {
      if (StringICmp (str, "10") == 0) {
        SafeSetValue (ncp->timeOut, 1);
      } else if (StringICmp (str, "60") == 0) {
        SafeSetValue (ncp->timeOut, 3);
      } else if (StringICmp (str, "300") == 0) {
        SafeSetValue (ncp->timeOut, 4);
      } else {
        SafeSetValue (ncp->timeOut, 2);
      }
    }

    ChangeConfigControls (ncp);

    Show (w);
    Select (w);
    Select (ncp->proxyHost);
  }
}
Example #30
0
static void Cn3D_ExportKin(IteM i)
{
    PDNMS pdnmsThis = NULL;
    PMSD pmsdThis = NULL;
    Char pcSavestr[60];
    Char pcSavename[32];
    CharPtr Cn3D_pcKinName;
    GrouP g, g2, g3, g4;
    GrouP gMS;
    ButtoN b;
    Int2 iCount;

    if (Cn3D_Export_InUse)
        return;
    else
        Cn3D_Export_InUse = TRUE;

    pdnmsThis = GetSelectedModelstruc();
    if (!pdnmsThis) {
        Cn3D_Export_InUse = FALSE;
        return;
    }
    pmsdThis = (PMSD) pdnmsThis->data.ptrvalue;

    Cn3D_wKinSave = ModalWindow(-20, -13, -10, -10, NULL);

    /* set up a group encolosing structures - models selection lists and - "info strings" */
    Cn3D_pcKinName = StringSave(GetStrucStrings(pdnmsThis, PDB_ACC));
    sprintf(pcSavestr, "Save %s As a Kinemage Rendered File ...",
            Cn3D_pcKinName);
    g = HiddenGroup(Cn3D_wKinSave, 0, 5, NULL);
    SetGroupMargins(g, 10, 10);
    SetGroupSpacing(g, 10, 5);
    StaticPrompt(g, pcSavestr, 0, 0, systemFont, 'l');
    g2 = HiddenGroup(g, 2, 0, NULL);
    SetGroupMargins(g2, 10, 10);
    SetGroupSpacing(g2, 10, 5);
    StringNCpy(pcSavename, Cn3D_pcKinName, 8);
    StringCat(pcSavename, ".kin");
    Cn3D_tKinSave =
        DialogText(g2, pcSavename, 18, (TxtActnProc) Cn3D_KinEnableProc);
    MemFree(Cn3D_pcKinName);

    Cn3D_bKinBrowse =
        PushButton(g2, " browse...", (BtnActnProc) Cn3D_KinBrowseProc);
    g3 = HiddenGroup(g, 2, 0, NULL);
    gMS = Cn3D_ModelSelect(g3, FALSE); /* no vector models for Kin files saves */
    g4 = HiddenGroup(g3, 0, 2, NULL);
    SetGroupMargins(g4, 10, 10);
    SetGroupSpacing(g4, 10, 5);
    Cn3D_bKinOk = PushButton(g4, "OK", Cn3D_ExportKinNow);
    b = PushButton(g4, "Cancel", Cn3D_CancelKin);

    Cn3D_gColorAtoms =
        NormalGroup(g, 2, 2, " color by...", systemFont, NULL);
    SetGroupMargins(Cn3D_gColorAtoms, 10, 10);
    SetGroupSpacing(Cn3D_gColorAtoms, 10, 5);
    RadioButton(Cn3D_gColorAtoms, "Molecule number");
    RadioButton(Cn3D_gColorAtoms, "Secondary Structure & Residue Type");
    RadioButton(Cn3D_gColorAtoms, "Thermal Factors");
    RadioButton(Cn3D_gColorAtoms, "Element");
    SetValue(Cn3D_gColorAtoms, 1);

    Cn3D_gRenderOpts =
        NormalGroup(g, 2, 3, " viewable subsets...", systemFont, NULL);
    Cn3D_bRender[0] = CheckBox(Cn3D_gRenderOpts, "Virtual Backbone", NULL);
    Cn3D_bRender[1] = CheckBox(Cn3D_gRenderOpts, "Real Backbone", NULL);
    Cn3D_bRender[2] = CheckBox(Cn3D_gRenderOpts, "Residues", NULL);
    Cn3D_bRender[3] = CheckBox(Cn3D_gRenderOpts, "Heterogens", NULL);
    Cn3D_bRender[4] =
        CheckBox(Cn3D_gRenderOpts, "Alternate Conformations", NULL);
    Cn3D_bRender[5] = CheckBox(Cn3D_gRenderOpts, "NMR Animations", NULL);
    for (iCount = 0; iCount < 6; iCount++)
        SetStatus(Cn3D_bRender[iCount], TRUE);

    Cn3D_KinEnableProc(NULL);
    Select(Cn3D_bKinOk);
    /* disable appropriate stuff here */
    Cn3D_DisableFileOps();
    Show(Cn3D_wKinSave);

    return;
}