亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? occviewer.cpp

?? Wrapper Class For SWT Opencascade
?? CPP
字號(hào):
#include "StdAfx.h"
#include ".\occviewer.h"

#pragma warning( disable : 4800 )
OCCViewer::OCCViewer(void)
{
	myGraphicDevice=NULL;
	myViewer=NULL;
	myView=NULL;
	myAISContext=NULL;
	Workpiece = new AIS_Shape(currWorkpiece);
}

OCCViewer::~OCCViewer(void)
{


          
	 	if (!myView.IsNull())
		   myView->Remove();
}

bool OCCViewer::InitViewer(int wnd)
{

	printf("InitViewer");
	try {
			myGraphicDevice = new  Graphic3d_WNTGraphicDevice();
		} catch (Standard_Failure) {
			return false;
		}
	TCollection_ExtendedString a3DName("Visu3D");
	myViewer = new V3d_Viewer( myGraphicDevice, a3DName.ToExtString(),"", 1000.0, 
									V3d_XposYnegZpos, Quantity_NOC_GRAY30,
									V3d_ZBUFFER,V3d_GOURAUD,V3d_WAIT, 
									Standard_True, Standard_False);

	myViewer->Init();
	myViewer->SetDefaultLights();
	myViewer->SetLightOn();
	myView = myViewer->CreateView();
	Handle(WNT_Window) aWNTWindow = new WNT_Window(myGraphicDevice, reinterpret_cast<HWND> (wnd));
	aWNTWindow->SetFlags(WDF_NOERASEBKGRND);
	myView->SetWindow(aWNTWindow);
	if (!aWNTWindow->IsMapped()) 
		 aWNTWindow->Map();
	myAISContext = new AIS_InteractiveContext(myViewer);
	

	
	myAISContext->UpdateCurrentViewer();
	myView->Redraw();
	myView->MustBeResized();
	
	
	


	return true;

}


void OCCViewer::UpdateView(void)
{
	if (!myView.IsNull())
		myView->MustBeResized();
}

void OCCViewer::RedrawView(void)
{
	if (!myView.IsNull())
		myView->Redraw();
}

void OCCViewer::SetDegenerateModeOn(void)
{
	if (!myView.IsNull())
		myView->SetDegenerateModeOn();
}

void OCCViewer::SetDegenerateModeOff(void)
{
	if (!myView.IsNull())
		myView->SetDegenerateModeOff();
}

void OCCViewer::WindowFitAll(int Xmin, int Ymin, int Xmax, int Ymax)
{
	if (!myView.IsNull())
		myView->WindowFitAll(Xmin, Ymin, Xmax, Ymax);
}

void OCCViewer::Place(int x, int y, float zoomFactor)
{
	Quantity_Factor aZoomFactor = zoomFactor;
	if (!myView.IsNull())
		myView->Place(x, y, aZoomFactor);
}

void OCCViewer::Zoom(int x1, int y1, int x2, int y2)
{
	if (!myView.IsNull())
		myView->Zoom(x1, y1, x2, y2);
}

void OCCViewer::Pan(int x, int y)
{
	if (!myView.IsNull())
		myView->Pan(x, y);
}

void OCCViewer::Rotation(int x, int y)
{
	if (!myView.IsNull())
		myView->Rotation(x, y);
}

void OCCViewer::StartRotation(int x, int y)
{
	if (!myView.IsNull())
		myView->StartRotation(x, y);
}

void OCCViewer::Select(int x1, int y1, int x2, int y2)
{
	if (!myAISContext.IsNull())
		myAISContext->Select(x1, y1, x2, y2, myView);
}

void OCCViewer::Select(void)
{
	if (!myAISContext.IsNull())
		myAISContext->Select();
}

void OCCViewer::MoveTo(int x, int y)
{
	if ((!myAISContext.IsNull()) && (!myView.IsNull()))
		myAISContext->MoveTo(x, y, myView);
}

void OCCViewer::ShiftSelect(int x1, int y1, int x2, int y2)
{
	if ((!myAISContext.IsNull()) && (!myView.IsNull()))
		myAISContext->ShiftSelect(x1, y1, x2, y2, myView);
}

void OCCViewer::ShiftSelect(void)
{
	if (!myAISContext.IsNull())
		myAISContext->ShiftSelect();
}

void OCCViewer::BackgroundColor(int& r, int& g, int& b)
{
	Standard_Real R1;
	Standard_Real G1;
	Standard_Real B1;
	if (!myView.IsNull())
		myView->BackgroundColor(Quantity_TOC_RGB,R1,G1,B1);
	r = (int)R1*255;
	g = (int)G1*255;
	b = (int)B1*255;
}



void OCCViewer::UpdateCurrentViewer(void)
{
	if (!myAISContext.IsNull())
		myAISContext->UpdateCurrentViewer();
}

