Compare commits
18 Commits
optimizati
...
r429
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e419a4edcd | ||
|
|
72dcc5ef8e | ||
|
|
c9e79c2063 | ||
|
|
3035478c77 | ||
|
|
152b376c02 | ||
|
|
ef2a3bc146 | ||
|
|
d781627fff | ||
|
|
02bb8b20fa | ||
|
|
ec721abdcc | ||
|
|
0269e63af9 | ||
|
|
8926860107 | ||
|
|
da3cdf405e | ||
|
|
98f4246f17 | ||
|
|
1f4147fd90 | ||
|
|
4c51383bce | ||
|
|
f965c82b58 | ||
|
|
1688865462 | ||
|
|
f99e6cbff7 |
@@ -136,7 +136,7 @@ Application::Application(HWND parentWindow) : _propWindow(NULL) { //: GApp(setti
|
|||||||
SetWindowLongPtr(_hwndRenderer,GWL_USERDATA,(LONG)this);
|
SetWindowLongPtr(_hwndRenderer,GWL_USERDATA,(LONG)this);
|
||||||
_propWindow = new PropertyWindow(0, 0, 200, 640, hThisInstance);
|
_propWindow = new PropertyWindow(0, 0, 200, 640, hThisInstance);
|
||||||
IEBrowser* webBrowser = new IEBrowser(_hwndToolbox);
|
IEBrowser* webBrowser = new IEBrowser(_hwndToolbox);
|
||||||
webBrowser->navigateSyncURL(L"http://androdome.com/g3d/toolbox/");
|
webBrowser->navigateSyncURL(L"http://androdome.com/res/ClientToolbox.php");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -578,7 +578,7 @@ void Application::onGraphics(RenderDevice* rd) {
|
|||||||
ScreenToClient(_hWndMain, &mousepos);
|
ScreenToClient(_hWndMain, &mousepos);
|
||||||
}
|
}
|
||||||
|
|
||||||
LightingParameters lighting(G3D::toSeconds(11, 00, 00, AM));
|
LightingParameters lighting(G3D::toSeconds(2, 00, 00, PM));
|
||||||
renderDevice->setProjectionAndCameraMatrix(*cameraController.getCamera());
|
renderDevice->setProjectionAndCameraMatrix(*cameraController.getCamera());
|
||||||
|
|
||||||
// Cyan background
|
// Cyan background
|
||||||
@@ -603,15 +603,9 @@ void Application::onGraphics(RenderDevice* rd) {
|
|||||||
glEnableClientState(GL_VERTEX_ARRAY);
|
glEnableClientState(GL_VERTEX_ARRAY);
|
||||||
glEnableClientState(GL_COLOR_ARRAY);
|
glEnableClientState(GL_COLOR_ARRAY);
|
||||||
glEnableClientState(GL_NORMAL_ARRAY);
|
glEnableClientState(GL_NORMAL_ARRAY);
|
||||||
|
//if(_dataModel->getWorkspace() != NULL)
|
||||||
|
_dataModel->getWorkspace()->render(rd);
|
||||||
|
//else throw std::exception("Workspace not found");
|
||||||
|
|
||||||
for (unsigned int i = 0; i < _dataModel->getWorkspace()->__pvVector.size(); i++)
|
|
||||||
{
|
|
||||||
_dataModel->getWorkspace()->__pvVector[i]->render(rd);
|
|
||||||
}
|
|
||||||
//_dataModel->getWorkspace()->render(rd);
|
|
||||||
glDisableClientState(GL_VERTEX_ARRAY);
|
glDisableClientState(GL_VERTEX_ARRAY);
|
||||||
glDisableClientState(GL_COLOR_ARRAY);
|
glDisableClientState(GL_COLOR_ARRAY);
|
||||||
glDisableClientState(GL_NORMAL_ARRAY);
|
glDisableClientState(GL_NORMAL_ARRAY);
|
||||||
@@ -658,7 +652,7 @@ void Application::onGraphics(RenderDevice* rd) {
|
|||||||
glEnable( GL_TEXTURE_2D );
|
glEnable( GL_TEXTURE_2D );
|
||||||
glEnable(GL_BLEND);// you enable blending function
|
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);
|
||||||
|
/*
|
||||||
std::vector<Instance*> instances = _dataModel->getWorkspace()->getAllChildren();
|
std::vector<Instance*> instances = _dataModel->getWorkspace()->getAllChildren();
|
||||||
currentcursorid = cursorid;
|
currentcursorid = cursorid;
|
||||||
for(size_t i = 0; i < instances.size(); i++)
|
for(size_t i = 0; i < instances.size(); i++)
|
||||||
@@ -675,7 +669,7 @@ void Application::onGraphics(RenderDevice* rd) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
glBindTexture( GL_TEXTURE_2D, currentcursorid);
|
glBindTexture( GL_TEXTURE_2D, currentcursorid);
|
||||||
|
|
||||||
|
|
||||||
@@ -704,12 +698,9 @@ void Application::onKeyPressed(int key)
|
|||||||
{
|
{
|
||||||
deleteInstance();
|
deleteInstance();
|
||||||
}
|
}
|
||||||
if (GetHoldKeyState(VK_RCONTROL))
|
if ((GetHoldKeyState(VK_LCONTROL) || GetHoldKeyState(VK_RCONTROL)) && key=='O')
|
||||||
{
|
{
|
||||||
if (key=='O')
|
|
||||||
{
|
|
||||||
_dataModel->getOpen();
|
_dataModel->getOpen();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void Application::onKeyUp(int key)
|
void Application::onKeyUp(int key)
|
||||||
@@ -722,13 +713,14 @@ void Application::onMouseLeftPressed(HWND hwnd,int x,int y)
|
|||||||
//Removed set focus
|
//Removed set focus
|
||||||
|
|
||||||
|
|
||||||
std::cout << "Click: " << x << "," << y << std::endl;
|
//std::cout << "Click: " << x << "," << y << std::endl;
|
||||||
|
|
||||||
bool onGUI = _dataModel->getGuiRoot()->mouseInGUI(renderDevice, x, y);
|
bool onGUI = _dataModel->getGuiRoot()->mouseInGUI(renderDevice, x, y);
|
||||||
|
|
||||||
|
|
||||||
if(!onGUI)
|
if(!onGUI)
|
||||||
{
|
{
|
||||||
|
Instance * selectedInstance = NULL;
|
||||||
testRay = cameraController.getCamera()->worldRay(_dataModel->mousex, _dataModel->mousey, renderDevice->getViewport());
|
testRay = cameraController.getCamera()->worldRay(_dataModel->mousex, _dataModel->mousey, renderDevice->getViewport());
|
||||||
float nearest=std::numeric_limits<float>::infinity();
|
float nearest=std::numeric_limits<float>::infinity();
|
||||||
Vector3 camPos = cameraController.getCamera()->getCoordinateFrame().translation;
|
Vector3 camPos = cameraController.getCamera()->getCoordinateFrame().translation;
|
||||||
@@ -746,8 +738,9 @@ void Application::onMouseLeftPressed(HWND hwnd,int x,int y)
|
|||||||
if (nearest>time)
|
if (nearest>time)
|
||||||
{
|
{
|
||||||
nearest=time;
|
nearest=time;
|
||||||
bool found = false;
|
//bool found = false;
|
||||||
for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
selectedInstance = test;
|
||||||
|
/*for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
||||||
{
|
{
|
||||||
if(g_selectedInstances.at(i) == test)
|
if(g_selectedInstances.at(i) == test)
|
||||||
{
|
{
|
||||||
@@ -760,26 +753,43 @@ void Application::onMouseLeftPressed(HWND hwnd,int x,int y)
|
|||||||
}
|
}
|
||||||
if(!found)
|
if(!found)
|
||||||
{
|
{
|
||||||
g_selectedInstances.clear();
|
selectedInstance = test;
|
||||||
g_selectedInstances.push_back(test);
|
//if(!GetHoldKeyState(VK_RCONTROL) && !GetHoldKeyState(VK_LCONTROL))
|
||||||
|
//g_selectedInstances.clear();
|
||||||
|
//if(std::find(g_selectedInstances.begin(), g_selectedInstances.end(),test)==g_selectedInstances.end())
|
||||||
|
//g_selectedInstances.push_back(test);
|
||||||
}
|
}
|
||||||
selectInstance(test, _propWindow);
|
//selectInstance(test, _propWindow);
|
||||||
//_message = "Dragging = true.";
|
//_message = "Dragging = true.";
|
||||||
//_messageTime = System::time();
|
//_messageTime = System::time();
|
||||||
//_dragging = true;
|
//_dragging = true;*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!objFound)
|
if(!objFound)
|
||||||
selectInstance(_dataModel,_propWindow);
|
selectInstance(_dataModel,_propWindow);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(selectedInstance->getParent() != g_dataModel->getWorkspace())
|
||||||
|
{
|
||||||
|
selectedInstance = selectedInstance->getParent();
|
||||||
|
}
|
||||||
|
selectInstance(selectedInstance, _propWindow);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::selectInstance(Instance* selectedInstance, PropertyWindow* propWindow)
|
void Application::selectInstance(Instance* selectedInstance, PropertyWindow* propWindow)
|
||||||
{
|
{
|
||||||
g_selectedInstances.clear();
|
if(!GetHoldKeyState(VK_RCONTROL) && !GetHoldKeyState(VK_LCONTROL))
|
||||||
g_selectedInstances.push_back(selectedInstance);
|
{
|
||||||
|
printf("No control key hold \n");
|
||||||
|
g_selectedInstances.clear();
|
||||||
|
}
|
||||||
|
else printf("Control held\n");
|
||||||
|
if(std::find(g_selectedInstances.begin(), g_selectedInstances.end(),selectedInstance)==g_selectedInstances.end())
|
||||||
|
g_selectedInstances.push_back(selectedInstance);
|
||||||
propWindow->UpdateSelected(selectedInstance);
|
propWindow->UpdateSelected(selectedInstance);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -854,7 +864,7 @@ void Application::run() {
|
|||||||
cursorOvrid = cursorOvr->openGLID();
|
cursorOvrid = cursorOvr->openGLID();
|
||||||
RealTime now=0, lastTime=0;
|
RealTime now=0, lastTime=0;
|
||||||
double simTimeRate = 1.0f;
|
double simTimeRate = 1.0f;
|
||||||
float fps=3000.0f;
|
float fps=30.0f;
|
||||||
|
|
||||||
RealTime desiredFrameDuration=1.0/fps;
|
RealTime desiredFrameDuration=1.0/fps;
|
||||||
onInit();
|
onInit();
|
||||||
|
|||||||
@@ -57,6 +57,35 @@ void CameraController::refreshZoom(const CoordinateFrame& frame)
|
|||||||
|
|
||||||
void CameraController::pan(CoordinateFrame* frame,float spdX, float spdY)
|
void CameraController::pan(CoordinateFrame* frame,float spdX, float spdY)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
yaw+=spdX;
|
||||||
|
pitch+=spdY;
|
||||||
|
|
||||||
|
if (pitch>1.4f) pitch=1.4f;
|
||||||
|
if (pitch<-1.4f) pitch=-1.4f;
|
||||||
|
frame->translation = Vector3(sin(-yaw)*zoom*cos(pitch),sin(pitch)*zoom,cos(-yaw)*zoom*cos(pitch))+focusPosition;
|
||||||
|
frame->lookAt(focusPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CameraController::panLock(CoordinateFrame* frame,float spdX, float spdY)
|
||||||
|
{
|
||||||
|
int sign = 0;
|
||||||
|
|
||||||
|
|
||||||
|
yaw = toDegrees(yaw);
|
||||||
|
if((((yaw - fmod(yaw, 45)) / 45) * 45) < 0)
|
||||||
|
{
|
||||||
|
sign = 1;
|
||||||
|
}
|
||||||
|
yaw = fabs(yaw);
|
||||||
|
yaw = ((yaw - fmod(yaw, 45)) / 45) * 45;
|
||||||
|
yaw = toRadians(yaw);
|
||||||
|
|
||||||
|
if(sign==1)
|
||||||
|
{
|
||||||
|
yaw = yaw * -1;
|
||||||
|
}
|
||||||
|
|
||||||
yaw+=spdX;
|
yaw+=spdX;
|
||||||
pitch+=spdY;
|
pitch+=spdY;
|
||||||
|
|
||||||
@@ -105,14 +134,14 @@ void CameraController::Zoom(short delta)
|
|||||||
void CameraController::panLeft()
|
void CameraController::panLeft()
|
||||||
{
|
{
|
||||||
CoordinateFrame frame = g3dCamera.getCoordinateFrame();
|
CoordinateFrame frame = g3dCamera.getCoordinateFrame();
|
||||||
pan(&frame,toRadians(-45),0);
|
panLock(&frame,toRadians(-45),0);
|
||||||
setFrame(frame);
|
setFrame(frame);
|
||||||
|
|
||||||
}
|
}
|
||||||
void CameraController::panRight()
|
void CameraController::panRight()
|
||||||
{
|
{
|
||||||
CoordinateFrame frame = g3dCamera.getCoordinateFrame();
|
CoordinateFrame frame = g3dCamera.getCoordinateFrame();
|
||||||
pan(&frame,toRadians(45),0);
|
panLock(&frame,toRadians(45),0);
|
||||||
setFrame(frame);
|
setFrame(frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ class CameraController {
|
|||||||
void lookAt(const Vector3& position);
|
void lookAt(const Vector3& position);
|
||||||
void refreshZoom(const CoordinateFrame& frame);
|
void refreshZoom(const CoordinateFrame& frame);
|
||||||
void pan(CoordinateFrame* frame,float spdX,float spdY);
|
void pan(CoordinateFrame* frame,float spdX,float spdY);
|
||||||
|
void panLock(CoordinateFrame* frame,float spdX,float spdY);
|
||||||
void update(Application* app);
|
void update(Application* app);
|
||||||
void centerCamera(Instance* selection);
|
void centerCamera(Instance* selection);
|
||||||
void panLeft();
|
void panLeft();
|
||||||
|
|||||||
@@ -257,6 +257,7 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode)
|
|||||||
xml_node<> *propNode = node->first_node();
|
xml_node<> *propNode = node->first_node();
|
||||||
xml_node<> *cFrameNode=0;
|
xml_node<> *cFrameNode=0;
|
||||||
xml_node<> *sizeNode=0;
|
xml_node<> *sizeNode=0;
|
||||||
|
xml_node<> *shapeNode=0;
|
||||||
xml_node<> *colorNode=0;
|
xml_node<> *colorNode=0;
|
||||||
xml_node<> *brickColorNode=0;
|
xml_node<> *brickColorNode=0;
|
||||||
xml_node<> *nameNode=0;
|
xml_node<> *nameNode=0;
|
||||||
@@ -276,6 +277,11 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode)
|
|||||||
{
|
{
|
||||||
nameNode = partPropNode;
|
nameNode = partPropNode;
|
||||||
}
|
}
|
||||||
|
if (xmlValue=="shape")
|
||||||
|
{
|
||||||
|
shapeNode = partPropNode;
|
||||||
|
_legacyLoad=false;
|
||||||
|
}
|
||||||
if (xmlValue=="Color")
|
if (xmlValue=="Color")
|
||||||
{
|
{
|
||||||
colorNode=partPropNode;
|
colorNode=partPropNode;
|
||||||
@@ -297,6 +303,11 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode)
|
|||||||
{
|
{
|
||||||
std::string xmlName = attr->name();
|
std::string xmlName = attr->name();
|
||||||
std::string xmlValue = attr->value();
|
std::string xmlValue = attr->value();
|
||||||
|
if (xmlValue=="shape")
|
||||||
|
{
|
||||||
|
shapeNode = featureNode;
|
||||||
|
_legacyLoad=true;
|
||||||
|
}
|
||||||
if (xmlValue=="size")
|
if (xmlValue=="size")
|
||||||
{
|
{
|
||||||
sizeNode=featureNode;
|
sizeNode=featureNode;
|
||||||
@@ -328,6 +339,20 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode)
|
|||||||
B = getFloatValue(colorNode,"B");
|
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;
|
||||||
|
}
|
||||||
|
if(pshape == "1" || pshape == "Block"){
|
||||||
|
partshape = Enum::Shape::Block;
|
||||||
|
}
|
||||||
|
if(pshape == "2" || pshape == "Cylinder"){
|
||||||
|
partshape = Enum::Shape::Cylinder;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::string newName = nameNode->value();
|
std::string newName = nameNode->value();
|
||||||
float X = getFloatValue(cFrameNode,"X");
|
float X = getFloatValue(cFrameNode,"X");
|
||||||
@@ -353,6 +378,7 @@ bool DataModelInstance::scanXMLObject(xml_node<> * scanNode)
|
|||||||
PartInstance* test = makePart();
|
PartInstance* test = makePart();
|
||||||
test->setParent(getWorkspace());
|
test->setParent(getWorkspace());
|
||||||
test->color = Color3(R,G,B);
|
test->color = Color3(R,G,B);
|
||||||
|
test->shape = partshape;
|
||||||
if(brickColorNode)
|
if(brickColorNode)
|
||||||
{
|
{
|
||||||
test->color = bcToRGB(atoi(brickColorNode->value()));
|
test->color = bcToRGB(atoi(brickColorNode->value()));
|
||||||
|
|||||||
@@ -22,10 +22,7 @@ public:
|
|||||||
bool readXMLFileStream(std::ifstream* file);
|
bool readXMLFileStream(std::ifstream* file);
|
||||||
void drawMessage(RenderDevice*);
|
void drawMessage(RenderDevice*);
|
||||||
WorkspaceInstance* getWorkspace();
|
WorkspaceInstance* getWorkspace();
|
||||||
WorkspaceInstance* workspace;
|
|
||||||
LevelInstance * level;
|
|
||||||
LevelInstance * getLevel();
|
LevelInstance * getLevel();
|
||||||
GuiRoot* guiRoot;
|
|
||||||
std::string message;
|
std::string message;
|
||||||
std::string _loadedFileName;
|
std::string _loadedFileName;
|
||||||
bool showMessage;
|
bool showMessage;
|
||||||
@@ -51,4 +48,7 @@ private:
|
|||||||
std::string _errMsg;
|
std::string _errMsg;
|
||||||
bool _legacyLoad;
|
bool _legacyLoad;
|
||||||
float _modY;
|
float _modY;
|
||||||
|
WorkspaceInstance* workspace;
|
||||||
|
LevelInstance * level;
|
||||||
|
GuiRoot* guiRoot;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -170,7 +170,7 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib Comdlg32.lib Shell32.lib"
|
AdditionalDependencies="Advapi32.lib UxTheme.lib Comctl32.lib Comdlg32.lib Shell32.lib Urlmon.lib"
|
||||||
OutputFile="./G3DTest-Debug.exe"
|
OutputFile="./G3DTest-Debug.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
|
|||||||
@@ -36,5 +36,46 @@ void GUDButtonListener::onButton1MouseClick(BaseButtonInstance* button)
|
|||||||
if(g_selectedInstances.size() > 0)
|
if(g_selectedInstances.size() > 0)
|
||||||
g_usableApp->_propWindow->UpdateSelected(newinst.at(0));
|
g_usableApp->_propWindow->UpdateSelected(newinst.at(0));
|
||||||
}
|
}
|
||||||
|
else if(button->name == "Group")
|
||||||
|
{
|
||||||
|
GroupInstance * inst = new GroupInstance();
|
||||||
|
for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
||||||
|
{
|
||||||
|
if(g_selectedInstances.at(i)->canDelete)
|
||||||
|
{
|
||||||
|
g_selectedInstances.at(i)->setParent(inst);
|
||||||
|
}
|
||||||
|
/*tempinst->setPosition(Vector3(tempPos.x, tempPos.y + tempSize.y, tempPos.z));
|
||||||
|
g_usableApp->cameraController.centerCamera(g_selectedInstances.at(0));*/
|
||||||
|
}
|
||||||
|
inst->setParent(g_dataModel->getWorkspace());
|
||||||
|
g_selectedInstances.clear();
|
||||||
|
g_selectedInstances.push_back(inst);
|
||||||
|
if(g_selectedInstances.size() > 0)
|
||||||
|
g_usableApp->_propWindow->UpdateSelected(g_selectedInstances.at(0));
|
||||||
|
}
|
||||||
|
else if(button->name == "UnGroup")
|
||||||
|
{
|
||||||
|
std::vector<Instance*> newinst;
|
||||||
|
for(size_t i = 0; i < g_selectedInstances.size(); i++)
|
||||||
|
{
|
||||||
|
if(g_selectedInstances.at(i)->canDelete)
|
||||||
|
{
|
||||||
|
if(GroupInstance* model = dynamic_cast<GroupInstance*>(g_selectedInstances.at(i)))
|
||||||
|
{
|
||||||
|
newinst = model->unGroup();
|
||||||
|
model->setParent(NULL);
|
||||||
|
delete model;
|
||||||
|
model = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*tempinst->setPosition(Vector3(tempPos.x, tempPos.y + tempSize.y, tempPos.z));
|
||||||
|
g_usableApp->cameraController.centerCamera(g_selectedInstances.at(0));*/
|
||||||
|
}
|
||||||
|
g_selectedInstances.clear();
|
||||||
|
g_selectedInstances = newinst;
|
||||||
|
if(g_selectedInstances.size() > 0)
|
||||||
|
g_usableApp->_propWindow->UpdateSelected(newinst.at(0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
GroupInstance::GroupInstance(void)
|
GroupInstance::GroupInstance(void)
|
||||||
{
|
{
|
||||||
PVInstance::PVInstance();
|
PVInstance::PVInstance();
|
||||||
|
name = "Model";
|
||||||
className = "GroupInstance";
|
className = "GroupInstance";
|
||||||
listicon = 12;
|
listicon = 12;
|
||||||
}
|
}
|
||||||
@@ -10,6 +11,8 @@ GroupInstance::GroupInstance(void)
|
|||||||
GroupInstance::GroupInstance(const GroupInstance &oinst)
|
GroupInstance::GroupInstance(const GroupInstance &oinst)
|
||||||
{
|
{
|
||||||
PVInstance::PVInstance(oinst);
|
PVInstance::PVInstance(oinst);
|
||||||
|
name = "Model";
|
||||||
|
className = "GroupInstance";
|
||||||
listicon = 12;
|
listicon = 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,8 +20,6 @@ GroupInstance::~GroupInstance(void)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
std::vector<PROPGRIDITEM> GroupInstance::getProperties()
|
std::vector<PROPGRIDITEM> GroupInstance::getProperties()
|
||||||
{
|
{
|
||||||
std::vector<PROPGRIDITEM> properties = PVInstance::getProperties();
|
std::vector<PROPGRIDITEM> properties = PVInstance::getProperties();
|
||||||
@@ -28,3 +29,14 @@ void GroupInstance::PropUpdate(LPPROPGRIDITEM &pItem)
|
|||||||
{
|
{
|
||||||
PVInstance::PropUpdate(pItem);
|
PVInstance::PropUpdate(pItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<Instance *> GroupInstance::unGroup()
|
||||||
|
{
|
||||||
|
std::vector<Instance *> child;
|
||||||
|
while(children.size() > 0)
|
||||||
|
{
|
||||||
|
child.push_back(children[0]);
|
||||||
|
children[0]->setParent(parent);
|
||||||
|
}
|
||||||
|
return child;
|
||||||
|
}
|
||||||
@@ -10,5 +10,5 @@ public:
|
|||||||
GroupInstance(const GroupInstance &oinst);
|
GroupInstance(const GroupInstance &oinst);
|
||||||
virtual std::vector<PROPGRIDITEM> getProperties();
|
virtual std::vector<PROPGRIDITEM> getProperties();
|
||||||
virtual void PropUpdate(LPPROPGRIDITEM &pItem);
|
virtual void PropUpdate(LPPROPGRIDITEM &pItem);
|
||||||
|
std::vector<Instance *> unGroup();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ GuiRoot::GuiRoot() : _message(""), _messageTime(0)
|
|||||||
button->font = g_fntlighttrek;
|
button->font = g_fntlighttrek;
|
||||||
button->fontLocationRelativeTo = Vector2(10, 0);
|
button->fontLocationRelativeTo = Vector2(10, 0);
|
||||||
button->setParent(this);
|
button->setParent(this);
|
||||||
|
button->setButtonListener(new GUDButtonListener());
|
||||||
|
|
||||||
button = makeTextButton();
|
button = makeTextButton();
|
||||||
button->boxBegin = Vector2(0,240);
|
button->boxBegin = Vector2(0,240);
|
||||||
@@ -192,6 +192,7 @@ GuiRoot::GuiRoot() : _message(""), _messageTime(0)
|
|||||||
button->font = g_fntlighttrek;
|
button->font = g_fntlighttrek;
|
||||||
button->fontLocationRelativeTo = Vector2(10, 0);
|
button->fontLocationRelativeTo = Vector2(10, 0);
|
||||||
button->setParent(this);
|
button->setParent(this);
|
||||||
|
button->setButtonListener(new GUDButtonListener());
|
||||||
|
|
||||||
button = makeTextButton();
|
button = makeTextButton();
|
||||||
button->boxBegin = Vector2(0,265);
|
button->boxBegin = Vector2(0,265);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
#include "IEBrowser.h"
|
#include "IEBrowser.h"
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
#include "ax.h"
|
#include "ax.h"
|
||||||
|
|
||||||
//#include "IEDispatcher.h"
|
//#include "IEDispatcher.h"
|
||||||
|
|
||||||
void IEBrowser::Boop(char* test)
|
void IEBrowser::Boop(char* test)
|
||||||
@@ -41,6 +42,17 @@ IEBrowser::~IEBrowser(void) {
|
|||||||
// Something goes here
|
// Something goes here
|
||||||
int IEBrowser::setExternal(IDispatch** ext)
|
int IEBrowser::setExternal(IDispatch** ext)
|
||||||
{
|
{
|
||||||
|
std::cout << &m_IEDispatcher;
|
||||||
|
IInternetHostSecurityManager* spSecMan;
|
||||||
|
spDocument2->QueryInterface(IID_IInternetHostSecurityManager,
|
||||||
|
(void **) &spSecMan);
|
||||||
|
|
||||||
|
// TODO: hr needs to say: 'S_OK'
|
||||||
|
//spSecMan->QueryCustomPolicy
|
||||||
|
HRESULT hr = spSecMan->ProcessUrlAction(URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY,
|
||||||
|
NULL, 0, NULL, 0, 0, PUAF_WARN_IF_DENIED);
|
||||||
|
|
||||||
|
(*ext) = &m_IEDispatcher;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,9 +95,9 @@ bool IEBrowser::navigateSyncURL(wchar_t* url)
|
|||||||
if (SUCCEEDED(spDocument->QueryInterface(IID_ICustomDoc,(void**)&spCustomDoc)))
|
if (SUCCEEDED(spDocument->QueryInterface(IID_ICustomDoc,(void**)&spCustomDoc)))
|
||||||
{
|
{
|
||||||
spCustomDoc->SetUIHandler(m_spHandler);
|
spCustomDoc->SetUIHandler(m_spHandler);
|
||||||
|
|
||||||
m_spHandler->GetExternal(&m_spExternal);
|
m_spHandler->GetExternal(&m_spExternal);
|
||||||
|
spDocument->QueryInterface(IID_IHTMLDocument2, (void **) &spDocument2);
|
||||||
|
setExternal(&m_spExternal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
#include <mshtml.h>
|
#include <mshtml.h>
|
||||||
#include <exdisp.h>
|
#include <exdisp.h>
|
||||||
#include <Mshtmhst.h>
|
#include <Mshtmhst.h>
|
||||||
|
#include "IEDispatcher.h"
|
||||||
|
|
||||||
class IEBrowser {
|
class IEBrowser {
|
||||||
public:
|
public:
|
||||||
@@ -18,6 +19,7 @@ class IEBrowser {
|
|||||||
IDocHostUIHandler* m_spHandler;
|
IDocHostUIHandler* m_spHandler;
|
||||||
IDispatch* m_spExternal;
|
IDispatch* m_spExternal;
|
||||||
IDispatch* m_newExternal;
|
IDispatch* m_newExternal;
|
||||||
|
IEDispatcher m_IEDispatcher;
|
||||||
IOleClientSite* m_spDefaultDocHostUIHandler;
|
IOleClientSite* m_spDefaultDocHostUIHandler;
|
||||||
int setExternal(IDispatch** ext);
|
int setExternal(IDispatch** ext);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,11 +2,9 @@
|
|||||||
#include "oaidl.h"
|
#include "oaidl.h"
|
||||||
//DEFINE_GUID(CLSID_G3d, 0xB323F8E0L, 0x2E68, 0x11D0, 0x90, 0xEA, 0x00, 0xAA, 0x00, 0x60, 0xF8, 0x6F);
|
//DEFINE_GUID(CLSID_G3d, 0xB323F8E0L, 0x2E68, 0x11D0, 0x90, 0xEA, 0x00, 0xAA, 0x00, 0x60, 0xF8, 0x6F);
|
||||||
|
|
||||||
/*
|
|
||||||
class IEDispatcher : public IDispatch
|
class IEDispatcher : public IDispatch
|
||||||
{
|
{
|
||||||
*/
|
/*
|
||||||
|
|
||||||
EXTERN_C const IID IID_IDispatch;
|
EXTERN_C const IID IID_IDispatch;
|
||||||
|
|
||||||
#if defined(__cplusplus) && !defined(CINTERFACE)
|
#if defined(__cplusplus) && !defined(CINTERFACE)
|
||||||
@@ -14,6 +12,7 @@ EXTERN_C const IID IID_IDispatch;
|
|||||||
MIDL_INTERFACE("B323F8E0-2E68-11D0-90EA-00AA0060F86F")
|
MIDL_INTERFACE("B323F8E0-2E68-11D0-90EA-00AA0060F86F")
|
||||||
IEDispatcher : public IDispatch
|
IEDispatcher : public IDispatch
|
||||||
{
|
{
|
||||||
|
*/
|
||||||
public:
|
public:
|
||||||
IEDispatcher(void);
|
IEDispatcher(void);
|
||||||
~IEDispatcher(void);
|
~IEDispatcher(void);
|
||||||
@@ -27,4 +26,4 @@ public:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
//#endif
|
||||||
|
|||||||
15
Instance.cpp
15
Instance.cpp
@@ -114,21 +114,6 @@ std::vector<Instance* > Instance::getAllChildren()
|
|||||||
return children;
|
return children;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<Instance* > Instance::compileAndGetPVVector()
|
|
||||||
{
|
|
||||||
std::vector<Instance* > totalchildren;
|
|
||||||
if(!children.empty())
|
|
||||||
{
|
|
||||||
for(size_t i = 0; i < children.size(); i++)
|
|
||||||
{
|
|
||||||
std::vector<Instance* > subchildren = children.at(i)->compileAndGetPVVector();
|
|
||||||
if(!subchildren.empty())
|
|
||||||
totalchildren.insert(totalchildren.end(), subchildren.begin(), subchildren.end());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return totalchildren;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Instance::setParent(Instance* newParent)
|
void Instance::setParent(Instance* newParent)
|
||||||
{
|
{
|
||||||
if(parent != NULL)
|
if(parent != NULL)
|
||||||
|
|||||||
@@ -12,12 +12,12 @@ public:
|
|||||||
std::string name;
|
std::string name;
|
||||||
virtual void render(RenderDevice*);
|
virtual void render(RenderDevice*);
|
||||||
virtual void update();
|
virtual void update();
|
||||||
|
std::vector<Instance*> children; // All children.
|
||||||
std::string getClassName();
|
std::string getClassName();
|
||||||
Instance* findFirstChild(std::string);
|
Instance* findFirstChild(std::string);
|
||||||
std::vector<Instance* > getChildren();
|
std::vector<Instance* > getChildren();
|
||||||
std::vector<Instance* > getAllChildren();
|
std::vector<Instance* > getAllChildren();
|
||||||
std::vector<Instance* > compileAndGetPVVector();
|
void setParent(Instance*);
|
||||||
virtual void setParent(Instance*);
|
|
||||||
void setName(std::string newName);
|
void setName(std::string newName);
|
||||||
void addChild(Instance*);
|
void addChild(Instance*);
|
||||||
void removeChild(Instance*);
|
void removeChild(Instance*);
|
||||||
@@ -28,7 +28,6 @@ public:
|
|||||||
virtual void PropUpdate(LPPROPGRIDITEM &pItem);
|
virtual void PropUpdate(LPPROPGRIDITEM &pItem);
|
||||||
int listicon;
|
int listicon;
|
||||||
protected:
|
protected:
|
||||||
std::vector<Instance*> children; // All children.
|
|
||||||
std::string className;
|
std::string className;
|
||||||
Instance* parent; // Another pointer.
|
Instance* parent; // Another pointer.
|
||||||
PROPGRIDITEM createPGI(LPSTR catalog, LPSTR propName, LPSTR propDesc, LPARAM curVal, INT type, TCHAR choices[] = NULL);
|
PROPGRIDITEM createPGI(LPSTR catalog, LPSTR propName, LPSTR propDesc, LPARAM curVal, INT type, TCHAR choices[] = NULL);
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
#include "PVInstance.h"
|
#include "PVInstance.h"
|
||||||
#include "WorkspaceInstance.h"
|
|
||||||
|
|
||||||
PVInstance::PVInstance(void)
|
PVInstance::PVInstance(void)
|
||||||
{
|
{
|
||||||
@@ -22,43 +21,6 @@ void PVInstance::postRender(RenderDevice* rd)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void PVInstance::render(RenderDevice* rd)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void PVInstance::setParent(Instance* newParent)
|
|
||||||
{
|
|
||||||
if(parent != NULL)
|
|
||||||
{
|
|
||||||
Instance* workspace = parent;
|
|
||||||
while(workspace != NULL)
|
|
||||||
{
|
|
||||||
if(WorkspaceInstance* wsp = dynamic_cast<WorkspaceInstance*>(workspace))
|
|
||||||
{
|
|
||||||
wsp->removeFromPVector(this);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
workspace = workspace->getParent();
|
|
||||||
}
|
|
||||||
parent->removeChild(this);
|
|
||||||
}
|
|
||||||
parent = newParent;
|
|
||||||
if(newParent != NULL)
|
|
||||||
{
|
|
||||||
Instance* workspace = parent;
|
|
||||||
while(workspace != NULL)
|
|
||||||
{
|
|
||||||
if(WorkspaceInstance* wsp = dynamic_cast<WorkspaceInstance*>(workspace))
|
|
||||||
{
|
|
||||||
wsp->addToPVector(this);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
workspace = workspace->getParent();
|
|
||||||
}
|
|
||||||
newParent->addChild(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<PROPGRIDITEM> PVInstance::getProperties()
|
std::vector<PROPGRIDITEM> PVInstance::getProperties()
|
||||||
{
|
{
|
||||||
std::vector<PROPGRIDITEM> properties = Instance::getProperties();
|
std::vector<PROPGRIDITEM> properties = Instance::getProperties();
|
||||||
|
|||||||
@@ -9,9 +9,7 @@ public:
|
|||||||
~PVInstance(void);
|
~PVInstance(void);
|
||||||
PVInstance(const PVInstance &oinst);
|
PVInstance(const PVInstance &oinst);
|
||||||
virtual void postRender(RenderDevice* rd);
|
virtual void postRender(RenderDevice* rd);
|
||||||
virtual void setParent(Instance* newParent);
|
|
||||||
virtual std::vector<PROPGRIDITEM> getProperties();
|
virtual std::vector<PROPGRIDITEM> getProperties();
|
||||||
virtual void PropUpdate(LPPROPGRIDITEM &pItem);
|
virtual void PropUpdate(LPPROPGRIDITEM &pItem);
|
||||||
virtual void render(RenderDevice* rd);
|
|
||||||
bool nameShown;
|
bool nameShown;
|
||||||
};
|
};
|
||||||
|
|||||||
308
PartInstance.cpp
308
PartInstance.cpp
@@ -244,22 +244,36 @@ void PartInstance::addVertex(Vector3 vertexPos,Color3 color)
|
|||||||
addSingularNormal(cross(v1-v3,v2-v3).direction());
|
addSingularNormal(cross(v1-v3,v2-v3).direction());
|
||||||
}
|
}
|
||||||
|
|
||||||
void PartInstance::addSmoothTriangle(Vector3 v1,Vector3 v2,Vector3 v3)
|
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(v1,color);
|
||||||
addVertex(v2,color);
|
addVertex(v2,color);
|
||||||
addVertex(v3,color);
|
addVertex(v3,color);
|
||||||
//addNormals(cross(v2-v1,v3-v1).direction());
|
//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(cross(v2-v1,v3-v1).direction());
|
addSingularNormal(v1.direction());
|
||||||
addSingularNormal(cross(v3-v2,v1-v2).direction());
|
addSingularNormal(v2.direction());
|
||||||
addSingularNormal(cross(v1-v3,v2-v3).direction());
|
addSingularNormal(v3.direction());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PartInstance::addPlus(Vector3 v1)
|
void PartInstance::addPlus(Vector3 v1)
|
||||||
{
|
{
|
||||||
float renderY = size.y/2 - 0.25f;
|
float renderY = max(size.z, max(size.x, size.y))/2 * 0.775;
|
||||||
Vector3 vx1 = v1 + Vector3(0, -renderY, -0.1f);
|
Vector3 vx1 = v1 + Vector3(0, -renderY, -0.1f);
|
||||||
Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f);
|
Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f);
|
||||||
Vector3 vx3 = v1 + Vector3(0, renderY, 0.1f);
|
Vector3 vx3 = v1 + Vector3(0, renderY, 0.1f);
|
||||||
@@ -313,7 +327,7 @@ void PartInstance::addPlus(Vector3 v1)
|
|||||||
|
|
||||||
void PartInstance::addPlus2(Vector3 v1)
|
void PartInstance::addPlus2(Vector3 v1)
|
||||||
{
|
{
|
||||||
float renderY = max(size.z, max(size.x, size.y))/2 - 0.25f;
|
float renderY = max(size.z, max(size.x, size.y))/2 * 0.775;
|
||||||
Vector3 vx3 = v1 + Vector3(0, -renderY, -0.1f);
|
Vector3 vx3 = v1 + Vector3(0, -renderY, -0.1f);
|
||||||
Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f);
|
Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f);
|
||||||
Vector3 vx1 = v1 + Vector3(0, renderY, 0.1f);
|
Vector3 vx1 = v1 + Vector3(0, renderY, 0.1f);
|
||||||
@@ -387,6 +401,19 @@ void PartInstance::addPlus2(Vector3 v1)
|
|||||||
addTriangle(Vector3(_vertices[vertex1],_vertices[vertex1+1],_vertices[vertex1+2]),
|
addTriangle(Vector3(_vertices[vertex1],_vertices[vertex1+1],_vertices[vertex1+2]),
|
||||||
Vector3(_vertices[vertex2],_vertices[vertex2+1],_vertices[vertex2+2]),
|
Vector3(_vertices[vertex2],_vertices[vertex2+1],_vertices[vertex2+2]),
|
||||||
Vector3(_vertices[vertex3],_vertices[vertex3+1],_vertices[vertex3+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)
|
void PartInstance::makeSmoothFace(int vertex1,int vertex2, int vertex3)
|
||||||
{
|
{
|
||||||
@@ -405,7 +432,8 @@ bool PartInstance::isUniqueVertex(Vector3 pos)
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
//int rings = 15;
|
||||||
|
//int sectors = 15;
|
||||||
void PartInstance::render(RenderDevice* rd) {
|
void PartInstance::render(RenderDevice* rd) {
|
||||||
//if(nameShown)
|
//if(nameShown)
|
||||||
//postRenderStack.push_back(this);
|
//postRenderStack.push_back(this);
|
||||||
@@ -422,66 +450,103 @@ void PartInstance::render(RenderDevice* rd) {
|
|||||||
{
|
{
|
||||||
case Enum::Shape::Ball:
|
case Enum::Shape::Ball:
|
||||||
{
|
{
|
||||||
int obv = _bevelSize;
|
/*float radius = renderSize.y / 2;
|
||||||
_bevelSize = this->size.y / 3.14159F;
|
float const R = 1./(float)(rings-1);
|
||||||
|
float const S = 1./(float)(sectors-1);
|
||||||
|
int r, s;
|
||||||
|
double M_PI = pi();
|
||||||
|
double M_PI_2 = M_PI/2;
|
||||||
|
|
||||||
|
_vertices.resize(rings * sectors * 3);
|
||||||
|
_normals.resize(rings * sectors * 3);
|
||||||
|
std::vector<GLfloat>::iterator v = _vertices.begin();
|
||||||
|
std::vector<GLfloat>::iterator n = _normals.begin();
|
||||||
|
//std::vector<GLfloat>::iterator t = texcoords.begin();
|
||||||
|
for(r = 0; r < rings; r++) for(s = 0; s < sectors; s++) {
|
||||||
|
float const y = sin( -M_PI_2 + M_PI * r * R );
|
||||||
|
float const x = cos(2*M_PI * s * S) * sin( M_PI * r * R );
|
||||||
|
float const z = sin(2*M_PI * s * S) * sin( M_PI * r * R );
|
||||||
|
|
||||||
|
|
||||||
|
*v++ = x * radius;
|
||||||
|
*v++ = y * radius;
|
||||||
|
*v++ = z * radius;
|
||||||
|
|
||||||
|
*n++ = x;
|
||||||
|
*n++ = y;
|
||||||
|
*n++ = z;
|
||||||
|
}
|
||||||
|
|
||||||
|
_indices.resize(rings * sectors * 4);
|
||||||
|
std::vector<GLushort>::iterator i = _indices.begin();
|
||||||
|
for(r = 0; r < rings; r++) for(s = 0; s < sectors; s++) {
|
||||||
|
*i++ = r * sectors + s;
|
||||||
|
*i++ = r * sectors + (s+1);
|
||||||
|
*i++ = (r+1) * sectors + (s+1);
|
||||||
|
*i++ = (r+1) * sectors + s;
|
||||||
|
}
|
||||||
|
//*/
|
||||||
|
|
||||||
|
|
||||||
|
float sphFace = this->size.y / 3.14159F;
|
||||||
// Front
|
// Front
|
||||||
addSmoothTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z),
|
addSmoothTriangle(Vector3(renderSize.x-sphFace,renderSize.y-sphFace,renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
|
Vector3(-renderSize.x+sphFace,-renderSize.y+sphFace,renderSize.z),
|
||||||
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,renderSize.z)
|
Vector3(renderSize.x-sphFace,-renderSize.y+sphFace,renderSize.z)
|
||||||
);
|
);
|
||||||
|
|
||||||
addSmoothTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,renderSize.z),
|
addSmoothTriangle(Vector3(-renderSize.x+sphFace,renderSize.y-sphFace,renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
|
Vector3(-renderSize.x+sphFace,-renderSize.y+sphFace,renderSize.z),
|
||||||
Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z)
|
Vector3(renderSize.x-sphFace,renderSize.y-sphFace,renderSize.z)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Top
|
// Top
|
||||||
addSmoothTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y,renderSize.z-_bevelSize),
|
addSmoothTriangle(Vector3(renderSize.x-sphFace,renderSize.y,renderSize.z-sphFace),
|
||||||
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
|
Vector3(renderSize.x-sphFace,renderSize.y,-renderSize.z+sphFace),
|
||||||
Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize)
|
Vector3(-renderSize.x+sphFace,renderSize.y,renderSize.z-sphFace)
|
||||||
);
|
);
|
||||||
addSmoothTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize),
|
addSmoothTriangle(Vector3(-renderSize.x+sphFace,renderSize.y,renderSize.z-sphFace),
|
||||||
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
|
Vector3(renderSize.x-sphFace,renderSize.y,-renderSize.z+sphFace),
|
||||||
Vector3(-renderSize.x+_bevelSize,renderSize.y,-renderSize.z+_bevelSize)
|
Vector3(-renderSize.x+sphFace,renderSize.y,-renderSize.z+sphFace)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Back
|
// Back
|
||||||
addSmoothTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
|
addSmoothTriangle(Vector3(renderSize.x-sphFace,renderSize.y-sphFace,-renderSize.z),
|
||||||
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
|
Vector3(renderSize.x-sphFace,-renderSize.y+sphFace,-renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z)
|
Vector3(-renderSize.x+sphFace,-renderSize.y+sphFace,-renderSize.z)
|
||||||
);
|
);
|
||||||
addSmoothTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
|
addSmoothTriangle(Vector3(renderSize.x-sphFace,renderSize.y-sphFace,-renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
|
Vector3(-renderSize.x+sphFace,-renderSize.y+sphFace,-renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,-renderSize.z)
|
Vector3(-renderSize.x+sphFace,renderSize.y-sphFace,-renderSize.z)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Bottom
|
// Bottom
|
||||||
addSmoothTriangle(Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
|
addSmoothTriangle(Vector3(renderSize.x-sphFace,-renderSize.y,-renderSize.z+sphFace),
|
||||||
Vector3(renderSize.x-_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
|
Vector3(renderSize.x-sphFace,-renderSize.y,renderSize.z-sphFace),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize)
|
Vector3(-renderSize.x+sphFace,-renderSize.y,renderSize.z-sphFace)
|
||||||
);
|
);
|
||||||
addSmoothTriangle(Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
|
addSmoothTriangle(Vector3(-renderSize.x+sphFace,-renderSize.y,renderSize.z-sphFace),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
|
Vector3(-renderSize.x+sphFace,-renderSize.y,-renderSize.z+sphFace),
|
||||||
Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize)
|
Vector3(renderSize.x-sphFace,-renderSize.y,-renderSize.z+sphFace)
|
||||||
);
|
);
|
||||||
// Left
|
// Left
|
||||||
addSmoothTriangle(Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
|
addSmoothTriangle(Vector3(-renderSize.x,renderSize.y-sphFace,-renderSize.z+sphFace),
|
||||||
Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
|
Vector3(-renderSize.x,-renderSize.y+sphFace,renderSize.z-sphFace),
|
||||||
Vector3(-renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize)
|
Vector3(-renderSize.x,renderSize.y-sphFace,renderSize.z-sphFace)
|
||||||
);
|
);
|
||||||
addSmoothTriangle(Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
|
addSmoothTriangle(Vector3(-renderSize.x,-renderSize.y+sphFace,renderSize.z-sphFace),
|
||||||
Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
|
Vector3(-renderSize.x,renderSize.y-sphFace,-renderSize.z+sphFace),
|
||||||
Vector3(-renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize)
|
Vector3(-renderSize.x,-renderSize.y+sphFace,-renderSize.z+sphFace)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Right
|
// Right
|
||||||
addSmoothTriangle(Vector3(renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize),
|
addSmoothTriangle(Vector3(renderSize.x,renderSize.y-sphFace,renderSize.z-sphFace),
|
||||||
Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
|
Vector3(renderSize.x,-renderSize.y+sphFace,renderSize.z-sphFace),
|
||||||
Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize)
|
Vector3(renderSize.x,renderSize.y-sphFace,-renderSize.z+sphFace)
|
||||||
);
|
);
|
||||||
addSmoothTriangle(Vector3(renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize),
|
addSmoothTriangle(Vector3(renderSize.x,-renderSize.y+sphFace,-renderSize.z+sphFace),
|
||||||
Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
|
Vector3(renderSize.x,renderSize.y-sphFace,-renderSize.z+sphFace),
|
||||||
Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize)
|
Vector3(renderSize.x,-renderSize.y+sphFace,renderSize.z-sphFace)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@@ -537,7 +602,9 @@ void PartInstance::render(RenderDevice* rd) {
|
|||||||
makeSmoothFace(84,174,144);
|
makeSmoothFace(84,174,144);
|
||||||
// Back Left Bottom Corner
|
// Back Left Bottom Corner
|
||||||
makeSmoothFace(174,84,132);
|
makeSmoothFace(174,84,132);
|
||||||
_bevelSize = obv;
|
for (unsigned short i=0;i<_vertices.size()/6;i++) {
|
||||||
|
_indices.push_back(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Enum::Shape::Block:
|
case Enum::Shape::Block:
|
||||||
@@ -655,71 +722,76 @@ void PartInstance::render(RenderDevice* rd) {
|
|||||||
makeFace(84,174,144);
|
makeFace(84,174,144);
|
||||||
// Back Left Bottom Corner
|
// Back Left Bottom Corner
|
||||||
makeFace(174,84,132);
|
makeFace(174,84,132);
|
||||||
|
for (unsigned short i=0;i<_vertices.size()/6;i++) {
|
||||||
|
_indices.push_back(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Enum::Shape::Cylinder:
|
case Enum::Shape::Cylinder:
|
||||||
{
|
{
|
||||||
|
/*int fsize = renderSize.y/(pi()/2);
|
||||||
|
//makeFace(0,0,48);
|
||||||
// Front
|
// Front
|
||||||
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z),
|
addTriangle(Vector3(renderSize.x,renderSize.y-fsize,renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
|
Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z),
|
||||||
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,renderSize.z)
|
Vector3(renderSize.x,-renderSize.y+fsize,renderSize.z)
|
||||||
);
|
);
|
||||||
|
|
||||||
addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,renderSize.z),
|
addTriangle(Vector3(-renderSize.x,renderSize.y-fsize,renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
|
Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z),
|
||||||
Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z)
|
Vector3(renderSize.x,renderSize.y-fsize,renderSize.z)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Top
|
// Top
|
||||||
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y,renderSize.z-_bevelSize),
|
addTriangle(Vector3(renderSize.x,renderSize.y,renderSize.z-fsize),
|
||||||
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
|
Vector3(renderSize.x,renderSize.y,-renderSize.z+fsize),
|
||||||
Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize)
|
Vector3(-renderSize.x,renderSize.y,renderSize.z-fsize)
|
||||||
);
|
);
|
||||||
addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize),
|
addTriangle(Vector3(-renderSize.x,renderSize.y,renderSize.z-fsize),
|
||||||
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
|
Vector3(renderSize.x,renderSize.y,-renderSize.z+fsize),
|
||||||
Vector3(-renderSize.x+_bevelSize,renderSize.y,-renderSize.z+_bevelSize)
|
Vector3(-renderSize.x,renderSize.y,-renderSize.z+fsize)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Back
|
// Back
|
||||||
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
|
addTriangle(Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z),
|
||||||
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
|
Vector3(renderSize.x,-renderSize.y+fsize,-renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z)
|
Vector3(-renderSize.x,-renderSize.y+fsize,-renderSize.z)
|
||||||
);
|
);
|
||||||
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
|
addTriangle(Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
|
Vector3(-renderSize.x,-renderSize.y+fsize,-renderSize.z),
|
||||||
Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,-renderSize.z)
|
Vector3(-renderSize.x,renderSize.y-fsize,-renderSize.z)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Bottom
|
// Bottom
|
||||||
addTriangle(Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
|
addTriangle(Vector3(renderSize.x,-renderSize.y,-renderSize.z+fsize),
|
||||||
Vector3(renderSize.x-_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
|
Vector3(renderSize.x,-renderSize.y,renderSize.z-fsize),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize)
|
Vector3(-renderSize.x,-renderSize.y,renderSize.z-fsize)
|
||||||
);
|
);
|
||||||
addTriangle(Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
|
addTriangle(Vector3(-renderSize.x,-renderSize.y,renderSize.z-fsize),
|
||||||
Vector3(-renderSize.x+_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
|
Vector3(-renderSize.x,-renderSize.y,-renderSize.z+fsize),
|
||||||
Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize)
|
Vector3(renderSize.x,-renderSize.y,-renderSize.z+fsize)
|
||||||
);
|
);
|
||||||
// Left
|
// Left
|
||||||
addTriangle(Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
|
/*addTriangle(Vector3(-renderSize.x,renderSize.y-fsize,-renderSize.z+fsize),
|
||||||
Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
|
Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z-fsize),
|
||||||
Vector3(-renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize)
|
Vector3(-renderSize.x,renderSize.y-fsize,renderSize.z-fsize)
|
||||||
);
|
);
|
||||||
addTriangle(Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
|
addTriangle(Vector3(-renderSize.x,-renderSize.y+fsize,renderSize.z-fsize),
|
||||||
Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
|
Vector3(-renderSize.x,renderSize.y-fsize,-renderSize.z+fsize),
|
||||||
Vector3(-renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize)
|
Vector3(-renderSize.x,-renderSize.y+fsize,-renderSize.z+fsize)
|
||||||
);
|
);
|
||||||
// Right
|
// Right
|
||||||
addTriangle(Vector3(renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize),
|
addTriangle(Vector3(renderSize.x,renderSize.y-fsize,renderSize.z-fsize),
|
||||||
Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
|
Vector3(renderSize.x,-renderSize.y+fsize,renderSize.z-fsize),
|
||||||
Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize)
|
Vector3(renderSize.x,renderSize.y-fsize,-renderSize.z+fsize)
|
||||||
);
|
|
||||||
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+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
|
/*// Bevel Top Front
|
||||||
makeFace(0,36,48);
|
makeFace(0,36,48);
|
||||||
makeFace(48,18,0);
|
makeFace(48,18,0);
|
||||||
// Bevel Left Front Corner
|
// Bevel Left Front Corner
|
||||||
@@ -770,19 +842,77 @@ void PartInstance::render(RenderDevice* rd) {
|
|||||||
makeFace(144,102,84);
|
makeFace(144,102,84);
|
||||||
makeFace(84,174,144);
|
makeFace(84,174,144);
|
||||||
// Back Left Bottom Corner
|
// Back Left Bottom Corner
|
||||||
makeFace(174,84,132);
|
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));
|
addPlus(Vector3(-renderSize.x-0.01,0,0));
|
||||||
addPlus2(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());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
for (unsigned short i=0;i<_vertices.size()/6;i++) {
|
|
||||||
_indices.push_back(i);
|
|
||||||
}
|
|
||||||
changed=false;
|
changed=false;
|
||||||
|
|
||||||
glNewList(glList, GL_COMPILE);
|
glNewList(glList, GL_COMPILE);
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "PVInstance.h"
|
#include "PVInstance.h"
|
||||||
#include "Enum.h"
|
#include "Enum.h"
|
||||||
|
#define _USE_MATH_DEFINES
|
||||||
|
#include <cmath>
|
||||||
|
|
||||||
#define NEW_BOX_RENDER
|
#define NEW_BOX_RENDER
|
||||||
|
|
||||||
class PartInstance : public PVInstance
|
class PartInstance : public PVInstance
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
PartInstance(void);
|
PartInstance(void);
|
||||||
PartInstance(const PartInstance &oinst);
|
PartInstance(const PartInstance &oinst);
|
||||||
Instance* clone() const { return new PartInstance(*this); }
|
Instance* clone() const { return new PartInstance(*this); }
|
||||||
@@ -44,12 +47,15 @@ public:
|
|||||||
void addNormals(Vector3 normal);
|
void addNormals(Vector3 normal);
|
||||||
void addSingularNormal(Vector3 normal);
|
void addSingularNormal(Vector3 normal);
|
||||||
void addTriangle(Vector3 vertexPos,Vector3 vertexPos2, Vector3 vertexPos3);
|
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 addSmoothTriangle(Vector3 vertexPos,Vector3 vertexPos2, Vector3 vertexPos3);
|
||||||
void makeSmoothFace(int vertex1, int vertex2, int vertex3);
|
void makeSmoothFace(int vertex1, int vertex2, int vertex3);
|
||||||
void addPlus(Vector3 v1);
|
void addPlus(Vector3 v1);
|
||||||
void addPlus2(Vector3 v1);
|
void addPlus2(Vector3 v1);
|
||||||
void debugPrintVertexIDs(RenderDevice* rd, GFontRef font, Matrix3 camRot);
|
void debugPrintVertexIDs(RenderDevice* rd, GFontRef font, Matrix3 camRot);
|
||||||
void makeFace(int vertex1, int vertex2, int vertex3);
|
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);
|
bool isUniqueVertex(Vector3 pos);
|
||||||
#endif
|
#endif
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -12,12 +12,3 @@ WorkspaceInstance::WorkspaceInstance(void)
|
|||||||
WorkspaceInstance::~WorkspaceInstance(void)
|
WorkspaceInstance::~WorkspaceInstance(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorkspaceInstance::removeFromPVector(PVInstance * instance)
|
|
||||||
{
|
|
||||||
__pvVector.erase(std::remove(__pvVector.begin(), __pvVector.end(), instance), __pvVector.end());
|
|
||||||
}
|
|
||||||
void WorkspaceInstance::addToPVector(PVInstance * instance)
|
|
||||||
{
|
|
||||||
__pvVector.push_back(instance);
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "GroupInstance.h"
|
#include "GroupInstance.h"
|
||||||
#include <set>
|
|
||||||
|
|
||||||
class WorkspaceInstance :
|
class WorkspaceInstance :
|
||||||
public GroupInstance
|
public GroupInstance
|
||||||
@@ -8,8 +7,4 @@ class WorkspaceInstance :
|
|||||||
public:
|
public:
|
||||||
WorkspaceInstance(void);
|
WorkspaceInstance(void);
|
||||||
~WorkspaceInstance(void);
|
~WorkspaceInstance(void);
|
||||||
void removeFromPVector(PVInstance *);
|
|
||||||
void addToPVector(PVInstance *);
|
|
||||||
std::vector<PVInstance*> __pvVector;
|
|
||||||
std::vector<PVInstance*>* getPVVector();
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user