Creating a Prototype
The HOOPS Visualize installation includes simple applications for a variety of GUI technologies. These applications provide a framework for the tutorials discussed later in this guide, and can also serve as containers for prototyping code. This section reviews how to start with a simple HOOPS Visualize application and insert a ‘HelloWorld’ text string in the scene-graph. Your the GUI technology can be selected on the menu to the right.
MFC - Microsoft Foundation Classes
The MFC demonstration application can be found in the HOOPS Visualize solution, mfc_simple_vcXX project. Open the file SampleHView.cpp and find the function OnRunMyCode()
. After recompiling the project, the following code will be run when you start the application and click the down arrow:
void CSampleHView::OnRunMyCode()
{
HC_Open_Segment_By_Key(m_pHView->GetModelKey());
{
HC_Insert_Text(0, 0, 0, "Hello world");
}
HC_Close_Segment();
m_pHView->Update();
}
This code does the following:
- Opens the model segment using the model key
- Inserts the text string at the origin
- Closes the segment, since we aren’t doing anything else
- Updates the scene

Windows Forms
This tutorial describes how to take the ‘simple’ HOOPS/Winforms application and display the text ‘Hello World’ in the viewport. You may wish to first review the HOOPS/Winforms documentation to get an idea of the structure of the provided application.
Let’s modify the csharp_simple application to display the ‘Hello World’ text each time a new window is opened. This can be achieved by adding code to the custom HSimpleModel constructor which does the following:
- Opens the segment associated with the model object. The numerical identifier of the segment (called a ‘key’) is accessed by calling the model object’s
HBaseModel::GetModelKey
method, and the segment is opened using theHCS.Open_Segment_By_Key
subroutine. - Inserts a piece of text into the segment by calling
HCS.Insert_Text
. - Closes the segment by calling
HCS.Close_Segment
.
The sample code would be added to the HSimpleModel::Init
method in SimpleHNPanel.cs:
public class HSimpleModel : HBaseModel
{
...
override public void Init()
{
base.Init();
HCS.Open_Segment_By_Key(GetModelKey());
HCS.Insert_Text(0.0f, 0.0f, 0.0f, "Hello World");
HCS.Close_Segment();
}
...
}
Qt
This tutorial describes how to take the ‘simple’ HOOPS/QT application and display the text ‘Hello World’ in the viewport. You may wish to first review the HOOPS/QT documentation to get an idea of the structure of the provided application.
The source code to the simple HOOPS/Qt application is located in <hoops_install_dir>/demo/qt/qt_simple_4. Compile and run it to make sure your development environment is set up correctly.
Let’s modify the application to display the ‘Hello World’ text each time a new window is opened. This can be achieved by adding code to the custom HOOPS/QT widget’s constructor, which does the following:
- Opens the HOOPS/3dGS segment associated with the model object. The numerical identifier of the segment (called a ‘key’) is accessed by calling the model object’s
HBaseModel::GetModelKey
method, and the segment is opened usingOpen_Segment_By_Key
. - Inserts a piece of text into the segment by calling
Insert_Text
. - Closes the segment by calling
Close_Segment
.
The modified SimpleHQWidget
constructor would look like the following:
SimpleHQWidget::SimpleHQWidget(QWidget* parent, const char* name, const char * filename)
: HQWidget( parent, name )
{
CreateMenus();
// Create and initialize HOOPS/MVO Model and View objects
m_pHBaseModel = new HBaseModel();
m_pHBaseModel->Init();
HC_Open_Segment_By_Key(m_pHBaseModel->GetModelKey());
HC_Insert_Text(0.0f, 0.0f, 0.0f, "Hello World");
HC_Close_Segment();
// Initialize View object to null ; gets created in SimpleHQWidget::Init
m_pHView = 0;
// if called with a file name we load it
// otherwise open an empty view
if(filename)
m_pHBaseModel->Read(filename);
// enable MouseMoveEvents
setMouseTracking(true);
// enable key events
setEnabled(true);
setFocusPolicy(QWidget::StrongFocus);
}
Note that the sample code could have also been inserted in an overloaded method of HBaseModel::Init
.
Java
This tutorial describes how to take the ‘simple’ HOOPS/Java application and display the text ‘Hello World’ in the viewport. You may wish to first review the HOOPS/Java documentation to get an idea of the structure of the provided application.
The source code to the simple HOOPS/Java application is located in <hoops_install_dir>/demo/java/java_simple. Follow the steps in the readme.txt file to recompile and run it.
Let’s modify the application to display the ‘Hello World’ text each time a new window is opened. This can be achieved by adding code to the HSimpleModel::Init
which does the following:
- Opens the segment associated with the model object. The numerical identifier of the segment (called a ‘key’) is accessed by calling the model object’s
HBaseModel::GetModelKey
method, and the segment is opened using::Open_Segment_By_Key
. - Inserts a piece of text into the segment by calling
::Insert_Text
. - Closes the segment by calling
::Close_Segment
.
The modified HSimpleModel::Init
method would look like the following:
class HSimpleModel extends HBaseModel
{
...
public void Init()
{
super.Init();
HJ.Open_Segment_By_Key(GetModelKey());
HJ.Insert_Text(0.0f, 0.0f, 0.0f, "Hello World");
HJ.Close_Segment();
}
...
}
Note that the sample code could have also been inserted in an overloaded method of HBaseModel::Init
.