void OCCViewer::FrontView(void)
{
	if (!myView.IsNull())
		myView->SetProj(V3d_Xpos); 
}

void OCCViewer::TopView(void)
{
	if (!myView.IsNull())
		myView->SetProj(V3d_Zpos); 
}

void OCCViewer::LeftView(void)
{
	if (!myView.IsNull())
		myView->SetProj(V3d_Ypos);
}

void OCCViewer::BackView(void)
{
	if (!myView.IsNull())
		myView->SetProj(V3d_Xneg);
}

void OCCViewer::RightView(void)
{
	if (!myView.IsNull())
		myView->SetProj(V3d_Yneg);
}

void OCCViewer::BottomView(void)
{
	if (!myView.IsNull())
		myView->SetProj(V3d_Zneg); 
}

void OCCViewer::AxoView(void)
{
	if (!myView.IsNull())
		myView->SetProj(V3d_XposYnegZpos);
}

void OCCViewer::ZoomAllView(void)
{
	if (!myView.IsNull())
	{
		myView->FitAll();
		myView->ZFitAll();
	}
}

float OCCViewer::Scale(void)
{
	if (myView.IsNull())
		return -1;
	else
		return (float)myView->Scale();
}

void OCCViewer::ResetView(void)
{
	if (!myView.IsNull())
		myView->Reset();
}

void OCCViewer::SetDisplayMode(int aMode)
{
	if (myAISContext.IsNull())
		return;
	AIS_DisplayMode CurrentMode;
	if (aMode == 0) 
		CurrentMode=AIS_WireFrame;
	else
		CurrentMode=AIS_Shaded;
    if(myAISContext->NbCurrents()==0 || myAISContext->NbSelected()==0)
       myAISContext->SetDisplayMode(CurrentMode);
    else 
	{
       for(myAISContext->InitCurrent();myAISContext->MoreCurrent();myAISContext->NextCurrent())
	           myAISContext->SetDisplayMode(myAISContext->Current(),aMode,Standard_False);
	         
	}
	 myAISContext->UpdateCurrentViewer();
}

void OCCViewer::SetColor(int r, int g, int b)
{
	if (myAISContext.IsNull())
		return;
	Quantity_Color col =  Quantity_Color(r/255.,g/255.,b/255.,Quantity_TOC_RGB);
	for (;myAISContext->MoreCurrent ();myAISContext->NextCurrent ())
	          myAISContext->SetColor (myAISContext->Current(),col.Name());
}

void OCCViewer::ObjectColor(int& r, int& g, int& b)
{
	if (myAISContext.IsNull())
		return;
	r=255;
	g=255;
	b=255;
	Handle_AIS_InteractiveObject Current ;
	Quantity_Color ObjCol;
	myAISContext->InitCurrent();
	if (!myAISContext->MoreCurrent())
		return;
    Current = myAISContext->Current();
	if ( Current->HasColor () ) {
      ObjCol = myAISContext->Color(myAISContext->Current());
	  Quantity_Parameter r1, r2, r3;
	  ObjCol.Values(r1, r2, r3, Quantity_TOC_RGB);
		r=(int)r1*255;
		g=(int)r2*255;
		b=(int)r3*255;
  	}
}

void OCCViewer::SetBackgroundColor(int r, int g, int b)
{
	if (!myView.IsNull())
		myView->SetBackgroundColor(Quantity_TOC_RGB,r/255.,g/255.,b/255.);
}

void OCCViewer::EraseObjects(void)
{
	if (myAISContext.IsNull())
		return;
	for(myAISContext->InitCurrent();myAISContext->MoreCurrent();myAISContext->NextCurrent())
        myAISContext->Erase(myAISContext->Current(),Standard_True,Standard_False);
	myAISContext->ClearCurrents();
}
/************************************************************************/
/*  See Standard_Version.hxx                                            */
/************************************************************************/
float OCCViewer::GetVersion(void)
{
	return (float)OCC_VERSION;
}

void OCCViewer::SetMaterial(int theMaterial)
{
	if (myAISContext.IsNull())
		return;
    for ( myAISContext->InitCurrent(); myAISContext->MoreCurrent (); myAISContext->NextCurrent () )
        myAISContext->SetMaterial( myAISContext->Current(), (Graphic3d_NameOfMaterial)theMaterial );
	myAISContext->UpdateCurrentViewer();
}

void OCCViewer::SetTransparency(int theTrans)
{
	if (myAISContext.IsNull())
		return;
	for( myAISContext->InitCurrent(); myAISContext->MoreCurrent(); myAISContext->NextSelected() )
		myAISContext->SetTransparency( myAISContext->Current(), ((Standard_Real)theTrans) / 10.0 );
}


