Merge pull request #2 from andreja6/instances
Merge instances with master
This commit is contained in:
BIN
G3DTest.suo
BIN
G3DTest.suo
Binary file not shown.
@@ -4,6 +4,7 @@
|
|||||||
Version="8.00"
|
Version="8.00"
|
||||||
Name="G3DTest"
|
Name="G3DTest"
|
||||||
ProjectGUID="{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
|
ProjectGUID="{6C4D6EEF-B1D1-456A-B850-92CAB17124BE}"
|
||||||
|
RootNamespace="G3DTest"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
@@ -143,14 +144,14 @@
|
|||||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
|
||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="2"
|
||||||
PrecompiledHeaderFile=".\Debug/G3DTest.pch"
|
PrecompiledHeaderFile=".\Debug/G3DTest.pch"
|
||||||
AssemblerListingLocation=".\Debug/"
|
AssemblerListingLocation=".\Debug/"
|
||||||
ObjectFile=".\Debug/"
|
ObjectFile=".\Debug/"
|
||||||
ProgramDataBaseFileName=".\Debug/"
|
ProgramDataBaseFileName=".\Debug/"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
@@ -202,12 +203,36 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
|
<AssemblyReference
|
||||||
|
RelativePath="System.dll"
|
||||||
|
AssemblyName="System, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
|
||||||
|
/>
|
||||||
|
<AssemblyReference
|
||||||
|
RelativePath="System.Data.dll"
|
||||||
|
AssemblyName="System.Data, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86"
|
||||||
|
/>
|
||||||
|
<AssemblyReference
|
||||||
|
RelativePath="System.Drawing.dll"
|
||||||
|
AssemblyName="System.Drawing, Version=2.0.0.0, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
|
||||||
|
/>
|
||||||
|
<AssemblyReference
|
||||||
|
RelativePath="System.Windows.Forms.dll"
|
||||||
|
AssemblyName="System.Windows.Forms, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
|
||||||
|
/>
|
||||||
|
<AssemblyReference
|
||||||
|
RelativePath="System.XML.dll"
|
||||||
|
AssemblyName="System.Xml, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
|
||||||
|
/>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Instance.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="main.cpp"
|
RelativePath="main.cpp"
|
||||||
>
|
>
|
||||||
@@ -228,11 +253,23 @@
|
|||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\PhysicalInstance.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl"
|
Filter="h;hpp;hxx;hm;inl"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath=".\Instance.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\PhysicalInstance.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
|
|||||||
21
Instance.cpp
Normal file
21
Instance.cpp
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#include <G3DAll.h>
|
||||||
|
#include "Instance.h"
|
||||||
|
|
||||||
|
std::string name;
|
||||||
|
Instance* parent;
|
||||||
|
static std::string className = "Instance";
|
||||||
|
|
||||||
|
Instance::Instance(void)
|
||||||
|
{
|
||||||
|
name = "Default Game Instance";
|
||||||
|
className = "Part";
|
||||||
|
}
|
||||||
|
|
||||||
|
Instance::~Instance(void)
|
||||||
|
{
|
||||||
|
name = "Default Game Instance";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
11
Instance.h
Normal file
11
Instance.h
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
class Instance
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Instance(void);
|
||||||
|
~Instance(void);
|
||||||
|
std::string name;
|
||||||
|
Instance* parent; // Another pointer.
|
||||||
|
std::string className;
|
||||||
|
};
|
||||||
29
PhysicalInstance.cpp
Normal file
29
PhysicalInstance.cpp
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#include <G3DAll.h>
|
||||||
|
#include "PhysicalInstance.h"
|
||||||
|
|
||||||
|
bool canCollide = true;
|
||||||
|
bool anchored = false;
|
||||||
|
Vector3 size;
|
||||||
|
Vector3 position;
|
||||||
|
Vector3 velocity;
|
||||||
|
Vector3 rotVelocity;
|
||||||
|
Color3 color;
|
||||||
|
|
||||||
|
PhysicalInstance::PhysicalInstance(void)
|
||||||
|
{
|
||||||
|
name = "Default PhysicalInstance";
|
||||||
|
className = "Part";
|
||||||
|
canCollide = true;
|
||||||
|
anchored = true;
|
||||||
|
size = Vector3(2,1,4);
|
||||||
|
position = Vector3(0,0,0);
|
||||||
|
color = Color3::gray();
|
||||||
|
velocity = Vector3(0,0,0);
|
||||||
|
rotVelocity = Vector3(0,0,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
PhysicalInstance::~PhysicalInstance(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
15
PhysicalInstance.h
Normal file
15
PhysicalInstance.h
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "instance.h"
|
||||||
|
|
||||||
|
class PhysicalInstance :
|
||||||
|
public Instance
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PhysicalInstance(void);
|
||||||
|
~PhysicalInstance(void);
|
||||||
|
Vector3 size;
|
||||||
|
Vector3 position;
|
||||||
|
Vector3 velocity;
|
||||||
|
Vector3 rotvelocity;
|
||||||
|
Color3 color;
|
||||||
|
};
|
||||||
134
main.cpp
134
main.cpp
@@ -11,12 +11,17 @@
|
|||||||
@author Morgan McGuire, matrix@graphics3d.com
|
@author Morgan McGuire, matrix@graphics3d.com
|
||||||
*/
|
*/
|
||||||
#include <G3DAll.h>
|
#include <G3DAll.h>
|
||||||
|
#include "Instance.h"
|
||||||
|
#include "PhysicalInstance.h"
|
||||||
|
|
||||||
#if G3D_VER < 61000
|
#if G3D_VER < 61000
|
||||||
#error Requires G3D 6.10
|
#error Requires G3D 6.10
|
||||||
#endif
|
#endif
|
||||||
static const float VNUM = 0.01F;
|
static const float VNUM = 0.01F;
|
||||||
|
static std::string title = "";
|
||||||
static const std::string VERSION = "PRE-ALPHA ";
|
static const std::string VERSION = "PRE-ALPHA ";
|
||||||
|
static std::vector<Instance*> instances;
|
||||||
|
static Instance* dataModel;
|
||||||
static GFontRef fntdominant = NULL;
|
static GFontRef fntdominant = NULL;
|
||||||
static GFontRef fntlighttrek = NULL;
|
static GFontRef fntlighttrek = NULL;
|
||||||
static bool democ = true;
|
static bool democ = true;
|
||||||
@@ -88,31 +93,127 @@ std::string Convert (float number){
|
|||||||
return buff.str();
|
return buff.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PhysicalInstance* makePart()
|
||||||
|
{
|
||||||
|
PhysicalInstance* part = new PhysicalInstance();
|
||||||
|
instances.push_back(part);
|
||||||
|
return part;
|
||||||
|
}
|
||||||
|
|
||||||
void Demo::onInit() {
|
void Demo::onInit() {
|
||||||
|
|
||||||
// Called before Demo::run() beings
|
// Called before Demo::run() beings
|
||||||
|
dataModel = new Instance();
|
||||||
|
//dataModel->name = "undefined";
|
||||||
|
dataModel->parent = NULL;
|
||||||
|
|
||||||
|
PhysicalInstance* test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3(0.2F,0.3F,1);
|
||||||
|
test->size = Vector3(24,1,24);
|
||||||
|
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3(.5F,1,.5F);
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(10,1,0);
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3(.5F,1,.5F);
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(-10,1,0);
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3::gray();
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(-7,2,0);
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3::gray();
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(7,2,0);
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3::gray();
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(-4,3,0);
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3::gray();
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(5,3,0);
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3::gray();
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(-1,4,0);
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3::gray();
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(3,4,0);
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3::gray();
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(2,5,0);
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3::gray();
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(0,6,0);
|
||||||
|
|
||||||
|
test = makePart();
|
||||||
|
test->parent = dataModel;
|
||||||
|
test->color = Color3::gray();
|
||||||
|
test->size = Vector3(4,1,2);
|
||||||
|
test->position = Vector3(-2,7,0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setDesiredFrameRate(FPSVal[index]);
|
setDesiredFrameRate(FPSVal[index]);
|
||||||
app->debugCamera.setPosition(Vector3(0, 2, 10));
|
app->debugCamera.setPosition(Vector3(0, 2, 10));
|
||||||
app->debugCamera.lookAt(Vector3(0, 2, 0));
|
app->debugCamera.lookAt(Vector3(0, 2, 0));
|
||||||
//std::string str = "Dynamica Duomillenium 5 Version " + VERSION + Convert(VNUM);
|
//std::string str = "Dynamica Duomillenium 5 Version " + VERSION + Convert(VNUM);
|
||||||
std::string str = "Game \"undefined\"";
|
//title = dataModel->name;
|
||||||
app->renderDevice->setCaption(str);
|
|
||||||
|
|
||||||
|
|
||||||
GApplet::onInit();
|
GApplet::onInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void clearInstances()
|
||||||
|
{
|
||||||
|
for(size_t i = 0; i < instances.size(); i++)
|
||||||
|
delete instances.at(i);
|
||||||
|
delete dataModel;
|
||||||
|
}
|
||||||
void OnError(int err, std::string msg = "")
|
void OnError(int err, std::string msg = "")
|
||||||
{
|
{
|
||||||
std::string emsg = "An unexpected error has occured and DUOM 5 has to quit. We're sorry!" + msg;
|
std::string emsg = "An unexpected error has occured and DUOM 5 has to quit. We're sorry!" + msg;
|
||||||
|
clearInstances();
|
||||||
MessageBox(NULL, emsg.c_str(),"Dynamica Crash", MB_OK);
|
MessageBox(NULL, emsg.c_str(),"Dynamica Crash", MB_OK);
|
||||||
exit(err);
|
exit(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Demo::onCleanup() {
|
void Demo::onCleanup() {
|
||||||
// Called when Demo::run() exits
|
clearInstances();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Demo::onLogic() {
|
void Demo::onLogic() {
|
||||||
// Add non-simulation game logic and AI code here
|
// Add non-simulation game logic and AI code here
|
||||||
}
|
}
|
||||||
@@ -124,7 +225,11 @@ void Demo::onNetwork() {
|
|||||||
|
|
||||||
|
|
||||||
void Demo::onSimulation(RealTime rdt, SimTime sdt, SimTime idt) {
|
void Demo::onSimulation(RealTime rdt, SimTime sdt, SimTime idt) {
|
||||||
|
if(dataModel->name != title)
|
||||||
|
{
|
||||||
|
title = dataModel->name;
|
||||||
|
app->renderDevice->setCaption("Game \"" + title + "\"");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -244,16 +349,27 @@ void Demo::onGraphics(RenderDevice* rd) {
|
|||||||
Draw::axes(CoordinateFrame(Vector3(0, 0, 0)), app->renderDevice);
|
Draw::axes(CoordinateFrame(Vector3(0, 0, 0)), app->renderDevice);
|
||||||
|
|
||||||
|
|
||||||
makeFlag(Vector3(1, 0.5, 0.5), rd);
|
//makeFlag(Vector3(1, 0.5, 0.5), rd);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
app->renderDevice->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
|
app->renderDevice->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
|
||||||
app->renderDevice->setAmbientLightColor(lighting.ambient);
|
app->renderDevice->setAmbientLightColor(lighting.ambient);
|
||||||
|
|
||||||
Draw::box(G3D::Box(Vector3(4.0/2,1.0/2,2.0/2),Vector3(0,0,0)), rd, Color3::gray(), Color4(0,0,0,0));
|
//Draw::box(G3D::Box(Vector3(4.0/2,1.0/2,2.0/2),Vector3(0,0,0)), rd, Color3::gray(), Color4(0,0,0,0));
|
||||||
|
for(size_t i = 0; i < instances.size(); i++)
|
||||||
Draw::cylinder(G3D::Cylinder::Cylinder(Vector3(0,5,0),Vector3(0,10,0),1),app->renderDevice,Color4(0,0,1,0.5),Color4(0,0,0,0));
|
{
|
||||||
|
Instance* instance = instances.at(i);
|
||||||
|
if(instance->className == "Part" && instance->parent != NULL)
|
||||||
|
{
|
||||||
|
PhysicalInstance* part = (PhysicalInstance*)instance;
|
||||||
|
Vector3 size = part->size;
|
||||||
|
Vector3 pos = part->position;
|
||||||
|
Draw::box(Box(Vector3((pos.x-size.x/2)/2,(pos.y-size.y/2)/2,(pos.z-size.z/2)/2),Vector3((pos.x+size.x/2)/2,(pos.y+size.y/2)/2,(pos.z+size.z/2)/2)), app->renderDevice, part->color, Color4::clear());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//Draw::cylinder(G3D::Cylinder::Cylinder(Vector3(0,5,0),Vector3(0,10,0),1),app->renderDevice,Color4(0,0,1,0.5),Color4(0,0,0,0));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user