zoukankan      html  css  js  c++  java
  • occ 中绘制二维矩形

    在屏幕上绘制一个二级矩形

    #include <Visual3d_Layer.hxx>

    #include <V3d_LayerMgr.hxx>

    #include <Visual3d_ViewManager.hxx>

    #include "FTFont.h"

    #include "FTGLBitmapFont.h"

      class V3d_TextItem : public Visual3d_LayerItem { public:

       V3d_TextItem(const Handle(Visual3d_Layer)& theLayer);

      void RedrawLayerPrs();

    private:

     Standard_Real            myX1;  

    Standard_Real            myY1;

     TCollection_AsciiString  myText;  

    Standard_Real            myHeight;  

    Handle(Visual3d_Layer)   myLayer;

     Quantity_Color           myColor;  

    Quantity_Color           mySubtitleColor;

     Aspect_TypeOfDisplayText myType;  

    TCollection_AsciiString  myFontName;

    };

     V3d_TextItem::V3d_TextItem (const Handle(Visual3d_Layer)& theLayer) : myLayer(theLayer)

    {

     if (!myLayer.IsNull ())   myLayer->AddLayerItem (this);

    }

     void V3d_TextItem::RedrawLayerPrs ()

     interactive_context_->CurrentViewer()->InitActiveViews();  

    Handle(V3d_View) v3d_view = interactive_context_->CurrentViewer()->ActiveView();

       Handle(Visual3d_Layer) anOverlay = interactive_context_->CurrentViewer()->Viewer()->OverLayer();  

    if (anOverlay.IsNull ())

      {   

    Handle(V3d_LayerMgr) aMgr = new V3d_LayerMgr (v3d_view);    anOverlay = aMgr->Overlay ();    v3d_view->SetLayerMgr (aMgr);  

    }

      anOverlay->Begin();  

    anOverlay->DrawRectangle(0, 0, 100, 100);

      anOverlay->End();

    一个Visual3d_Layer关联一个v3d, 先编译到一个显示列表里面,然后再渲染。

     

  • 相关阅读:
    2020软件工程作业04
    2020软件工程作业03
    2020软件工程作业02
    2020软件工程作业01
    问题清单
    2020软件工程个人作业06
    2020软件工程作业05
    2020软件工程作业00
    2020软件工程作业04
    2020软件工程作业03
  • 原文地址:https://www.cnblogs.com/lizhengjin/p/5298992.html
Copyright © 2011-2022 走看看