bool OCCViewer::Dump(char *filename)
{
	if (myView.IsNull())
		return false;
	myView->Redraw();
    return (bool)myView->Dump(filename);
}

bool OCCViewer::IsObjectSelected(void)
{
	if (myAISContext.IsNull())
		return false;
	myAISContext->InitCurrent();
	return (bool)myAISContext->MoreCurrent();
}

int OCCViewer::DisplayMode(void)
{
	if (myAISContext.IsNull())
		return -1;
	int mode = -1;
	bool OneOrMoreInShading=false;
	bool OneOrMoreInWireframe=false;
	for (myAISContext->InitCurrent(); myAISContext->MoreCurrent(); myAISContext->NextCurrent())
	{
		if ( myAISContext->IsDisplayed( myAISContext->Current(), 1 ) )
             OneOrMoreInShading = true;
        if ( myAISContext->IsDisplayed( myAISContext->Current(), 0 ) )
             OneOrMoreInWireframe = true;
	}
	if (OneOrMoreInShading&&OneOrMoreInWireframe)
		mode=10;
	else if(OneOrMoreInShading)
		mode=1;
	else if (OneOrMoreInWireframe)
		mode=0;
	return mode;
}

void OCCViewer::CreateNewView(void* wnd)
{
	if (myAISContext.IsNull())
		return;
	myView = myAISContext->CurrentViewer()->CreateView();
	if (myGraphicDevice.IsNull())
			myGraphicDevice = new  Graphic3d_WNTGraphicDevice();
	Handle(WNT_Window) aWNTWindow = new WNT_Window(myGraphicDevice, reinterpret_cast<HWND> (wnd));
	myView->SetWindow(aWNTWindow);
	Standard_Integer w=100, h=100;
	aWNTWindow->Size(w,h);
	if (!aWNTWindow->IsMapped()) 
		 aWNTWindow->Map();
}

bool OCCViewer::SetAISContext(OCCViewer* Viewer)
{
	this->myAISContext=Viewer->GetAISContext();
	if (myAISContext.IsNull())
		return false;
	return true;
}

Handle_AIS_InteractiveContext OCCViewer::GetAISContext(void)
{
	return myAISContext;
}

