diff --git a/Blocks3D.vcproj b/Blocks3D.vcproj index f8a502f..723eafc 100644 --- a/Blocks3D.vcproj +++ b/Blocks3D.vcproj @@ -288,6 +288,10 @@ RelativePath=".\src\source\PropertyWindow.cpp" > + + @@ -619,6 +623,10 @@ + + @@ -641,10 +649,6 @@ RelativePath=".\src\include\ax.h" > - - @@ -689,6 +693,10 @@ RelativePath=".\src\include\PropertyWindow.h" > + + @@ -836,6 +844,10 @@ + + diff --git a/Renderer.cpp b/Renderer.cpp new file mode 100644 index 0000000..39f7368 --- /dev/null +++ b/Renderer.cpp @@ -0,0 +1,211 @@ +#include "Renderer.h" +#include + +float _bevelSize = 0.07F; +std::vector _debugUniqueVertices; +std::vector _vertices; +std::vector _normals; +std::vector _indices; +Color3 color; + +void addVertex(const Vector3& vertexPos,const Color3& color) +{ + _vertices.push_back(vertexPos.x); + _vertices.push_back(vertexPos.y); + _vertices.push_back(vertexPos.z); + _vertices.push_back(color.r); + _vertices.push_back(color.g); + _vertices.push_back(color.b); +} + void addNormals(const Vector3& normal) +{ + for (unsigned int i=0;i<3;i+=1) { + _normals.push_back(normal.x); + _normals.push_back(normal.y); + _normals.push_back(normal.z); + } +} + void addSingularNormal(const Vector3& normal) +{ + _normals.push_back(normal.x); + _normals.push_back(normal.y); + _normals.push_back(normal.z); +} + void addTriangle(const Vector3& v1, const Vector3& v2, const Vector3& v3) +{ + addVertex(v1,color); + addVertex(v2,color); + addVertex(v3,color); + //addNormals(cross(v2-v1,v3-v1).direction()); + addSingularNormal(cross(v2-v1,v3-v1).direction()); + addSingularNormal(cross(v3-v2,v1-v2).direction()); + addSingularNormal(cross(v1-v3,v2-v3).direction()); +} + +void addQuad(const Vector3& v1, const Vector3& v2, const Vector3& v3, const Vector3& v4) +{ + addTriangle(v1, v2, v3); + addTriangle(v1, v3, v4); +} + +void makeFace(int vertex1,int vertex2, int vertex3) +{ + addTriangle(Vector3(_vertices[vertex1],_vertices[vertex1+1],_vertices[vertex1+2]), + Vector3(_vertices[vertex2],_vertices[vertex2+1],_vertices[vertex2+2]), + Vector3(_vertices[vertex3],_vertices[vertex3+1],_vertices[vertex3+2])); +} + +void renderBlock(const Vector3& renderSize) +{ + _vertices.clear(); + _indices.clear(); + _normals.clear(); + addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z), + Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z), + Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,renderSize.z) + ); + + addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,renderSize.z), + Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z), + Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z) + ); + + // Top + addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y,renderSize.z-_bevelSize), + Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize), + Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize) + ); + addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize), + Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize), + Vector3(-renderSize.x+_bevelSize,renderSize.y,-renderSize.z+_bevelSize) + ); + + // Back + addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z), + Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,-renderSize.z), + Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z) + ); + addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z), + Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z), + Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,-renderSize.z) + ); + + // Bottom + addTriangle(Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize), + Vector3(renderSize.x-_bevelSize,-renderSize.y,renderSize.z-_bevelSize), + Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize) + ); + addTriangle(Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize), + Vector3(-renderSize.x+_bevelSize,-renderSize.y,-renderSize.z+_bevelSize), + Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize) + ); + // Left + addTriangle(Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize), + Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize), + Vector3(-renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize) + ); + addTriangle(Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize), + Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize), + Vector3(-renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize) + ); + + // Right + addTriangle(Vector3(renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize), + Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize), + Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize) + ); + addTriangle(Vector3(renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize), + Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize), + Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize) + ); + + + // Bevel Top Front + makeFace(0,36,48); + makeFace(48,18,0); + // Bevel Left Front Corner + makeFace(18,156,162); + makeFace(24,18,162); + // Bevel Left Front Top Corner + makeFace(48,156,18); + // Bevel Left Front Bottom Corner + makeFace(120,6,150); + // Bevel Left Top + makeFace(48,66,156); + makeFace(144,156,66); + // Bevel Bottom + makeFace(6,120,114); + makeFace(114,12,6); + // Left Bottom + makeFace(120,150,174); + makeFace(174,132,120); + // Right Front Top Corner + makeFace(36,0,180); + // Right Front Corner + makeFace(180,0,12); + makeFace(186,180,12); + // Right Front Bottom Corner + makeFace(186,12,114); + // Right Bottom + makeFace(186,114,108); + makeFace(108,198,186); + // Right Top Corner + makeFace(180,192,36); + makeFace(192,42,36); + // Right Back Top Corner + makeFace(72,42,192); + // Right Back Bottom Corner + makeFace(78,198,108); + // Right Back Corner + makeFace(72,192,198); + makeFace(198,78,72); + // Back Bottom Corner + makeFace(78,108,132); + makeFace(132,84,78); + // Back Top + makeFace(42,72,102); + makeFace(102,66,42); + // Back Left Top Corner + makeFace(144,66,102); + // Back Left Corner + makeFace(144,102,84); + makeFace(84,174,144); + // Back Left Bottom Corner + makeFace(174,84,132); + for (unsigned short i=0;i<_vertices.size()/6;i++) { + _indices.push_back(i); + } + + glVertexPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[0]); + glColorPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[3]); + glNormalPointer(GL_FLOAT,3 * sizeof(GLfloat), &_normals[0]); + glDrawElements(GL_TRIANGLES, _indices.size(), GL_UNSIGNED_SHORT, &_indices[0]); +} + +void renderShape(const Enum::Shape::Value& shape, const Vector3& size, const Color3& ncolor) +{ + color = ncolor; + switch(shape) + { + case Enum::Shape::Block: + renderBlock(size); + break; + case Enum::Shape::Ball: + glColor(ncolor); + glScalef(size.x, size.y, size.z); + gluSphere(gluNewQuadric(), 1, 20, 20); + break; + default: + glColor(ncolor); + glScalef(size.x, size.y, size.z); + glPushMatrix(); + glRotatef(90, 0, 1, 0); + glTranslatef(0,0,1); + gluDisk(gluNewQuadric(), 0, 1, 12, 12); + glTranslatef(0,0,-2); + gluCylinder(gluNewQuadric(), 1, 1, 2, 12, 1); + glRotatef(180, 1, 0, 0); + gluDisk(gluNewQuadric(), 0, 1, 12, 12); + glPopMatrix(); + } +} \ No newline at end of file diff --git a/Renderer.h b/Renderer.h new file mode 100644 index 0000000..25618ae --- /dev/null +++ b/Renderer.h @@ -0,0 +1,6 @@ +#ifndef RENDERUTIL +#define RENDERUTIL +#include "Enum.h" +#include "DataModelV2/Instance.h" +void renderShape(const Enum::Shape::Value& shape, const Vector3& size, const Color3& ncolor); +#endif diff --git a/src/include/DataModelV2/Instance.h b/src/include/DataModelV2/Instance.h index 596fa9f..b8009bd 100644 --- a/src/include/DataModelV2/Instance.h +++ b/src/include/DataModelV2/Instance.h @@ -2,7 +2,7 @@ #include #include "propertyGrid.h" #include "map" -#include "Properties/BoolProperty.h" +//#include "Properties/BoolProperty.h" class Instance { diff --git a/src/include/DataModelV2/PartInstance.h b/src/include/DataModelV2/PartInstance.h index 6df56b7..9aadd0c 100644 --- a/src/include/DataModelV2/PartInstance.h +++ b/src/include/DataModelV2/PartInstance.h @@ -48,20 +48,8 @@ public: virtual std::vector getProperties(); virtual void PropUpdate(LPPROPGRIDITEM &pItem); #ifdef NEW_BOX_RENDER - void addVertex(Vector3 vertexPos,Color3 color); - void addNormals(Vector3 normal); - void addSingularNormal(Vector3 normal); - void addTriangle(Vector3 vertexPos,Vector3 vertexPos2, Vector3 vertexPos3); - void addQuad(Vector3 v1,Vector3 v2, Vector3 v3, Vector3 v4); - void genSmoothNormals(int); - void addSmoothTriangle(Vector3 vertexPos,Vector3 vertexPos2, Vector3 vertexPos3); - void makeSmoothFace(int vertex1, int vertex2, int vertex3); void addPlus(Vector3 v1); void addPlus2(Vector3 v1); - void debugPrintVertexIDs(RenderDevice* rd, GFontRef font, Matrix3 camRot); - void makeFace(int vertex1, int vertex2, int vertex3); - void fromArrays(float verts[], float norms[], float ind[], unsigned int countVN, unsigned int countInd); - bool isUniqueVertex(Vector3 pos); #endif private: Vector3 position; @@ -71,14 +59,6 @@ private: float _bevelSize; int _parseVert; int _debugTimer; - std::vector _debugUniqueVertices; - #ifdef NEW_BOX_RENDER - std::vector _vertices; - std::vector _normals; - #else - GLfloat _vertices[96]; - #endif - std::vector _indices; bool changed; Box itemBox; GLuint glList; diff --git a/src/include/Globals.h b/src/include/Globals.h index 3e86d95..04d6f04 100644 --- a/src/include/Globals.h +++ b/src/include/Globals.h @@ -19,7 +19,7 @@ public: static const int patch; static G3D::TextureRef surface; static int surfaceId; - static const std::string g_PlaceholderName; + static const std::string g_appName; static COLORREF g_acrCustClr[16]; //Will be dynamic later static HWND mainHwnd; }; @@ -38,4 +38,4 @@ extern std::string cameraSound; extern std::string clickSound; extern std::string dingSound; extern HWND mainHwnd; -const std::string g_PlaceholderName = "Dygysphere"; \ No newline at end of file +const std::string g_appName = "Blocks3D"; \ No newline at end of file diff --git a/src/include/Properties/BoolProperty.h b/src/include/Properties/BoolProperty.h index ebdfe51..ef541ec 100644 --- a/src/include/Properties/BoolProperty.h +++ b/src/include/Properties/BoolProperty.h @@ -1,13 +1,12 @@ #pragma once #include "Property.h" -#pragma once class BoolProperty : public Property { public: - template - BoolProperty(std::string name, bool& value) + BoolProperty(std::string name, bool& value, Instance& owner) { - Property(name, (T)value); + Property(name, value, owner); } ~BoolProperty(void); + PROPGRIDITEM getPropGridItem(); }; diff --git a/src/include/Properties/Property.h b/src/include/Properties/Property.h index 1519818..2a3a0d9 100644 --- a/src/include/Properties/Property.h +++ b/src/include/Properties/Property.h @@ -1,19 +1,30 @@ #pragma once -#include "propertyGrid.h" +#include "DataModelV2/Instance.h" +#include +class Instance; + template class Property { public: - Property(std::string name, T& value) + Property(std::string name, T& value, Instance& owner) { - value = t; + _value = value; + _owner = owner; } ~Property(void); - T getValue(); - void setValue(T); - PROPGRIDITEM getPropGridItem(); + const T getValue() + { + return _value; + } + const void setValue(T val) + { + _value = val; + } + virtual PROPGRIDITEM getPropGridItem(); void setProperty(LPPROPGRIDITEM item); protected: - std::string name; - T* value; + Instance* _owner; + std::string _name; + T* _value; }; diff --git a/src/source/Application.cpp b/src/source/Application.cpp index d768ee8..dab8079 100644 --- a/src/source/Application.cpp +++ b/src/source/Application.cpp @@ -68,7 +68,7 @@ void Application::setFocus(bool focus) Application::Application(HWND parentWindow) : _propWindow(NULL) { //: GApp(settings,window) { - std::string tempPath = ((std::string)getenv("temp")) + "/"+g_PlaceholderName; + std::string tempPath = ((std::string)getenv("temp")) + "/"+g_appName; CreateDirectory(tempPath.c_str(), NULL); _hWndMain = parentWindow; diff --git a/src/source/DataModelV2/DataModelInstance.cpp b/src/source/DataModelV2/DataModelInstance.cpp index 8316b85..49484cc 100644 --- a/src/source/DataModelV2/DataModelInstance.cpp +++ b/src/source/DataModelV2/DataModelInstance.cpp @@ -31,7 +31,7 @@ DataModelInstance::DataModelInstance(void) _loadedFileName="..//skooter.rbxm"; listicon = 5; running = false; - + } void DataModelInstance::toggleRun() @@ -255,7 +255,7 @@ Color3 bcToRGB(short bc) bool DataModelInstance::scanXMLObject(xml_node<> * scanNode) { xml_node<> * watchFirstNode = scanNode->first_node(); - + for (xml_node<> *node = scanNode->first_node();node; node = node->next_sibling()) { @@ -278,7 +278,7 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode) { std::string xmlName = attr->name(); std::string xmlValue = attr->value(); - + if (xmlValue=="CFrame" | xmlValue=="CoordinateFrame") { cFrameNode = partPropNode; @@ -322,7 +322,7 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode) { sizeNode=featureNode; _legacyLoad=true; - } + } } } } @@ -348,11 +348,11 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode) G = getFloatValue(colorNode,"G"); B = getFloatValue(colorNode,"B"); } - + Enum::Shape::Value partshape = Enum::Shape::Block; std::string pshape = shapeNode->value(); if (shapeNode) - { + { if(pshape == "0" || pshape == "Ball"){ partshape = Enum::Shape::Ball; } @@ -363,7 +363,7 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode) partshape = Enum::Shape::Cylinder; } } - + std::string newName = nameNode->value(); float X = getFloatValue(cFrameNode,"X"); float Y = getFloatValue(cFrameNode,"Y"); @@ -396,10 +396,10 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode) test->setSize(Vector3(sizeX,sizeY+_modY,sizeZ)); test->setName(newName); CoordinateFrame cf; - + if (_legacyLoad) { - + cf = CoordinateFrame(Vector3(-X,Y,Z))*CoordinateFrame(Vector3(-sizeX/2,(sizeY+_modY)/2,sizeZ/2)*Matrix3(R00,R01,R02,R10,R11,R12,R20,R21,R22)); cf.rotation = Matrix3(R00,R01,R02,R10,R11,R12,R20,R21,R22); } @@ -408,7 +408,7 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode) cf.translation = Vector3(X,Y,Z); cf.rotation = Matrix3(R00,R01,R02,R10,R11,R12,R20,R21,R22); } - + test->setCFrame(cf); } else @@ -564,9 +564,9 @@ void DataModelInstance::drawMessage(RenderDevice* rd) } } char brkc[12]; - sprintf_s(brkc, "%d", brickCount); + sprintf(brkc, "%d", brickCount); char instc[12]; - sprintf_s(instc, "%d", instCount); + sprintf(instc, "%d", instCount); message = "Bricks: "; message += brkc; message += " Snaps: "; @@ -610,4 +610,4 @@ GuiRootInstance* DataModelInstance::getGuiRoot() LevelInstance* DataModelInstance::getLevel() { return level; -} \ No newline at end of file +} diff --git a/src/source/DataModelV2/LevelInstance.cpp b/src/source/DataModelV2/LevelInstance.cpp index 7757916..01f9b3d 100644 --- a/src/source/DataModelV2/LevelInstance.cpp +++ b/src/source/DataModelV2/LevelInstance.cpp @@ -36,8 +36,8 @@ std::vector LevelInstance::getProperties() PIT_EDIT)); - sprintf_s(timerTxt, "%g", timer); - sprintf_s(scoreTxt, "%d", score); + sprintf(timerTxt, "%g", timer); + sprintf(scoreTxt, "%d", score); properties.push_back(createPGI("Gameplay", "InitialTimerValue", "The ammount of time in seconds the player has to complete this level.\r\n\r\nPut 0 if time is limitless.", @@ -70,4 +70,4 @@ void LevelInstance::PropUpdate(LPPROPGRIDITEM &pItem) } else Instance::PropUpdate(pItem); -} \ No newline at end of file +} diff --git a/src/source/DataModelV2/PartInstance.cpp b/src/source/DataModelV2/PartInstance.cpp index 9a9033c..a0e71f8 100644 --- a/src/source/DataModelV2/PartInstance.cpp +++ b/src/source/DataModelV2/PartInstance.cpp @@ -1,5 +1,6 @@ #include "DataModelV2/PartInstance.h" #include "Globals.h" +#include "../../Renderer.h" #include #include @@ -69,9 +70,9 @@ void PartInstance::postRender(RenderDevice *rd) { if(distance < 0) distance = distance*-1; - glDisable(GL_DEPTH_TEST); + glDisable(GL_DEPTH_TEST); fnt->draw3D(rd, name, CoordinateFrame(rd->getCameraToWorldMatrix().rotation, gamepoint), 0.03*distance, Color3::yellow(), Color3::black(), G3D::GFont::XALIGN_CENTER, G3D::GFont::YALIGN_CENTER); - glEnable(GL_DEPTH_TEST); + glEnable(GL_DEPTH_TEST); } } } @@ -222,21 +223,21 @@ bool PartInstance::collides(PartInstance * part) { if(part->shape == Enum::Shape::Block) return G3D::CollisionDetection::fixedSolidSphereIntersectsFixedSolidBox(getSphere(), part->getBox()); - else + else return G3D::CollisionDetection::fixedSolidSphereIntersectsFixedSolidSphere(getSphere(), part->getSphere()); } } #ifdef NEW_BOX_RENDER Box PartInstance::getBox() -{ +{ Box box = Box(Vector3(size.x/2, size.y/2, size.z/2) ,Vector3(-size.x/2,-size.y/2,-size.z/2)); CoordinateFrame c = getCFrameRenderBased(); itemBox = c.toWorldSpace(box); return itemBox; } Sphere PartInstance::getSphere() -{ +{ Sphere sphere = Sphere(Vector3(0,0,0), size.y/2); CoordinateFrame c = getCFrameRenderBased(); //itemBox = c.toWorldSpace(Sphere); @@ -280,74 +281,16 @@ bool PartInstance::collides(Box box) return CollisionDetection::fixedSolidBoxIntersectsFixedSolidBox(getBox(), box); } #ifdef NEW_BOX_RENDER -void PartInstance::addVertex(Vector3 vertexPos,Color3 color) -{ - _vertices.push_back(vertexPos.x); - _vertices.push_back(vertexPos.y); - _vertices.push_back(vertexPos.z); - _vertices.push_back(color.r); - _vertices.push_back(color.g); - _vertices.push_back(color.b); -} - void PartInstance::addNormals(Vector3 normal) -{ - for (unsigned int i=0;i<3;i+=1) { - _normals.push_back(normal.x); - _normals.push_back(normal.y); - _normals.push_back(normal.z); - } -} - void PartInstance::addSingularNormal(Vector3 normal) -{ - _normals.push_back(normal.x); - _normals.push_back(normal.y); - _normals.push_back(normal.z); -} - void PartInstance::addTriangle(Vector3 v1,Vector3 v2,Vector3 v3) -{ - addVertex(v1,color); - addVertex(v2,color); - addVertex(v3,color); - //addNormals(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(v2-v1,v3-v1).direction()); - addSingularNormal(cross(v3-v2,v1-v2).direction()); - addSingularNormal(cross(v1-v3,v2-v3).direction()); -} - -void PartInstance::addQuad(Vector3 v1,Vector3 v2, Vector3 v3, Vector3 v4) -{ - addTriangle(v1, v2, v3); - addTriangle(v1, v3, v4); -} - -void PartInstance::genSmoothNormals(int count = -1) -{ - if(count < 0) - { - - } -} - -void PartInstance::addSmoothTriangle(Vector3 v1, Vector3 v2, Vector3 v3) -{ - addVertex(v1,color); - addVertex(v2,color); - addVertex(v3,color); - //addNormals(cross(v2-v1,v3-v1).direction()); - //addSingularNormal(Vector3(cross(v2-v1,v3-v1) + cross(v3-v2,v1-v2) + cross(v1-v3,v2-v3)).direction()); - addSingularNormal(v1.direction()); - addSingularNormal(v2.direction()); - addSingularNormal(v3.direction()); -} -void PartInstance::addPlus(Vector3 v1) + +/*void PartInstance::addPlus(Vector3 v1) { float renderY = max(size.z, max(size.x, size.y))/2 * 0.775; Vector3 vx1 = v1 + Vector3(0, -renderY, -0.1f); Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f); Vector3 vx3 = v1 + Vector3(0, renderY, 0.1f); - + addVertex(vx1,Color3::WHITE); addVertex(vx2,Color3::WHITE); addVertex(vx3,Color3::WHITE); @@ -359,7 +302,7 @@ void PartInstance::addPlus(Vector3 v1) vx1 = v1 + Vector3(0, renderY, 0.1f); vx2 = v1 + Vector3(0, renderY, -0.1f); vx3 = v1 + Vector3(0, -renderY, -0.1f); - + addVertex(vx1,Color3::WHITE); addVertex(vx2,Color3::WHITE); addVertex(vx3,Color3::WHITE); @@ -371,7 +314,7 @@ void PartInstance::addPlus(Vector3 v1) vx3 = v1 + Vector3(0, -0.1f, -renderY); vx2 = v1 + Vector3(0, 0.1f, -renderY); vx1 = v1 + Vector3(0, 0.1f, renderY); - + addVertex(vx1,Color3::WHITE); addVertex(vx2,Color3::WHITE); addVertex(vx3,Color3::WHITE); @@ -383,7 +326,7 @@ void PartInstance::addPlus(Vector3 v1) vx3 = v1 + Vector3(0, 0.1f, renderY); vx2 = v1 + Vector3(0, -0.1f, renderY); vx1 = v1 + Vector3(0, -0.1f, -renderY); - + addVertex(vx1,Color3::WHITE); addVertex(vx2,Color3::WHITE); addVertex(vx3,Color3::WHITE); @@ -391,7 +334,7 @@ void PartInstance::addPlus(Vector3 v1) addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - + } @@ -401,7 +344,7 @@ void PartInstance::addPlus2(Vector3 v1) Vector3 vx3 = v1 + Vector3(0, -renderY, -0.1f); Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f); Vector3 vx1 = v1 + Vector3(0, renderY, 0.1f); - + addVertex(vx1,Color3::WHITE); addVertex(vx2,Color3::WHITE); addVertex(vx3,Color3::WHITE); @@ -413,7 +356,7 @@ void PartInstance::addPlus2(Vector3 v1) vx3 = v1 + Vector3(0, renderY, 0.1f); vx2 = v1 + Vector3(0, renderY, -0.1f); vx1 = v1 + Vector3(0, -renderY, -0.1f); - + addVertex(vx1,Color3::WHITE); addVertex(vx2,Color3::WHITE); addVertex(vx3,Color3::WHITE); @@ -425,7 +368,7 @@ void PartInstance::addPlus2(Vector3 v1) vx1 = v1 + Vector3(0, -0.1f, -renderY); vx2 = v1 + Vector3(0, 0.1f, -renderY); vx3 = v1 + Vector3(0, 0.1f, renderY); - + addVertex(vx1,Color3::WHITE); addVertex(vx2,Color3::WHITE); addVertex(vx3,Color3::WHITE); @@ -437,7 +380,7 @@ void PartInstance::addPlus2(Vector3 v1) vx1 = v1 + Vector3(0, 0.1f, renderY); vx2 = v1 + Vector3(0, -0.1f, renderY); vx3 = v1 + Vector3(0, -0.1f, -renderY); - + addVertex(vx1,Color3::WHITE); addVertex(vx2,Color3::WHITE); addVertex(vx3,Color3::WHITE); @@ -445,63 +388,11 @@ void PartInstance::addPlus2(Vector3 v1) addSingularNormal(cross(vx2-vx1,vx3-vx1).direction()); addSingularNormal(cross(vx3-vx2,vx1-vx2).direction()); addSingularNormal(cross(vx1-vx3,vx2-vx3).direction()); - -} - void PartInstance::debugPrintVertexIDs(RenderDevice* rd,GFontRef font,Matrix3 rot) -{ - _debugUniqueVertices.clear(); - glDisable(GL_DEPTH_TEST); - - for (unsigned int i=0;i<_vertices.size();i+=6) - { - std::stringstream stream; - stream << std::fixed << std::setprecision(1) << i; - Vector3 testVector = Vector3(_vertices[i],_vertices[i+1],_vertices[i+2]); - if (isUniqueVertex(testVector)) - { - - font->draw3D(rd, stream.str(), CoordinateFrame(testVector) * -rot, 0.05, Color3::fromARGB(0xFF4F0000), Color4::clear()); - _debugUniqueVertices.push_back(testVector); - } - } - glEnable(GL_DEPTH_TEST); -} - void PartInstance::makeFace(int vertex1,int vertex2, int vertex3) -{ - addTriangle(Vector3(_vertices[vertex1],_vertices[vertex1+1],_vertices[vertex1+2]), - Vector3(_vertices[vertex2],_vertices[vertex2+1],_vertices[vertex2+2]), - Vector3(_vertices[vertex3],_vertices[vertex3+1],_vertices[vertex3+2])); -} - void PartInstance::fromArrays(float verts[], float norms[], float ind[], unsigned int countVN, unsigned int countInd) -{ - for(unsigned int i = 0; i < countVN; i++) - { - _vertices.push_back(verts[i]); - _normals.push_back(norms[i]); - } - for(unsigned int i = 0; i < countInd; i++) - { - _indices.push_back(ind[i]); - } } -void PartInstance::makeSmoothFace(int vertex1,int vertex2, int vertex3) -{ - addSmoothTriangle(Vector3(_vertices[vertex1],_vertices[vertex1+1],_vertices[vertex1+2]), - Vector3(_vertices[vertex2],_vertices[vertex2+1],_vertices[vertex2+2]), - Vector3(_vertices[vertex3],_vertices[vertex3+1],_vertices[vertex3+2])); -} -bool PartInstance::isUniqueVertex(Vector3 pos) -{ - for (unsigned int i=0;i<_debugUniqueVertices.size();i+=1) - { - if (pos==_debugUniqueVertices[i]) - { - return false; - } - } - return true; -} +*/ + + //int rings = 15; //int sectors = 15; void PartInstance::render(RenderDevice* rd) { @@ -512,383 +403,31 @@ void PartInstance::render(RenderDevice* rd) { //postRenderStack.push_back(this); if (changed) { - + getBox(); - _vertices.clear(); - _normals.clear(); - _indices.clear(); //std::vector(_vertices).swap(_vertices); //Clear the memory Vector3 renderSize = size/2; - switch(this->shape) - { - case Enum::Shape::Ball: - { - glNewList(glList, GL_COMPILE); - glColor(this->color); - glPushMatrix(); - glScalef(renderSize.x, renderSize.y, renderSize.z); - gluSphere(gluNewQuadric(), 1, 20, 20); - glPopMatrix(); - glEndList(); - rd->setObjectToWorldMatrix(cFrame); - glCallList(glList); - changed = false; - return; - } - break; - case Enum::Shape::Block: - { - // Front - addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z), - Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z), - Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,renderSize.z) - ); - - addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,renderSize.z), - Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z), - Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z) - ); - - // Top - addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y,renderSize.z-_bevelSize), - Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize), - Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize) - ); - addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize), - Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize), - Vector3(-renderSize.x+_bevelSize,renderSize.y,-renderSize.z+_bevelSize) - ); - - // Back - addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z), - Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,-renderSize.z), - Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z) - ); - addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z), - Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z), - Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,-renderSize.z) - ); - - // Bottom - addTriangle(Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize), - Vector3(renderSize.x-_bevelSize,-renderSize.y,renderSize.z-_bevelSize), - Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize) - ); - addTriangle(Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize), - Vector3(-renderSize.x+_bevelSize,-renderSize.y,-renderSize.z+_bevelSize), - Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize) - ); - // Left - addTriangle(Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize), - Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize), - Vector3(-renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize) - ); - addTriangle(Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize), - Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize), - Vector3(-renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize) - ); - - // Right - addTriangle(Vector3(renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize), - Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize), - Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize) - ); - addTriangle(Vector3(renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize), - Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize), - Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize) - ); - - - // Bevel Top Front - makeFace(0,36,48); - makeFace(48,18,0); - // Bevel Left Front Corner - makeFace(18,156,162); - makeFace(24,18,162); - // Bevel Left Front Top Corner - makeFace(48,156,18); - // Bevel Left Front Bottom Corner - makeFace(120,6,150); - // Bevel Left Top - makeFace(48,66,156); - makeFace(144,156,66); - // Bevel Bottom - makeFace(6,120,114); - makeFace(114,12,6); - // Left Bottom - makeFace(120,150,174); - makeFace(174,132,120); - // Right Front Top Corner - makeFace(36,0,180); - // Right Front Corner - makeFace(180,0,12); - makeFace(186,180,12); - // Right Front Bottom Corner - makeFace(186,12,114); - // Right Bottom - makeFace(186,114,108); - makeFace(108,198,186); - // Right Top Corner - makeFace(180,192,36); - makeFace(192,42,36); - // Right Back Top Corner - makeFace(72,42,192); - // Right Back Bottom Corner - makeFace(78,198,108); - // Right Back Corner - makeFace(72,192,198); - makeFace(198,78,72); - // Back Bottom Corner - makeFace(78,108,132); - makeFace(132,84,78); - // Back Top - makeFace(42,72,102); - makeFace(102,66,42); - // Back Left Top Corner - makeFace(144,66,102); - // Back Left Corner - makeFace(144,102,84); - makeFace(84,174,144); - // Back Left Bottom Corner - makeFace(174,84,132); - for (unsigned short i=0;i<_vertices.size()/6;i++) { - _indices.push_back(i); - } - } - break; - case Enum::Shape::Cylinder: - { - /*int fsize = renderSize.y/(pi()/2); - //makeFace(0,0,48); - // Front - addTriangle(Vector3(renderSize.x,renderSize.y-fsize,renderSize.z), - Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z), - Vector3(renderSize.x,-renderSize.y+fsize,renderSize.z) - ); - - addTriangle(Vector3(-renderSize.x,renderSize.y-fsize,renderSize.z), - Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z), - Vector3(renderSize.x,renderSize.y-fsize,renderSize.z) - ); - - // Top - addTriangle(Vector3(renderSize.x,renderSize.y,renderSize.z-fsize), - Vector3(renderSize.x,renderSize.y,-renderSize.z+fsize), - Vector3(-renderSize.x,renderSize.y,renderSize.z-fsize) - ); - addTriangle(Vector3(-renderSize.x,renderSize.y,renderSize.z-fsize), - Vector3(renderSize.x,renderSize.y,-renderSize.z+fsize), - Vector3(-renderSize.x,renderSize.y,-renderSize.z+fsize) - ); - - // Back - addTriangle(Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z), - Vector3(renderSize.x,-renderSize.y+fsize,-renderSize.z), - Vector3(-renderSize.x,-renderSize.y+fsize,-renderSize.z) - ); - addTriangle(Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z), - Vector3(-renderSize.x,-renderSize.y+fsize,-renderSize.z), - Vector3(-renderSize.x,renderSize.y-fsize,-renderSize.z) - ); - - // Bottom - addTriangle(Vector3(renderSize.x,-renderSize.y,-renderSize.z+fsize), - Vector3(renderSize.x,-renderSize.y,renderSize.z-fsize), - Vector3(-renderSize.x,-renderSize.y,renderSize.z-fsize) - ); - addTriangle(Vector3(-renderSize.x,-renderSize.y,renderSize.z-fsize), - Vector3(-renderSize.x,-renderSize.y,-renderSize.z+fsize), - Vector3(renderSize.x,-renderSize.y,-renderSize.z+fsize) - ); - // Left - /*addTriangle(Vector3(-renderSize.x,renderSize.y-fsize,-renderSize.z+fsize), - Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z-fsize), - Vector3(-renderSize.x,renderSize.y-fsize,renderSize.z-fsize) - ); - addTriangle(Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z-fsize), - Vector3(-renderSize.x,renderSize.y-fsize,-renderSize.z+fsize), - Vector3(-renderSize.x,-renderSize.y+fsize,-renderSize.z+fsize) - ); - // Right - addTriangle(Vector3(renderSize.x,renderSize.y-fsize,renderSize.z-fsize), - Vector3(renderSize.x,-renderSize.y+fsize,renderSize.z-fsize), - Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z+fsize) - ); - addTriangle(Vector3(renderSize.x,-renderSize.y+fsize,-renderSize.z+fsize), - Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z+fsize), - Vector3(renderSize.x,-renderSize.y+fsize,renderSize.z-fsize) - );//*/ - - - /*// Bevel Top Front - makeFace(0,36,48); - makeFace(48,18,0); - // Bevel Left Front Corner - makeFace(18,156,162); - makeFace(24,18,162); - // Bevel Left Front Top Corner - makeFace(48,156,18); - // Bevel Left Front Bottom Corner - makeFace(120,6,150); - // Bevel Left Top - makeFace(48,66,156); - makeFace(144,156,66); - // Bevel Bottom - makeFace(6,120,114); - makeFace(114,12,6); - // Left Bottom - makeFace(120,150,174); - makeFace(174,132,120); - // Right Front Top Corner - makeFace(36,0,180); - // Right Front Corner - makeFace(180,0,12); - makeFace(186,180,12); - // Right Front Bottom Corner - makeFace(186,12,114); - // Right Bottom - makeFace(186,114,108); - makeFace(108,198,186); - // Right Top Corner - makeFace(180,192,36); - makeFace(192,42,36); - // Right Back Top Corner - makeFace(72,42,192); - // Right Back Bottom Corner - makeFace(78,198,108); - // Right Back Corner - makeFace(72,192,198); - makeFace(198,78,72); - // Back Bottom Corner - makeFace(78,108,132); - makeFace(132,84,78); - // Back Top - makeFace(42,72,102); - makeFace(102,66,42); - // Back Left Top Corner - makeFace(144,66,102); - // Back Left Corner - makeFace(144,102,84); - makeFace(84,174,144); - // Back Left Bottom Corner - makeFace(174,84,132);*/ - /*float radius = renderSize.y + (renderSize.y * (1 - cos(pi() / 12))); - Vector2 xy[13]; - for(int i = 0; i < 13; i++) - { - //Get the next point - float y = radius * cos(((double)i-G3D::toRadians(29)) * pi()/6); - float z = radius * sin(((double)i-G3D::toRadians(29)) * pi()/6); - xy[i] = Vector2(y,z); - } - for(int i = 0; i < 12; i++) - { - //Create a Quad for the face (i to i+1) - addSmoothTriangle( - Vector3(renderSize.x, xy[i].x, xy[i].y), - Vector3(-renderSize.x, xy[i].x, xy[i].y), - Vector3(-renderSize.x, xy[i+1].x, xy[i+1].y)); - addSmoothTriangle( - Vector3(renderSize.x, xy[i].x, xy[i].y), - Vector3(-renderSize.x, xy[i+1].x, xy[i+1].y), - Vector3(renderSize.x, xy[i+1].x, xy[i+1].y)); - //Cap on the right - addTriangle( - Vector3(renderSize.x, xy[0].x, xy[0].y), - Vector3(renderSize.x, xy[i].x, xy[i].y), - Vector3(renderSize.x, xy[i+1].x, xy[i+1].y)); - //Cap on the left - addTriangle( - Vector3(-renderSize.x, xy[i+1].x, xy[i+1].y), - Vector3(-renderSize.x, xy[i].x, xy[i].y), - Vector3(-renderSize.x, xy[0].x, xy[0].y)); - }*/ - /*float facetRatio = renderSize.x / (pi() * 0.5F); - addQuad( - Vector3(renderSize.x, renderSize.y, renderSize.z-facetRatio), - Vector3(renderSize.x, renderSize.y, -renderSize.z+facetRatio), - Vector3(-renderSize.x, renderSize.y, -renderSize.z+facetRatio), - Vector3(-renderSize.x, renderSize.y, renderSize.z-facetRatio)); - - addQuad( - Vector3(renderSize.x, renderSize.y-facetRatio, renderSize.z), - Vector3(-renderSize.x, renderSize.y-facetRatio, renderSize.z), - Vector3(-renderSize.x, -renderSize.y+facetRatio, renderSize.z), - Vector3(renderSize.x, -renderSize.y+facetRatio, renderSize.z)); - addQuad( - Vector3(-renderSize.x, -renderSize.y, renderSize.z-facetRatio), - Vector3(-renderSize.x, -renderSize.y, -renderSize.z+facetRatio), - Vector3(renderSize.x, -renderSize.y, -renderSize.z+facetRatio), - Vector3(renderSize.x, -renderSize.y, renderSize.z-facetRatio)); - addQuad( - Vector3(renderSize.x, -renderSize.y+facetRatio, -renderSize.z), - Vector3(-renderSize.x, -renderSize.y+facetRatio, -renderSize.z), - Vector3(-renderSize.x, renderSize.y-facetRatio, -renderSize.z), - Vector3(renderSize.x, renderSize.y-facetRatio, -renderSize.z));*/ - - /*addPlus(Vector3(-renderSize.x-0.01,0,0)); - addPlus2(Vector3(renderSize.x+0.01,0,0)); - - for (unsigned short i=0;i<_vertices.size()/6;i++) { - _indices.push_back(i); - } - //std::reverse(_vertices.begin(), _vertices.end()); - //std::reverse(_normals.begin(), _normals.end()); - )*/ - GLUquadric* q = gluNewQuadric(); - - addPlus(Vector3(-renderSize.x-0.01,0,0)); - addPlus2(Vector3(renderSize.x+0.01,0,0)); - for (unsigned short i=0;i<_vertices.size()/6;i++) { - _indices.push_back(i); - } - glVertexPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[0]); - glColorPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[3]); - glNormalPointer(GL_FLOAT,3 * sizeof(GLfloat), &_normals[0]); - glNewList(glList, GL_COMPILE); - glColor(this->color); - glPushMatrix(); - glRotatef(90, 0, 1, 0); - glScalef(renderSize.x, renderSize.y, renderSize.z); - glTranslatef(0,0,1); - gluDisk(q, 0, 1, 12, 12); - glTranslatef(0,0,-2); - gluCylinder(q, 1, 1, 2, 12, 1); - glRotatef(180, 1, 0, 0); - gluDisk(q, 0, 1, 12, 12); - glPopMatrix(); - glDrawElements(GL_TRIANGLES, _indices.size(), GL_UNSIGNED_SHORT, &_indices[0]); - glEndList(); - rd->setObjectToWorldMatrix(cFrame); - glCallList(glList); - changed = false; - return; - - } - break; - } - changed=false; - glVertexPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[0]); - glColorPointer(3, GL_FLOAT,6 * sizeof(GLfloat), &_vertices[3]); - glNormalPointer(GL_FLOAT,3 * sizeof(GLfloat), &_normals[0]); - glNewList(glList, GL_COMPILE); - //glPushMatrix(); - //glTranslatef(2,7,0); - glDrawElements(GL_TRIANGLES, _indices.size(), GL_UNSIGNED_SHORT, &_indices[0]); - //glPopMatrix(); + glNewList(glList, GL_COMPILE_AND_EXECUTE); + glColor(this->color); + renderShape(this->shape, renderSize, color); glEndList(); + changed = false; + return; + + changed=false; + } rd->setObjectToWorldMatrix(cFrame); glCallList(glList); postRender(rd); //rd->setObjectToWorldMatrix(cFrame); - + } #else void PartInstance::render(RenderDevice* rd) { - + if(changed) { Box box = getBox(); @@ -897,7 +436,7 @@ void PartInstance::render(RenderDevice* rd) glColor(color); /*glEnable( GL_TEXTURE_2D ); glEnable(GL_BLEND);// you enable blending function - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBindTexture( GL_TEXTURE_2D, Globals::surfaceId); glBegin(GL_QUADS);*/ for(int i = 0; i < 96; i+=16) @@ -934,7 +473,7 @@ void PartInstance::render(RenderDevice* rd) glVertex3fv(v3);*/ glEnable(GL_BLEND);// you enable blending function - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBegin( GL_QUADS ); glNormal3fv((v1 - v0).cross(v3 - v0).direction()); //glTexCoord2d(0.0,0.0+add); @@ -961,7 +500,7 @@ void PartInstance::render(RenderDevice* rd) children.at(i)->render(rd); } } - + } #endif @@ -1078,7 +617,7 @@ void PartInstance::PropUpdate(LPPROPGRIDITEM &item) std::vector PartInstance::getProperties() { std::vector properties = PVInstance::getProperties(); - + properties.push_back(createPGI( "Properties", @@ -1094,7 +633,7 @@ std::vector PartInstance::getProperties() (LPARAM)anchored, PIT_CHECK )); - sprintf_s(pto, "%g, %g, %g", position.x, position.y, position.z); + sprintf(pto, "%g, %g, %g", position.x, position.y, position.z); properties.push_back(createPGI( "Item", "Offset", @@ -1102,7 +641,7 @@ std::vector PartInstance::getProperties() (LPARAM)pto, PIT_EDIT )); - sprintf_s(pto2, "%g, %g, %g", size.x, size.y, size.z); + sprintf(pto2, "%g, %g, %g", size.x, size.y, size.z); properties.push_back(createPGI( "Item", "Size", diff --git a/src/source/ErrorFunctions.cpp b/src/source/ErrorFunctions.cpp index 86beba2..4b224f1 100644 --- a/src/source/ErrorFunctions.cpp +++ b/src/source/ErrorFunctions.cpp @@ -3,12 +3,13 @@ #include "Globals.h" + void OnError(int err, std::string msg) { //g_usableApp->window()->setInputCaptureCount(0); //g_usableApp->window()->setMouseVisible(true); - std::string emsg = "An unexpected error has occured and "+g_PlaceholderName+" has to quit. We're sorry!" + msg; - std::string title = g_PlaceholderName+"Crash"; + std::string emsg = "An unexpected error has occured and "+g_appName+" has to quit. We're sorry!" + msg; + std::string title = g_appName+" Crash"; //clearInstances(); MessageBox(NULL, emsg.c_str(), title.c_str(), MB_OK); exit(err); @@ -17,13 +18,13 @@ void OnError(int err, std::string msg) void MessageBoxStr(std::string msg) { - std::string title = g_PlaceholderName; + std::string title = g_appName; MessageBox(NULL, msg.c_str(), title.c_str(), MB_OK); } void MessageBoxStream(std::stringstream msg) { std::string strMsg = msg.str(); - std::string title = g_PlaceholderName; + std::string title = g_appName; MessageBox(NULL, strMsg.c_str(), title.c_str(), MB_OK); } \ No newline at end of file diff --git a/src/source/IEBrowser.cpp b/src/source/IEBrowser.cpp index b67b75e..60e91cd 100644 --- a/src/source/IEBrowser.cpp +++ b/src/source/IEBrowser.cpp @@ -123,7 +123,7 @@ bool IEBrowser::navigateSyncURL(wchar_t* url) } else { - MessageBox(NULL,"Cannot read IWebBrowser2...",(g_PlaceholderName+" Crash").c_str(),MB_OK); + MessageBox(NULL,"Cannot read IWebBrowser2...",(g_appName+" Crash").c_str(),MB_OK); } return false; diff --git a/src/source/Properties/BoolProperty.cpp b/src/source/Properties/BoolProperty.cpp new file mode 100644 index 0000000..744db4b --- /dev/null +++ b/src/source/Properties/BoolProperty.cpp @@ -0,0 +1,5 @@ +//#include "Properties/BoolProperty.h" +//PROPGRIDITEM BoolProperty::getPropGridItem() +//{ + //return PROPGRIDITEM(); +//} \ No newline at end of file diff --git a/src/source/Properties/Property.cpp b/src/source/Properties/Property.cpp index e69de29..3221ffb 100644 --- a/src/source/Properties/Property.cpp +++ b/src/source/Properties/Property.cpp @@ -0,0 +1,7 @@ +#include "Properties/Property.h" + +template +void Property::setProperty(LPPROPGRIDITEM item) +{ + _owner->propertiesChanged(); +} \ No newline at end of file diff --git a/src/source/main.cpp b/src/source/main.cpp index 9af942d..541355c 100644 --- a/src/source/main.cpp +++ b/src/source/main.cpp @@ -2,6 +2,7 @@ #define _WIN32_WINNT 0x0400 #define _WIN32_WINDOWS 0x0400 #define WINVER 0x0400 +#define _CRTBLD #include "resource.h" #include "Application.h" @@ -205,7 +206,7 @@ int main(int argc, char** argv) { ); if(hwndMain == NULL) { - MessageBox(NULL, "Critical error loading: Failed to create HWND, must exit", (g_PlaceholderName + " Crash").c_str() , MB_OK); + MessageBox(NULL, "Critical error loading: Failed to create HWND, must exit", (g_appName + " Crash").c_str() , MB_OK); return 0; } SendMessage(hwndMain, WM_SETICON, ICON_BIG,(LPARAM)LoadImage(GetModuleHandle(NULL), (LPCSTR)MAKEINTRESOURCEW(IDI_ICON1), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR | LR_DEFAULTSIZE)); diff --git a/src/source/propertyGrid.cpp b/src/source/propertyGrid.cpp index 6efa9cc..2de3fae 100644 --- a/src/source/propertyGrid.cpp +++ b/src/source/propertyGrid.cpp @@ -10,12 +10,12 @@ /// This source is distributed in the hope that it will be useful, /// but WITHOUT ANY WARRANTY; without even the implied warranty of /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -/// -/// @date 2-27-16 -/// -/// @todo /// -/// @bug +/// @date 2-27-16 +/// +/// @todo +/// +/// @bug /// ////////////////////////////////////////////////////////////////////////////// @@ -29,7 +29,7 @@ //DWM 1.8: Version 1.8 changes labelled thus. //DWM 1.9: Version 1.9 changes labelled thus. -//DWM 1.9: Suppress POCC Warning "Argument x to 'sscanf' does not match the format string; +//DWM 1.9: Suppress POCC Warning "Argument x to 'sscanf' does not match the format string; // expected 'unsigned char *' but found 'unsigned long'" #ifdef __POCC__ #pragma warn(disable:2234) @@ -73,7 +73,7 @@ #define _tmemcpy memcpy_s #define _tmemmove memmove #define _tmemset memset -#define _stprintf _snprintf_s +#define _stprintf _snprintf #endif #define ToolTip_AddTool(hwnd,lpti) (BOOL)SNDMSG((hwnd),TTM_ADDTOOL,0,(LPARAM)(LPTOOLINFO)(lpti)) @@ -103,7 +103,7 @@ //DWM 1.2: Converted the following 4 items to constants #define SELECT _T("T") ///< PIT_CHECK select #define UNSELECT _T("F") ///< PIT_CHECK unselect -#define CHECKED SELECT ///< PIT_CHECK checked +#define CHECKED SELECT ///< PIT_CHECK checked #define UNCHECKED UNSELECT ///< PIT_CHECK unchecked //DWM 1.3: Added @@ -142,7 +142,7 @@ /// in a list box. /// /// @param hwndCtl The handle of a listbox. -/// @param xPos The x coordinate of a point. +/// @param xPos The x coordinate of a point. /// @param yPos The y coordinate of a point. /// /// @returns The return value contains the index of the nearest item @@ -290,7 +290,7 @@ static LPINSTANCEDATA g_lpInst; ///< instance data (this) pointer /// @brief Get the Instance data associated with this instance. /// /// @param hControl Handle to Current instance. -/// @param ppInstanceData - Pointer to the address of an INSTANCEDATA struct. +/// @param ppInstanceData - Pointer to the address of an INSTANCEDATA struct. /// /// @returns TRUE if successful static BOOL Control_GetInstanceData(HWND hControl, LPINSTANCEDATA * ppInstanceData) @@ -362,7 +362,7 @@ static LPTSTR NewString(LPTSTR str) if(NULL == tmp) { - return (LPTSTR)calloc(1, sizeof(TCHAR)); + return (LPTSTR)calloc(1, sizeof(TCHAR)); } return (LPTSTR)_tmemmove(tmp, str, _tcslen(str)); } @@ -386,7 +386,7 @@ static LPTSTR NewStringArray(LPTSTR szzStr) if(NULL == tmp) { - return (LPTSTR)calloc(1, sizeof(TCHAR)); + return (LPTSTR)calloc(1, sizeof(TCHAR)); } return (LPTSTR)_tmemmove(tmp, szzStr, iLen); } @@ -482,7 +482,7 @@ static VOID Editor_OnKillFocus(HWND hwnd, HWND hwndNewFocus) g_lpInst->fGotFocus = (NULL != hwndNewFocus && (g_lpInst->hwndListBox == hwndNewFocus || - g_lpInst->hwndCtl1 == hwndNewFocus || + g_lpInst->hwndCtl1 == hwndNewFocus || g_lpInst->hwndCtl2 == hwndNewFocus || g_lpInst->hwndPropDesc == hwndNewFocus || g_lpInst->hwndToolTip == hwndNewFocus)); @@ -653,7 +653,7 @@ static BOOL Editor_OnPaint(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) rect.left += 1; rect.bottom += 1; rect.right += 1; - + DrawBorder(hdc, &rect, BF_RECT, GetSysColor(COLOR_WINDOW)); ReleaseDC(hwnd, hdc); @@ -1149,7 +1149,7 @@ static HWND CreateIpEdit(HINSTANCE hInstance, HWND hwndParent, INT id, LPRECT lp NULL, dwStyle, CW_USEDEFAULT, // x position can be changed after creation - CW_USEDEFAULT, // y position can be changed after creation + CW_USEDEFAULT, // y position can be changed after creation lprc->right - lprc->left, // width can only be set here lprc->bottom - lprc->top, // height can only be set here hwndParent, (HMENU)id, hInstance, NULL); @@ -3272,7 +3272,7 @@ static HBRUSH Grid_OnCtlColorStatic(HWND hwnd, HDC hdc, HWND hwndChild, INT type FillSolidRect(hdc,MAKE_PRECT(0, g_lpInst->iVDivider - 2, WIDTH(rc), g_lpInst->iVDivider),GetSysColor(COLOR_BTNFACE)); ReleaseDC(hwnd,hdc); - } + } return FORWARD_WM_CTLCOLORSTATIC(hwnd, hdc, hwndChild, DefWindowProc); }