123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 |
- var OASISViewer = function (){
- var view = new SCOASIS.OASView();
- /**
- * 获取Viewer的dom对象。将Viewer加载到别的div对象里。
- * @returns 返回viewer的dom对象
- */
- this.GetDomElement=function(){
- return view.DivViewer;
- };
- /**
- * 添加事件监听。
- * @param event - 事件类型,该值为字符串类型。
- * "ModelSelectEvent"-选中对象触发事件。
- * "LoadModelEvent"-加载模型事件。
- * "ImageLabelClickEvent"-图像标签事件。
- * "TextLabelClickEvent"-文字标签事件。
- * "SphereSelectEven"-球体点击事件。
- * @param callback - 事件执行的回调。
- * 当监听"ModelSelectEvent"事件时,返回{type:"ModelSelectEvent",id:选中的模型id}。
- * 当监听"LoadModelEvent"事件时,返回{type:"LoadModelEvent",statusText:状态字符串}。
- * 当监听"ImageLabelClickEvent"事件时,返回{type:"ImageLabelClickEvent",id:图像标签关联的模型id}。
- * 当监听"TextLabelClickEvent"事件时,返回{type:"TextLabelClickEvent",id:文字标签关联的模型id}。
- * 当监听"SphereSelectEvent"事件时,返回{type:"SphereSelectEvent",id:选中球体的id}。
- */
- this.AddEventListener=function(event,callback){
- view.addEventListener(event,callback);
- };
- /**
- * 移除事件监听。
- * @param event - 事件类型,该值为字符串类型。
- * "ModelSelectEvent"-选中对象触发事件。
- * "LoadModelEvent"-加载模型事件。
- * "ImageLabelClickEvent"-图像标签事件。
- * @param callback - 事件执行的回调。
- */
- this.RemoveEventListener=function(event,callback){
- view.removeEventListener(event,callback);
- };
- /**
- * 更新Viewer大小。
- * @param width - 宽度。像素值。例如800。
- * @param height - 高度。像素值。例如600。
- */
- this.Resize=function(width,height){
- view.onsize(width,height);
- };
- /**
- * 清空viewer,调用此接口将清空viewer里所有元素,包括模型、标签等。
- */
- this.Reset=function(){
- view.reset();
- };
- /**
- * 添加模型。
- * @param jsonobject - 需要添加进当前场景的模型地址,地址存放在json对象的"files"字段。格式为{"files":["文件1的url地址","文件2的url地址",等]}。
- */
- this.AddModels=function(jsonobject){
- view.addModels(jsonobject);
- };
- /**
- * 移除模型。
- * @param jsonobject - 需要从当前场景中被移除的模型地址,地址存放在json对象的"files"字段。格式为{"files":["文件1的url地址","文件2的url地址",等]}。
- */
- this.RemoveModels=function(jsonobject){
- view.removeModels(jsonobject);
- };
- /**
- * 修改指定id的模型颜色。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。传入""对所有模型操作。
- * @param hexcolor - 模型的颜色。以十六进制表示。例如红色则为0xff0000,白色为0xffffff。
- */
- this.EditColor=function(id,hexcolor){
- view.editColor(id,hexcolor);
- };
- /**
- * 恢复指定id的模型颜色。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。传入""对所有模型操作。
- */
- this.RestoreColor=function(id){
- view.restoreColor(id);
- };
- /**
- * 修改指定id的模型透明度。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。传入""对所有模型操作。
- * @param alpha - 模型的透明度。
- */
- this.EditAlpha=function(id,alpha){
- view.editAlpha(id,alpha);
- }
- /**
- * 恢复指定id的模型透明度。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。传入""对所有模型操作。
- */
- this.RestoreAlpha=function(id){
- view.restoreAlpha(id);
- };
- /**
- * 编辑指定id的模型可见性。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。
- * @param visible - 可见性,true显示,false隐藏。
- */
- this.EditVisibility=function(id,visible){
- view.editVisibility(id,visible);
- };
- /**
- * 设置对象是否隔离。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。
- * @param isolation - 是否隔离,true隔离,false取消隔离。
- */
- this.SetIsolation=function(id,isolation){
- view.setModelIsolation(id,isolation);
- }
- /**
- * 查询对象是否被隔离。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。
- */
- this.IsIsolation=function(id){
- return view.isIsolation(id);
- }
- /**
- * 给指定id的模型对象添加图像标签。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。(支持传入创建的球体id,CreateSphereByCoordinate返回值)。
- * @param url - 图像标签显示图片的url地址。
- * @param width - 指定宽度。
- * @param height - 指定高度。
- */
- this.AddImageLabel=function(id,url,width,height){
- view.addImageLabel(id,url,width,height);
- };
- /**
- * 移除指定id模型的图像标签。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。(支持传入创建的球体id,CreateSphereByCoordinate返回值)。
- */
- this.RemoveImageLabel=function(id){
- view.removeImageLabel(id);
- };
- /**
- * 移除所有图像标签。
- */
- this.RemoveAllImageLabel=function(){
- view.removeAllImageLabel();
- };
- /**
- * 给指定id模型对象添加文字标签。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。(支持传入创建的球体id,CreateSphereByCoordinate返回值)。
- * @param text - 文字标签的文本内容。
- * @param parameters - 文字标签的配置参数。改值为json对象,可设置的参数为。
- */
- this.AddTextLabel=function(id,text,parameters){
- view.addTextLabel(id,text,parameters);
- };
- /**
- * 修改指定id模型对象的文字标签。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。(支持传入创建的球体id,CreateSphereByCoordinate返回值)。
- * @param text - 文字标签的文本内容。
- * @param parameters - 文字标签的配置参数。改值为json对象,可设置的参数为。
- */
- this.EditTextLabel=function(id,text,parameters){
- view.editTextLabel(id,text,parameters);
- };
- /**
- * 移除指定id模型对象的文字标签。
- * @param id - 模型的id。可通过ModelSelectEvent事件返回。(支持传入创建的球体id,CreateSphereByCoordinate返回值)。
- */
- this.RemoveTextLabel=function(id){
- view.removeTextLabel(id);
- };
- /**
- * 移除所有文字标签。
- */
- this.RemoveAllTextLabel=function(){
- view.removeAllTextLabel();
- };
- /**
- * 设置视图。
- * @param type - 视图类型。SCOASIS.ViewType.Front表示前视图,SCOASIS.ViewType.Back表示后视图,SCOASIS.ViewType.Left表示左视图,SCOASIS.ViewType.Right表示右视图,SCOASIS.ViewType.Top表示顶视图,SCOASIS.ViewType.Bottom表示底视图。
- */
- this.SetView=function(type){
- view.lookTo(type);
- };
- /**
- * 开启剖切面。
- * @param type - 剖切面类型。CutPlaneType.XY表示XY平面剖切面,该剖切面垂直于Z轴。CutPlaneType.XZ表示XZ平面剖切面,该剖切面垂直于Y轴。CutPlaneType.YZ表示YZ平面剖切面,该剖切面垂直于X轴。
- * @param percent - 剖切面在整个场景中的百分比。取值0-100。0表示最小剖切,即模型刚开始剖切,100表示最大剖切,即模型剖切完毕。
- */
- this.SetCuttingPlane=function(type,percent){
- view.SetCuttingPlane(type,percent);
- }
- /**
- * 移除剖切面。
- * @param type-
- */
- this.RemoveCuttingPlane=function(type){
- view.removeCuttingPlane(type);
- }
- /**
- * 开始捕捉模型坐标操作。(进入捕捉状态,鼠标在无按键按下的状态下移动捕捉坐标,鼠标左键按下确认坐标,且坐标数据以json格式传入callback。)
- * @param callback - 确认坐标时调用的回调方法,该方法参数为json格式。例如{x:0,y:0,z:0}。
- */
- this.StartPickupCoordinate=function(callback){
- view.startSelectVertice(callback);
- }
- /**
- * 结束捕捉模型坐标。
- */
- this.EndPickupCoordinate=function(){
- view.endSelectVertice();
- }
- /**
- * 开始测量。
- * @param type 测量类型,1-坐标测量。2-距离测量。
- */
- this.StartMeasure=function(type){
- view.startMeasure(type);
- }
- /**
- * 结束测量。
- */
- this.EndMeasure=function(){
- view.endMeasure();
- }
- /**
- * 根据坐标创建求体。
- * @param coordinate - 创建求体的中心点。json格式的数据。例如{x:0,y:0,z:0}。
- * @param radius 求体的半径。如果该值小于了0.00001则按0.00001计算。
- * @param defcolor 创建时的颜色值。以十六进制表示。例如红色则为0xff0000,白色为0xffffff。
- * @returns 返回被创建好的求体id。
- */
- this.CreateSphereByCoordinate=function(coordinate,radius,defcolor){
- return view.createSphere(coordinate,radius,defcolor);
- }
- /**
- * 移除球体。
- * @param jsonobject - 需要从当前场景中被移除的球体id,id存放在json对象的"ids"字段。格式为{"ids":["球体id1","球体id2",等]}。
- */
- this.RemoveSphere=function(jsonobject){
- return view.removeSphere(jsonobject);
- }
- /**
- * 根据id修改球体颜色。
- * @param id - 球体的id。可通过SphereSelectEvent事件返回。
- * @param hexcolor - 模型的颜色。以十六进制表示。例如红色则为0xff0000,白色为0xffffff。
- */
- this.EditSphereColor=function(id,hexcolor){
- view.editSphereColor(id,hexcolor);
- };
- /**
- * 修改背景颜色。
- * @param type -背景渐变类型,0-上下渐变,1-左右渐变。
- * @param color1 -颜色值1,类型为十六进制颜色的字符串,例如"#FF0000"表示红色。当type为0时,该值表示顶部颜色值。当type为1时,该值表示左边颜色值。
- * @param color2 -颜色值2,类型为十六进制颜色的字符串,例如"#FF0000"表示红色。当type为0时,该值表示底部颜色值。当type为1时,该值表示右边颜色值。
- */
- this.EditBackground=function(type,color1,color2){
- view.editBackground(type,color1,color2);
- }
- /**
- * 缩放视角到合适位置。当该方法不传参数的时候,剧中整个场景。当id为模型时,居中模型。
- * @param id - 对象的id。可传入模型id、球体id。也可不传参数,不传参数则缩放整个场景。
- * @param factor - 缩放的系数。
- */
- this.ZoomScene=function(id,factor){
- view.zoomScene(id,factor);
- }
- /**
- * 选中高亮模型。
- * @param id - 对象的id。可传入模型id、球体id。支持id的数组对象[]。
- * @param status - 状态,该值为数值,传1为追加,其余值为高亮当前。
- */
- this.SelectModel=function(id,status){
- view.highlightModel(id,status);
- }
- /**
- * 正常炸开模型。
- * @param explode - 控制是否炸开,true为开启炸开模型效果,false为恢复正常模型效果。
- * @param factor - 当explode为true时,控制炸开的距离系数。取值0-1之间。0为正常模式效果,1为最远炸开效果。
- */
- this.NormalExplodeModel=function(explode,factor){
- view.normalExplodeModel(explode,factor);
- }
- /**
- * 坐标轴可见性设置。
- * @param visible - true显示坐标轴,fasle隐藏坐标轴。
- */
- this.ShowAxis=function(visible){
- view.setAxisVisible(visible);
- }
- /**
- * 获取摄像机位置信息,返回字符串。
- * @returns 返回字符串,可使用该字符串作为SetCamera方法的参数用来恢复摄像机位置。
- */
- this.GetCamera=function(){
- return view.getCamera();
- }
- /**
- * 恢复摄像机位置信息。
- * @param values 摄像机信息字符串,通过GetCamera方法返回的值。
- */
- this.SetCamera=function(values){
- view.setCamera(values);
- }
- /**
- * 设置最小特性剔除
- * @param pixelValue 剔除值。
- */
- this.SetSmallFeatureCulling=function(pixelValue){
- view.setSmallFeatureCulling(pixelValue);
- }
- };
|