int OCCViewer::CharToInt(char symbol)
{
	TCollection_AsciiString msg = symbol;
	return msg.IntegerValue();
}
bool OCCViewer::ImportBRep(char* filename)
{
	
	Standard_CString aFileName = (Standard_CString) filename;
	TopoDS_Shape aShape;
    BRep_Builder aBuilder;
    Standard_Boolean result = BRepTools::Read(aShape,aFileName,aBuilder);
	if (!result)
		return false;
	if(myAISContext->HasOpenedContext())
		myAISContext->CloseLocalContext();
	myAISContext->Display(new AIS_Shape(aShape));
	return true;
	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人一区二区三区| 国产一区二三区| 亚洲综合男人的天堂| 中文字幕一区二区三| 国产精品久久夜| 国产精品久线在线观看| 中文字幕一区二区三区在线播放| 欧美激情一二三区| 亚洲视频每日更新| 亚洲国产精品久久久久秋霞影院| 亚洲成国产人片在线观看| 亚洲成av人影院在线观看网| 午夜a成v人精品| 久久成人免费日本黄色| 国内精品久久久久影院一蜜桃| 国产在线精品一区二区夜色| 国产最新精品精品你懂的| 国产黄色精品视频| av激情综合网| 欧美日韩久久一区| 日韩欧美一区二区不卡| 久久久久久久综合日本| 国产精品国产三级国产aⅴ入口 | 国产日产欧产精品推荐色 | 国产成人午夜高潮毛片| 成人中文字幕合集| 欧美在线一区二区| 日韩欧美中文字幕制服| 亚洲国产精品黑人久久久| |精品福利一区二区三区| 亚洲国产精品久久人人爱 | 欧美性生活一区| 欧美一卡二卡三卡四卡| 国产网红主播福利一区二区| 亚洲女爱视频在线| 日本欧美加勒比视频| 国产乱码精品一区二区三区五月婷| 成人小视频在线| 欧美绝品在线观看成人午夜影视| 精品av综合导航| 亚洲欧美日韩小说| 美国欧美日韩国产在线播放| 成人精品视频一区二区三区| 欧美视频你懂的| 欧美精品一区二区三区四区 | 亚洲日本韩国一区| 免费在线看成人av| 99久久99久久久精品齐齐| 欧美丰满一区二区免费视频| 国产视频亚洲色图| 亚洲成人精品一区二区| 国产福利精品一区二区| 欧美视频中文字幕| 欧美国产日韩精品免费观看| 丝袜美腿亚洲综合| 99精品视频在线免费观看| 日韩一区二区在线看| 国产精品乱码妇女bbbb| 日韩国产精品久久| 99久久99久久综合| 久久精品这里都是精品| 日韩精品乱码av一区二区| 成人不卡免费av| 精品粉嫩aⅴ一区二区三区四区| 亚洲综合视频网| 成人h版在线观看| 久久嫩草精品久久久久| 日韩黄色在线观看| 一本到三区不卡视频| 国产日韩欧美不卡在线| 日本成人在线视频网站| 在线亚洲高清视频| 亚洲欧洲精品天堂一级| 国产一区二区主播在线| 日韩欧美国产午夜精品| 亚洲成年人影院| 91精品1区2区| 亚洲欧美日韩人成在线播放| 成人免费高清视频在线观看| 精品国产乱码久久久久久牛牛| 亚洲成av人片一区二区| 91女人视频在线观看| 国产欧美一区二区精品性色超碰| 麻豆一区二区三| 欧美丰满嫩嫩电影| 性久久久久久久久久久久| 日本乱码高清不卡字幕| 亚洲美女在线国产| 91女神在线视频| 亚洲三级在线看| 91在线国产观看| 中文字幕中文字幕中文字幕亚洲无线| 国模套图日韩精品一区二区| 日韩欧美国产高清| 麻豆国产欧美日韩综合精品二区| 欧美日韩综合在线免费观看| 亚洲香肠在线观看| 91高清在线观看| 亚洲国产精品天堂| 欧美日韩久久久| 五月天中文字幕一区二区| 欧美日韩精品欧美日韩精品一| 亚洲成人在线网站| 在线观看91精品国产麻豆| 丝瓜av网站精品一区二区| 欧美日韩国产欧美日美国产精品| 亚洲成av人片在线观看| 91麻豆精品国产91久久久资源速度| 亚洲国产另类av| 日韩一区二区三区免费观看| 蜜桃av一区二区在线观看| 精品成人在线观看| 成人免费视频播放| 亚洲美女一区二区三区| 欧美日韩中文字幕一区| 日本三级亚洲精品| 亚洲精品在线免费播放| 成人免费黄色大片| 玉米视频成人免费看| 5566中文字幕一区二区电影| 麻豆精品在线看| 国产三级欧美三级日产三级99| 国产v综合v亚洲欧| 亚洲精品国产一区二区精华液 | 欧美在线免费视屏| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩精品一区二区在线| 国产电影一区在线| 亚洲激情男女视频| 欧美精品精品一区| 国产露脸91国语对白| 亚洲另类一区二区| 在线播放国产精品二区一二区四区| 免费欧美高清视频| 亚洲国产精品t66y| 在线国产电影不卡| 精品在线播放免费| 国产精品亲子伦对白| 欧美精品乱码久久久久久按摩| 国产中文一区二区三区| 一区二区三区中文字幕精品精品| 欧美精品自拍偷拍| 国产福利91精品一区| 亚洲高清免费一级二级三级| 久久午夜老司机| 欧美天堂一区二区三区| 国产一区二区三区在线观看免费视频| 国产精品成人在线观看| 5月丁香婷婷综合| 99久久伊人精品| 日韩av不卡在线观看| 国产精品毛片无遮挡高清| 4438x成人网最大色成网站| 国产成人aaa| 日韩精品乱码av一区二区| 国产精品成人在线观看| 精品欧美一区二区久久| 在线看国产一区二区| 国产成人免费网站| 免播放器亚洲一区| 亚洲欧美一区二区三区国产精品| 精品成人一区二区| 欧美精品在线视频| 99精品国产热久久91蜜凸| 激情综合五月天| 亚洲线精品一区二区三区| 国产精品国产三级国产普通话蜜臀| 欧美一二三四区在线| 日本精品裸体写真集在线观看| 国产精品一区在线观看乱码| 日韩avvvv在线播放| 亚洲激情第一区| 国产精品第五页| 国产色一区二区| 精品久久人人做人人爰| 欧美人体做爰大胆视频| 91麻豆.com| 成人激情电影免费在线观看| 久久99久久99精品免视看婷婷 | 欧美亚洲动漫精品| 成a人片亚洲日本久久| 国产呦精品一区二区三区网站| 丝袜a∨在线一区二区三区不卡 | 波多野洁衣一区| 韩国视频一区二区| 奇米精品一区二区三区在线观看| 亚洲综合丝袜美腿| 伊人色综合久久天天人手人婷| 中文字幕不卡的av| 久久久亚洲国产美女国产盗摄| 91精品国产综合久久香蕉麻豆| 91美女在线看| 91色视频在线| 一本高清dvd不卡在线观看| 91网站最新网址| 色综合色狠狠天天综合色| aaa欧美色吧激情视频| av福利精品导航| 97se亚洲国产综合自在线| 成人福利视频在线看|