//--------------------------------------------------------------------------- #include #pragma hdrstop #include #include "Define.h" #include "N3DMapping.h" #include "N3DPattern.h" #include "MainImage.h" #include "Data3D2.h" #include "MainMenu.h" #include "Main.h" #include "NewCanvas.h" #include "PenManager.h" #include "Palette.h" #include "FullView.h" #include "ProtectCard.h" #include "Undo.h" #include "LogData.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "TNumEdit" #pragma link "RzButton" #pragma link "RzPanel" #pragma link "RzRadChk" #pragma link "RzRadGrp" #pragma link "RzShellDialogs" #pragma link "RzTabs" #pragma link "RzEdit" #pragma resource "*.dfm" //--------------------------------------------------------------------------- #define IDS_NEW3DMAPPING StringTable[0] #define IDS_NEW StringTable[1] #define IDS_FILE StringTable[2] #define IDS_SIMULATION StringTable[3] #define IDS_CLOTH StringTable[4] #define IDS_NAME StringTable[5] #define IDS_DIS_VIEW StringTable[6] #define IDS_GRID_VIEW StringTable[7] #define IDS_NUMBER StringTable[8] #define IDS_CHANGE StringTable[9] #define IDS_TOOL StringTable[10] //#define IDS_SIMULATION StringTable[11] == StringTable[3] #define IDS_PATTERN StringTable[12] #define IDS_GRID_CTRL StringTable[13] #define IDS_PEN_SETTING StringTable[14] #define IDS_GRID_COLOR StringTable[15] #define IDS_NORMAL StringTable[16] #define IDS_FILL StringTable[17] #define IDS_GRID_INIT StringTable[18] #define IDS_GRID_MOVE StringTable[19] #define IDS_GRID_BRIGHT StringTable[20] #define IDS_ADD_GRID StringTable[21] #define IDS_DELETE_GRID StringTable[22] #define IDS_BRT_RESET StringTable[23] #define IDS_UNDO_GRID StringTable[24] #define IDS_REDO_GRID StringTable[25] #define IDS_SIMULATION_SET1 StringTable[26] #define IDS_SIMULATION_SET2 StringTable[27] #define IDS_SIM_VIEW StringTable[28] #define IDS_DENSITY StringTable[29] #define IDS_ONLY_BRIGHT StringTable[30] #define IDS_MAPPING_COLOR StringTable[31] #define IDS_X_RATIO StringTable[32] #define IDS_Y_RATIO StringTable[33] #define IDS_IMAGE StringTable[34] #define IDS_LOAD_PATTERN StringTable[35] #define IDS_FIT_POSITION StringTable[36] #define IDS_NORMAL_GRID_COLOR StringTable[37] #define IDS_FOCUS_GRID_COLOR StringTable[38] #define IDS_BASE StringTable[39] #define IDS_DISPLAY StringTable[40] #define IDS_ADD_NEW_3D_DATA StringTable[41] #define IDS_DELETE_3D_DATA StringTable[42] #define IDS_SAVE_TO_3D_DATA_FILE StringTable[43] #define IDS_LOAD_3D_DATA_FILE StringTable[44] #define IDS_LAYER StringTable[45] #define IDS_GRID StringTable[46] #define IDS_GRID_MOVE_COPY StringTable[47] #define IDS_GRID_TRANSFORM StringTable[48] #define IDS_MOVE StringTable[49] #define IDS_COPY StringTable[50] #define IDS_ROTATE StringTable[51] #define IDS_SELECT StringTable[52] #define IDS_GRID_NORMAL StringTable[53] #define IDS_DESELECT StringTable[54] #define IDS_LOGO StringTable[55] #define IDS_INVERT StringTable[56] //--------------------------------------------------------------------------- #define HEIGHT1 180 #define HEIGHT2 183 #define HEIGHT3 400 #define WIDTH1 300 #define WIDTH2 158 //--------------------------------------------------------------------------- TN3DMappingForm *N3DMappingForm; //--------------------------------------------------------------------------- __fastcall TN3DMappingForm::TN3DMappingForm(TComponent* Owner) : TForm(Owner) { gridfixpointx=0; gridfixpointy=0;// ÀÏ´ÜÀº ±×¸®µåÀÇ (0,0)¿¡ ¸ÅÇÎµÇ°Ô ÇÑ´Ù fixpointx = -1; fixpointy = -1; //============================================================================== StringTable.Create(DirectoryItem, Language, "New3D"); SetSmallFont(Font); Caption = IDS_NEW3DMAPPING; sbNew->Caption = IDS_NEW; sbFile->Caption = IDS_FILE; sbSimulation->Caption = IDS_SIMULATION; gb3CP->Caption = IDS_CLOTH; lbName->Caption = IDS_NAME; //cbViewDisplay->Caption = IDS_DIS_VIEW; //cbVisible->Caption = IDS_SIM_VIEW; cbViewGrid->Caption = IDS_GRID_VIEW; lbNumber->Caption = IDS_NUMBER; lbOrderView->Caption = IDS_CHANGE; TabSheetMain->Caption = IDS_TOOL; TabSheetGridSimulation->Caption = IDS_LAYER; TabSheetPattern->Caption = IDS_PATTERN; gbGridControl->Caption = IDS_GRID_CTRL; rgGrid->Caption = IDS_PEN_SETTING; gbGridColor->Caption = IDS_GRID_COLOR; rgGrid->Items->Clear(); rgGrid->Items->Add(IDS_NORMAL); rgGrid->Items->Add(IDS_FILL); rgGrid->Items->Add(IDS_GRID_INIT); rgGrid->Items->Add(IDS_GRID_MOVE); rgGrid->Items->Add(IDS_GRID_BRIGHT); rgGrid->ItemIndex = 0; sbAddGrid->Caption = IDS_ADD_GRID; sbDeleteGrid->Caption = IDS_DELETE_GRID; sbHeightReset->Caption = IDS_BRT_RESET; sbIUndo->Caption = IDS_UNDO_GRID; sbRedo->Caption = IDS_REDO_GRID; gbSimSet1->Caption = IDS_SIMULATION_SET1; gbSimSet2->Caption = IDS_SIMULATION_SET2; lbDensity->Caption = IDS_DENSITY; //cbSolid->Caption = IDS_ONLY_BRIGHT; lbMappingColor->Caption = IDS_MAPPING_COLOR; //lbXRatio->Caption = IDS_X_RATIO; //lbYRatio->Caption = IDS_Y_RATIO; gbImageView->Caption = IDS_IMAGE; sbFix->Caption = IDS_FIT_POSITION; stGridColor->Caption = IDS_NORMAL_GRID_COLOR; stGridFocusColor->Caption = IDS_FOCUS_GRID_COLOR; cbSimulation->Caption = IDS_SIMULATION; TabSheetGrid->Caption = IDS_GRID; gbMoveCopy->Caption = IDS_GRID_MOVE_COPY; gbTransform->Caption = IDS_GRID_TRANSFORM; sbGridMove->Caption = IDS_MOVE; sbGridCopy->Caption = IDS_COPY; sbGridDeselect->Caption = IDS_DESELECT; sbRotate->Caption = IDS_ROTATE; sbGridSelect->Caption = IDS_SELECT; sbGridNormal->Caption = IDS_GRID_NORMAL; cbTransparent->Caption = IDS_LOGO; sbGridInvert->Caption = IDS_INVERT; //============================================================================== } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbFileClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainForm->T3D_Item) { END_LOG; return; } if(MainImageForm) { MainImageForm->ResetDraw(); MainImageForm->iMainImage->Repaint(); } MainForm->Readdown = true; //TFileManagerForm *Form = new TFileManagerForm(this); FileManagerForm = new TFileManagerForm(this); FileManagerForm->Extension = 9;//8; // N3D File //Form->FormShow¿¡¼­ FExtensionÀ¸·Î ¾²ÀÓ FileManagerForm->OnRead = MainForm->FMOnRead; FileManagerForm->OnSave = MainForm->FMOnSave; FileManagerForm->OnFileName = MainForm->FMOnFileName; FileManagerForm->CompressCheckBox->Checked = (MainForm->CompressMethod == cmNone) ? false: true; FileManagerForm->FilterComboBox->Filter = "Texpro Textile 256 Colors File (*.tex)|*.tex|" "Texpro Textile Full Colors File (*.tfc)|*.tfc|" #ifndef N_3D "Texpro Textile 3D File (*.t3d)|*.t3d|" "Texpro Textile New 3D File (*.n3d)|*.n3d|" #endif "Texpro Weave File (*.wea)|*.wea|" "Texpro Weave File - V7.01 (*.wav)|*.wav|" "Texpro Knit File (*.knt)|*.knt|" "Microsoft Windows Bitmap (*.bmp)|*.bmp|" "JPEG (*.jpg)|*.jpg|" "Macintosh PICT (*.pct)|*.pct|" "PC Paintbrush File Format (*.pcx)|*.pcx|" "PNG (*.png)|*.png|PSD (*.psd)|*.psd|" "SUN Raster (*.ras)|*.ras|" "Targa Image File (*.tga)|*.tga|" "TIFF uncomp (*.tif)|*.tif|" "Encapsulated PostScript File (*.eps)|*.eps|"; "Texpro Pile File (*.pil)|*.pil|" "ALL Files (*.*)|*.*"; // "GIF (*.gif)|*.gif"; // by mecbong FileManagerForm->FilterComboBox->Enabled = true; MainForm->ReadN3D=true; FileManagerForm->ShowModal(); MainForm->ReadN3D=false; UpdateAll(); TreeView->FullExpand(); delete FileManagerForm; END_LOG; } //--------------------------------------------------------------------------- bool __fastcall TN3DMappingForm::N3DMappingFormMouseMove(TShiftState Shift, int X, int Y){ if(!MainImageForm) { return false; } if(MainImageForm->new3d){ MainImageForm->new3d->MouseMove(Shift, X, Y); if(!isDrawState()){ //MainImageForm->iMainImage->Update(); //MainImageForm->iMainImage->Repaint(); MainImageForm->iMainImage->Invalidate(); return false; } } return true; } //--------------------------------------------------------------------------- bool __fastcall TN3DMappingForm::N3DMappingFormMouseDown(TMouseButton Button, TShiftState Shift, int X, int Y){ if(!MainImageForm) return false; if(MainImageForm->new3d){ TN3DMemberType mt; LPVOID ptr=NULL; if(TreeView->Selected==NULL) return true; int i = TreeView->Selected->AbsoluteIndex; MainImageForm->new3d->SeekType(i, mt, ptr); if(Shift.Contains(ssRight)){ MainImageForm->new3d->ChangePen(NO_MOVE, 0); rgGrid->ItemIndex = 0; } else { MainImageForm->Modify=true; if(!isDrawState()){ //undo->reset(); undo->do_((T3CP *)ptr); UpdateGB(); } if(!Shift.Contains(ssShift)) MainImageForm->new3d->MouseDown(Button, Shift, X, Y); } if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ if(((T3CP *)ptr)->GridPenState==MULTI_MOVE){ rgGrid->ItemIndex=3; } } if(!isDrawState()) return false; } return true; } //--------------------------------------------------------------------------- bool __fastcall TN3DMappingForm::N3DMappingFormMouseUp(TMouseButton Button, TShiftState Shift, int X, int Y){ if(!MainImageForm) return false; if(MainImageForm->new3d){ MainImageForm->new3d->MouseUp(Button, Shift, X, Y); if(!isDrawState()) return false; } return true; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::UpdateGB(){ BEGIN_LOG("::"); //cbViewBase->Enabled=false; //cbViewDisplay->Enabled=false; //cbVisible->Enabled=false; //gb3CP->Enabled=false; if(MainImageForm){ if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ cbVisible->Enabled=true; gb3CP->Enabled = true; TData3D2 *data3d2 = (TData3D2 *)((T3CP *)ptr)->ListOfData3D2->Items[((T3CP *)ptr)->IndexOfData3D2]; edDensity->Value = ((T3CP *)ptr)->Density; cbSimulation->Checked = !((T3CP *)ptr)->Skip; edName->Text = ((T3CP *)ptr)->Name; lbOrder->Caption = ((T3CP *)ptr)->IndexOfData3D2; udView->Enabled = ((T3CP *)ptr)->ListOfData3D2->Count-1; sbDeleteGrid->Enabled = ((T3CP *)ptr)->ListOfData3D2->Count-1; spMappingColor->Brush->Color = data3d2->mappingcolor; stGridColor->Color = new3d->GridColor; stGridFocusColor->Color = new3d->GridFocusColor; if(((T3CP *)ptr)->ListOfPatternGroup->Count){ PatternGroup *pg = (PatternGroup *)((T3CP *)ptr)->ListOfPatternGroup->Items[0]; cbTransparent->Checked = pg->transparentPattern; } if(PageControl->ActivePage==TabSheetPattern){ HDC dcDst = NULL; PatternGroup *pg = NULL; RECT r=Rect(0,0,PreviewImage->Width,PreviewImage->Height); PreviewImage->Canvas->Brush->Color = clBtnFace; PreviewImage->Canvas->FillRect(r); if(((T3CP *)ptr)->ListOfPatternGroup->Count>data3d2->IndexOfPatternGroup&&data3d2->IndexOfPatternGroup>=0){ pg = (PatternGroup *)(((T3CP *)ptr)->ListOfPatternGroup->Items[data3d2->IndexOfPatternGroup]); if(pg->Pattern){ if ((dcDst = pg->Pattern->CreateDC())==NULL) { END_LOG; return; } SetStretchBltMode(PreviewImage->Canvas->Handle, COLORONCOLOR); StretchBlt(PreviewImage->Canvas->Handle, 0, 0, PreviewImage->Width,PreviewImage->Height, dcDst, 0, 0, pg->Pattern->Width, pg->Pattern->Height, SRCCOPY); pg->Pattern->DeleteDC(dcDst); dcDst = NULL; } } PreviewImage->Repaint(); N3DPatternForm->Visible=true; } else { N3DPatternForm->Visible=false; } ClientHeight=HEIGHT3; if(undo->canundo((T3CP *)ptr)){ sbIUndo->Enabled = true; } else { sbIUndo->Enabled = false; } if(undo->canredo((T3CP *)ptr)){ sbRedo->Enabled = true; } else { sbRedo->Enabled = false; } } else { N3DPatternForm->Visible=false; gb3CP->Enabled = false; edName->Text = ""; ClientHeight=HEIGHT1; } cbViewBase->Enabled=true; cbViewDisplay->Enabled=true; } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::UpdateAll(){ BEGIN_LOG("::"); // ÀÏ´Ü false cbViewBase->Enabled=false; cbViewDisplay->Enabled=false; cbVisible->Enabled=false; gb3CP->Enabled=false; //UpdateGB¿¡¼­ Ç®¾îÁÙ°Ç Ç®¾îÁØ´Ù if(MainImageForm){ if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; UpdateTreeView(); UpdateGB(); } else { ClientHeight=HEIGHT1; TreeView->Items->Clear(); } } else { ClientHeight=HEIGHT1; TreeView->Items->Clear(); } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::FormCreate(TObject *Sender) { undo = new undodata(DirectoryItem); ClientWidth=WIDTH1; ClientHeight=HEIGHT1; Top = 2; Left = MainForm->ClientWidth-Width-PenManagerForm->Width-5; //gb3CP->Top=TreeView->Top; //gb3CP->Left=TreeView->Left+TreeView->Width+2;//WIDTH2; PageControl->Top=HEIGHT2; PageControl->Left=2; PageControl->ActivePage=TabSheetMain; TreeView->Font->Size = 10; TreeView->Items->Clear(); } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::UpdateTreeView(){ BEGIN_LOG("::"); TTreeNode *Node; TreeView->Items->Clear(); TreeView->Items->Add(NULL, "[ "+IDS_BASE+" ]"); Node = TreeView->Items->Item[0]; TreeView->Items->Add(Node, "[ "+IDS_DISPLAY+" ]"); TreeView->Items->Add(Node, "[ "+IDS_CLOTH+" ]"); if(MainImageForm->new3d){ TN3D *n3d = MainImageForm->new3d; for(int i=0;iListOf3CP->Count;i++){ T3CP *t3cp = (T3CP *)n3d->ListOf3CP->Items[i]; Node = TreeView->Items->Item[2]; TreeView->Items->AddChild(Node,t3cp->Name); } TreeView->Selected = TreeView->Items->Item[MainImageForm->new3d->AMI]; } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::pmAddClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ T3CP *t3cp = new T3CP; t3cp->Create(MainImageForm->new3d->Width, MainImageForm->new3d->Height); MainImageForm->new3d->ListOf3CP->Add(t3cp); UpdateAll(); TreeView->FullExpand(); } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::pmLoadT3CPClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ if(T3CPOpenDialog->Execute()){ HANDLE fh = INVALID_HANDLE_VALUE; TEXPIAFILEHEADER tpfh; DWORD dwRead; T3CP *t3cp = new T3CP; //if ((fh = CreateFile(T3CPOpenDialog->FileName.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, // FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) return; if ((fh = CreateFile(T3CPOpenDialog->FileName.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) { END_LOG; return; } ReadFile(fh, &tpfh, sizeof(TEXPIAFILEHEADER), &dwRead, NULL); t3cp->Create(tpfh.CanvasInfor.Width, tpfh.CanvasInfor.Height); t3cp->ReadFromFile(fh, tpfh); CloseHandle(fh); MainImageForm->new3d->ListOf3CP->Add(t3cp); MainImageForm->new3d->Resize(tpfh.CanvasInfor.Width, tpfh.CanvasInfor.Height, false); UpdateAll(); TreeView->FullExpand(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::pmDeleteClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } TTreeNode *Node = TreeView->GetNodeAt(PopupCursorPos.x,PopupCursorPos.y); if(Node==NULL) { END_LOG; return; } int i = Node->AbsoluteIndex; if(MainImageForm->new3d){ TN3DMemberType mt; LPVOID ptr=NULL; if(MainImageForm->new3d->SeekType(i, mt, ptr)){ switch(mt){ case TYPE_T3CP: { if(!ptr) { END_LOG; return; } if(MainImageForm->new3d->ListOf3CP->Count>1){ MainImageForm->new3d->AMI = 1; MainImageForm->new3d->ListOf3CP->Remove(ptr); delete (T3CP *)ptr; } UpdateAll(); TreeView->FullExpand(); break; } default: { break; } } } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::pmSaveT3CPClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } TTreeNode *Node = TreeView->GetNodeAt(PopupCursorPos.x,PopupCursorPos.y); if(Node==NULL) { END_LOG; return; } int i = Node->AbsoluteIndex; int w = MainImageForm->iMainImage->uBitmap->Width; int h = MainImageForm->iMainImage->uBitmap->Height; if(MainImageForm->new3d){ TN3DMemberType mt; LPVOID ptr=NULL; if(MainImageForm->new3d->SeekType(i, mt, ptr)){ switch(mt){ case TYPE_T3CP: { if(!ptr) { END_LOG; return; } MainImageForm->iMainImage->Index = 2; // Undo->SetLayerOrder(); //blocked by linuxjun ((T3CP *)ptr)->Activate(); // ((T3CP *)ptr)->ColorMask->Copy(MainImageForm->iMainImage->uBitmap, SRCCOPY); MainImageForm->iMainImage->uBitmap->CopyToTexpia(((T3CP *)ptr)->ColorMask, 0, 0, w, h, 0, 0, SRCCOPY); ((T3CP *)ptr)->Mask->Copy(MainImageForm->iMainImage->LayerMask, SRCCOPY); if(T3CPSaveDialog->Execute()){ HANDLE fh = INVALID_HANDLE_VALUE; TEXPIAFILEHEADER tpfh; DWORD dwWrite; T3CP *t3cp = (T3CP *)ptr; //tpfh.Version = TexVersion('P', 'T', 240); tpfh.CanvasInfor = MainImageForm->CanvasInfor; //tpfh.BitsPerPixel = iMainImage->uBitmap->BitsPerPixel; tpfh.Compress = cmZLib; //if ((fh = CreateFile(T3CPSaveDialog->FileName.c_str(), GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, // FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) return; if ((fh = CreateFile(T3CPSaveDialog->FileName.c_str(), GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) { END_LOG; return; } WriteFile(fh, &tpfh, sizeof(TEXPIAFILEHEADER), &dwWrite, NULL); t3cp->SaveToFile(fh, tpfh); CloseHandle(fh); } break; } default: { break; } } } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::TreeViewClick(TObject *Sender) { BEGIN_LOG("::"); if(TreeView->Selected==NULL) { END_LOG; return; } if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ int i = TreeView->Selected->AbsoluteIndex; TN3DMemberType mt; LPVOID ptr=NULL; MainImageForm->new3d->SeekType(i, mt, ptr); switch(mt){ case TYPE_T3CP: { MainImageForm->iMainImage->StartLayerVisibleChange(0, cbViewBase->Checked); MainImageForm->iMainImage->StartLayerVisibleChange(1, cbViewDisplay->Checked); MainImageForm->iMainImage->EndOfLayerVisibleChange(2, cbVisible->Checked); // Undo->SetLayerOrder(); //blocked by linuxjun //cbViewDisplay->Checked=false; if(cbViewGrid->Checked){ MainImageForm->iMainImage->OnPaintZoom = MainImageForm->new3d->PaintN3DGrid; } else { MainImageForm->iMainImage->OnPaintZoom = NULL; } if(rgGrid->ItemIndex==1) rgGrid->ItemIndex=0; // »öä¿ì±â »óÅ·Π¹Ù²Ù¸é ¾ÈµÇ¿ä if(PageControl->ActivePage==TabSheetPattern){ N3DPatternForm->Visible = true; } else { N3DPatternForm->Visible = false; } ClientHeight=HEIGHT3; break; } case TYPE_BAREBODY: { cbViewBase->Checked=true; cbViewDisplay->Checked=false; N3DPatternForm->Visible = false; ClientHeight=HEIGHT1; break; } case TYPE_DISPLAY: { cbViewBase->Checked=true; cbViewDisplay->Checked=true; N3DPatternForm->Visible = false; ClientHeight=HEIGHT1; break; } case TYPE_T3CP_LIST: default: { N3DPatternForm->Visible = false; ClientHeight=HEIGHT1; break; } } MainImageForm->new3d->AMI=i; // ·¹À̾î visibleÀ» º¯°æÇÑ ´ÙÀ½ ·¹À̾ ±³È¯ÇÑ´Ù// sbFix->Down = false; SetGridPen(); if(N3DPatternForm->Visible)N3DPatternForm->UpdateAll(); UpdateGB(); if(FullViewForm->Visible==true)FullViewForm->View(); MainImageForm->iMainImage->Repaint(); } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbNewClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainForm->T3D_Item) { END_LOG; return; } TCursor cur; TMainImageForm *Child = NULL; TNewCanvasForm *Form=NULL; TPException ec = EC_NONE; PenManagerForm->spread_sw[4] = 0; PenManagerForm->aspread = false; PenManagerForm->acolor = 0; MainMenuForm->ExitForm(1); #ifndef LOCK_CRYPKEY #ifdef LOCK_IFC if (ProtectCard->CheckPassword()) { #else if (ProtectCard->isHacked(hsTexStylist, TexStylistVersion)) { EXCEPTION_MESSAGE_OK(EC_HASPKEYNOTFOUND); Application->Terminate(); } #endif #endif Form = new TNewCanvasForm(NULL); if (Form->ShowModal()==mrOk) { cur = Screen->Cursor; Screen->Cursor = crHourGlass; if (MainImageForm) { if (MainImageForm->AutoRepeat && (MainImageForm->LayerCNT == MainImageForm->ARLayerCnt)) MainImageForm->ARViewExitForm(); } if ((Child = new TMainImageForm(Application))==NULL) { ec = EC_FORM_NOT_CREATE; SAVE_EXCEPTION(ec); goto fail; } MainImageForm->AutoRepUpdateMenu(true); //lhskys »õ·Î¿î MainMenu »ý¼º #ifdef NOTN3D #else if ((ec = Child->InitForm(Form->CanvasInfor, 24, gffN3D))!=EC_NONE) goto fail; #endif UpdateAll(); Screen->Cursor = cur; } delete Form; #ifndef LOCK_CRYPKEY #ifdef LOCK_IFC } else { ec = EC_INTERFACE_NONE; SAVE_EXCEPTION(ec); EXCEPTION_MESSAGE_OK(ec); Application->Terminate(); } #endif #endif END_LOG; return; fail: if (Child) delete Child; Screen->Cursor = cur; EXCEPTION_MESSAGE_OK(ec); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::edNameClick(TObject *Sender) { BEGIN_LOG("::"); edName->SetFocus(); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::edNameKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ ((T3CP *)ptr)->Name = edName->Text; UpdateAll(); /* if (Key == VK_RETURN) { ((T3CP *)ptr)->Name = edName->Text; UpdateAll(); }*/ } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbFixClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ if(sbFix->Down){ SetGridPen(); TData3D2 *data3d2 = (TData3D2 *)((T3CP *)ptr)->ListOfData3D2->Items[((T3CP *)ptr)->IndexOfData3D2]; PatternGroup *pg = NULL; if(((T3CP *)ptr)->ListOfPatternGroup->Count>data3d2->IndexOfPatternGroup&&data3d2->IndexOfPatternGroup>=0){ pg = (PatternGroup *)(((T3CP *)ptr)->ListOfPatternGroup->Items[data3d2->IndexOfPatternGroup]); if(pg->Pattern){ HDC dcDst = pg->Pattern->CreateDC(); SetStretchBltMode(PreviewImage->Canvas->Handle, COLORONCOLOR); StretchBlt(PreviewImage->Canvas->Handle, 0, 0, PreviewImage->Width,PreviewImage->Height, dcDst, 0, 0, pg->Pattern->Width, pg->Pattern->Height, SRCCOPY); pg->Pattern->DeleteDC(dcDst); dcDst = NULL; PreviewImage->Update(); int w = pg->Pattern->Width; int h = pg->Pattern->Height; int iw = PreviewImage->Width; int ih = PreviewImage->Height; fixpointx = data3d2->FixPointOfPattern.x*iw/w; fixpointy = data3d2->FixPointOfPattern.y*ih/h; PreviewImage->Canvas->Pen->Mode = pmNot; PreviewImage->Canvas->MoveTo(fixpointx-5,fixpointy); PreviewImage->Canvas->LineTo(fixpointx+5,fixpointy); PreviewImage->Canvas->MoveTo(fixpointx,fixpointy-5); PreviewImage->Canvas->LineTo(fixpointx,fixpointy+5); } } } else { SetGridPen(); UpdateGB(); } } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::edDensityClick(TObject *Sender) { BEGIN_LOG("::"); edDensity->SetFocus(); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::edDensityKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ int v = edDensity->Value; if(v<0) v = 0; if(v>100) v = 100; edDensity->Value = v; ((T3CP *)ptr)->Density = v; UpdateAll(); /* if (Key == VK_RETURN) { int v = edDensity->Value; if(v<0) v = 0; if(v>100) v = 100; edDensity->Value = v; ((T3CP *)ptr)->Density = v; UpdateAll(); }*/ } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbSimulationClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainForm->T3D_Item) { END_LOG; return; } if(MainImageForm){ if(MainImageForm->new3d){ TCursor cur; cur = Screen->Cursor; Screen->Cursor = crHourGlass; MainImageForm->new3d->Rendering(); if(FullViewForm->Visible==true)FullViewForm->View(); //MainImageForm->new3d->AMI = 1; // Rendering¿¡¼­ AMI=1ÀÌ µÈ´Ù MainImageForm->iMainImage->Repaint(); UpdateAll(); N3DPatternForm->Visible=false; TreeView->FullExpand(); Screen->Cursor = cur; #ifdef TRIAL MainImageForm->WaterMarkPaint = true; #endif } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::TreeViewDragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt, mt2; LPVOID ptr=NULL, ptr2=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(TreeView->DropTarget==NULL) { END_LOG; return; } new3d->SeekType(TreeView->DropTarget->AbsoluteIndex, mt2, ptr2); if(mt==TYPE_T3CP&&mt2==mt&&ptr!=ptr2){ Accept = true; } else { Accept = false; } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::TreeViewDragDrop(TObject *Sender, TObject *Source, int X, int Y) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ if(TreeView->DropTarget==NULL) { END_LOG; return; } TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt, mt2; LPVOID ptr=NULL, ptr2=NULL; new3d->SeekType(new3d->AMI, mt, ptr); new3d->SeekType(TreeView->DropTarget->AbsoluteIndex, mt2, ptr2); if(mt==TYPE_T3CP&&mt2==mt&&ptr!=ptr2){ new3d->FAMI = TreeView->DropTarget->AbsoluteIndex; int current = new3d->ListOf3CP->IndexOf(ptr); int target = new3d->ListOf3CP->IndexOf(ptr2); //((T3CP *)ptr)->Activate(); //((T3CP *)ptr2)->Activate(); TreeView->Selected = TreeView->DropTarget; new3d->ListOf3CP->Move(current,target); UpdateTreeView(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::SetGridPen(){ BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3DMemberType mt; LPVOID ptr=NULL; MainImageForm->new3d->SeekType(MainImageForm->new3d->AMI, mt, ptr); if(sbFix->Down){ MainImageForm->new3d->ChangePen(FIX_POINT, 0); cbViewGrid->Checked=true; } else if(PageControl->ActivePage==TabSheetGrid){ if(sbGridSelect->Down){ MainImageForm->new3d->ChangePen(SELECT_GRID, 0); } else if(sbGridDeselect->Down){ MainImageForm->new3d->ChangePen(SELECT_GRID, 1); } else if(sbGridMove->Down){ MainImageForm->new3d->ChangePen(MOVE_GRID, 1); } else if(sbRotate->Down){ MainImageForm->new3d->ChangePen(ROTATE_GRID, 1); } else { //MainImageForm->new3d->ChangePen(MULTI_MOVE, 0); } } else { switch(mt){ case TYPE_T3CP: { if(!((T3CP *)ptr)->Activated) break; switch(rgGrid->ItemIndex){ case 0: { MainImageForm->new3d->ChangePen(NO_MOVE, 0); if(MainMenuForm->Item!=T_3D) { MainMenuForm->ExitForm(); //MainMenuForm->Init3DForm(); } break; } case 1: { MainImageForm->new3d->ChangePen(NO_MOVE, 0); if(MainMenuForm->Item!=T_FILL) { MainMenuForm->ExitForm(); MainMenuForm->InitFillForm(); } TMouseButton Button; TShiftState Shift; spMappingColorMouseDown(NULL,Button,Shift,0,0); break; } case 2: { MainImageForm->new3d->ChangePen(INIT_PEN, 0); if(MainMenuForm->Item!=T_3D) { MainMenuForm->ExitForm(); //MainMenuForm->Init3DForm(); } break; } case 3: { MainImageForm->new3d->ChangePen(MULTI_MOVE, 0); if(MainMenuForm->Item!=T_3D) { MainMenuForm->ExitForm(); //MainMenuForm->Init3DForm(); } break; } case 4: { MainImageForm->new3d->ChangePen(BRIGHT_MOVE, 0); if(MainMenuForm->Item!=T_3D) { MainMenuForm->ExitForm(); //MainMenuForm->Init3DForm(); } break; } default: { MainImageForm->new3d->ChangePen(NO_MOVE, 0); if(MainMenuForm->Item!=T_3D) { MainMenuForm->ExitForm(); //MainMenuForm->Init3DForm(); } break; } } if(rgGrid->ItemIndex>1) cbViewGrid->Checked=true; break; } case TYPE_BAREBODY: case TYPE_DISPLAY: { //rgGrid->ItemIndex=0; MainImageForm->new3d->ChangePen(NO_MOVE, 0); MainImageForm->iMainImage->OnPaintZoom = NULL; break; } default: { //rgGrid->ItemIndex=0; MainImageForm->new3d->ChangePen(NO_MOVE, 0); MainImageForm->iMainImage->OnPaintZoom = NULL; break; } } } } MainImageForm->iMainImage->Repaint(); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::rgGridClick(TObject *Sender) { BEGIN_LOG("::"); SetGridPen(); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::udViewChangingEx(TObject *Sender, bool &AllowChange, short NewValue, TUpDownDirection Direction) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; if(Direction==updUp){ t3cp->IndexOfData3D2++; } else { t3cp->IndexOfData3D2--; } if(t3cp->IndexOfData3D2<0) t3cp->IndexOfData3D2 = 0; if(t3cp->IndexOfData3D2>=t3cp->ListOfData3D2->Count) t3cp->IndexOfData3D2 = t3cp->ListOfData3D2->Count-1; UpdateGB(); N3DPatternForm->UpdateAll(); MainImageForm->iMainImage->Repaint(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbDeleteGridClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; if(t3cp->ListOfData3D2->Count<=1) { END_LOG; return; } //undo->reset(); undo->do_(t3cp); TData3D2 *data3d2 = (TData3D2 *)t3cp->ListOfData3D2->Items[t3cp->IndexOfData3D2]; t3cp->IndexOfData3D2 = 0; t3cp->ListOfData3D2->Remove(data3d2); delete data3d2; UpdateGB(); MainImageForm->iMainImage->Repaint(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbAddGridClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; //undo->reset(); undo->do_(t3cp); t3cp->ListOfData3D2->Add(new TData3D2); t3cp->IndexOfData3D2 = t3cp->ListOfData3D2->Count-1; rgGrid->ItemIndex=2; SetGridPen(); UpdateGB(); MainImageForm->iMainImage->Repaint(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::cbGridClick(TObject *Sender) { BEGIN_LOG("::"); SetGridPen(); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::spMappingColorMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(!MainImageForm) { return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; if(t3cp->ListOfData3D2->Count<1) { return; } TData3D2 *data3d2 = (TData3D2 *)t3cp->ListOfData3D2->Items[t3cp->IndexOfData3D2]; data3d2->mappingcolor = PaletteForm->FGColor->Brush->Color; spMappingColor->Brush->Color = PaletteForm->FGColor->Brush->Color; } } } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbIUndoClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; undo->undo(t3cp); //rgGrid->ItemIndex=3; //SetGridPen(); UpdateGB(); MainImageForm->iMainImage->Repaint(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbRedoClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; undo->redo(t3cp); //rgGrid->ItemIndex=3; //SetGridPen(); UpdateGB(); MainImageForm->iMainImage->Repaint(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::FormDestroy(TObject *Sender) { delete undo; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::cbViewBaseClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); TPLayer *lay; lay = (TPLayer *) MainImageForm->iMainImage->LayerList->Items[0]; lay->Visible = cbViewBase->Checked; MainImageForm->iMainImage->LayerVisibleChange(0, cbViewBase->Checked); MainImageForm->iMainImage->Repaint(); } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::cbViewDisplayClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); TPLayer *lay; lay = (TPLayer *) MainImageForm->iMainImage->LayerList->Items[1]; lay->Visible = cbViewDisplay->Checked; MainImageForm->iMainImage->LayerVisibleChange(1, cbViewDisplay->Checked); MainImageForm->iMainImage->Repaint(); } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::cbVisibleClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); TPLayer *lay; lay = (TPLayer *) MainImageForm->iMainImage->LayerList->Items[2]; if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ lay->Visible = cbVisible->Checked; MainImageForm->iMainImage->LayerVisibleChange(2, cbVisible->Checked); } else { lay->Visible = false; MainImageForm->iMainImage->LayerVisibleChange(2, false); } MainImageForm->iMainImage->Repaint(); } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::TreeViewPopupPopup(TObject *Sender) { BEGIN_LOG("::"); if(MainImageForm->new3d){ TN3DMemberType mt; LPVOID ptr=NULL; PopupCursorPos = TreeView->ScreenToClient(Point(Mouse->CursorPos.x,Mouse->CursorPos.y)); TTreeNode *Node = TreeView->GetNodeAt(PopupCursorPos.x,PopupCursorPos.y); if(Node==NULL) { END_LOG; return; } int i = Node->AbsoluteIndex; if(MainImageForm->new3d->SeekType(i, mt, ptr)){ while(TreeViewPopup->Items->Count) { TMenuItem *NewItem = NULL; NewItem = (TMenuItem *) TreeViewPopup->Items->Items[0]; TreeViewPopup->Items->Remove(NewItem); delete NewItem; } switch(mt){ case TYPE_BAREBODY: case TYPE_DISPLAY: { break; } case TYPE_T3CP_LIST: { TMenuItem *NewItem = NULL; NewItem = new TMenuItem(NULL); if (NewItem) { NewItem->Caption = IDS_ADD_NEW_3D_DATA; TreeViewPopup->Items->Insert(0, NewItem); NewItem->OnClick = pmAddClick; } NewItem = new TMenuItem(NULL); if (NewItem) { NewItem->Caption = IDS_LOAD_3D_DATA_FILE; TreeViewPopup->Items->Insert(1, NewItem); NewItem->OnClick = pmLoadT3CPClick; } break; } case TYPE_T3CP: { TMenuItem *NewItem = NULL; NewItem = new TMenuItem(NULL); if (NewItem) { NewItem->Caption = IDS_ADD_NEW_3D_DATA; TreeViewPopup->Items->Insert(0, NewItem); NewItem->OnClick = pmAddClick; } NewItem = new TMenuItem(NULL); if (NewItem) { NewItem->Caption = IDS_DELETE_3D_DATA; TreeViewPopup->Items->Insert(1, NewItem); NewItem->OnClick = pmDeleteClick; } NewItem = new TMenuItem(NULL); if (NewItem) { NewItem->Caption = IDS_SAVE_TO_3D_DATA_FILE; TreeViewPopup->Items->Insert(2, NewItem); NewItem->OnClick = pmSaveT3CPClick; } NewItem = new TMenuItem(NULL); if (NewItem) { NewItem->Caption = IDS_LOAD_3D_DATA_FILE; TreeViewPopup->Items->Insert(3, NewItem); NewItem->OnClick = pmLoadT3CPClick; } break; } default: { break; } } } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { // } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::cbViewGridClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ if(cbViewGrid->Checked){ MainImageForm->iMainImage->OnPaintZoom = MainImageForm->new3d->PaintN3DGrid; } else { MainImageForm->iMainImage->OnPaintZoom = NULL; } MainImageForm->iMainImage->Repaint(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbHeightResetClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; if(t3cp->ListOfData3D2->Count<0) { END_LOG; return; } //undo->reset(); undo->do_(t3cp); TData3D2 *data3d2 = (TData3D2 *)t3cp->ListOfData3D2->Items[t3cp->IndexOfData3D2]; data3d2->ResetZ(); MainImageForm->iMainImage->Repaint(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::PageControlChange(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ sbFix->Down=false; sbGridSelect->Down=false; sbGridDeselect->Down=false; sbGridMove->Down=false; sbRotate->Down=false; SetGridPen(); UpdateGB(); if(PageControl->ActivePage==TabSheetPattern){ N3DPatternForm->Visible = true; } else { N3DPatternForm->Visible = false; } } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::PreviewImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(!MainImageForm) { return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ TData3D2 *data3d2 = (TData3D2 *)((T3CP *)ptr)->ListOfData3D2->Items[((T3CP *)ptr)->IndexOfData3D2]; PatternGroup *pg = NULL; if(((T3CP *)ptr)->ListOfPatternGroup->Count>data3d2->IndexOfPatternGroup&&data3d2->IndexOfPatternGroup>=0){ pg = (PatternGroup *)(((T3CP *)ptr)->ListOfPatternGroup->Items[data3d2->IndexOfPatternGroup]); if(pg->Pattern){ int w = pg->Pattern->Width; int h = pg->Pattern->Height; int iw = PreviewImage->Width; int ih = PreviewImage->Height; data3d2->FixPointOfPattern.x = w*X/iw; data3d2->FixPointOfPattern.y = h*Y/ih; PreviewImage->Update(); PreviewImage->Canvas->Pen->Mode = pmNot; PreviewImage->Canvas->MoveTo(fixpointx-5,fixpointy); PreviewImage->Canvas->LineTo(fixpointx+5,fixpointy); PreviewImage->Canvas->MoveTo(fixpointx,fixpointy-5); PreviewImage->Canvas->LineTo(fixpointx,fixpointy+5); PreviewImage->Canvas->MoveTo(X-5,Y); PreviewImage->Canvas->LineTo(X+5,Y); PreviewImage->Canvas->MoveTo(X,Y-5); PreviewImage->Canvas->LineTo(X,Y+5); fixpointx = X; fixpointy = Y; } } } } } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::SetFont() { BEGIN_LOG("::"); SetSmallFont(Font); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::FormClose(TObject *Sender, TCloseAction &Action) { MainForm->VN3DItem->Checked = false; N3DMappingForm->Visible = false; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::cbSimulationClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ ((T3CP *)ptr)->Skip = !cbSimulation->Checked; } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::stGridColorMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(MainImageForm){ if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; new3d->GridColor = PaletteForm->FGColor->Brush->Color; stGridColor->Color = PaletteForm->FGColor->Brush->Color; MainImageForm->iMainImage->Repaint(); } } } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::stGridFocusColorMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(MainImageForm){ if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; new3d->GridFocusColor = PaletteForm->FGColor->Brush->Color; stGridFocusColor->Color = PaletteForm->FGColor->Brush->Color; MainImageForm->iMainImage->Repaint(); } } } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::cbTransparentClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; for(int i=0;iListOfPatternGroup->Count;i++){ PatternGroup *pg = (PatternGroup *)t3cp->ListOfPatternGroup->Items[i]; pg->transparentPattern = cbTransparent->Checked; } } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbGridSelectClick(TObject *Sender) { BEGIN_LOG("::"); SetGridPen(); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbGridDeselectClick(TObject *Sender) { BEGIN_LOG("::"); SetGridPen(); END_LOG; } //--------------------------------------------------------------------------- bool __fastcall TN3DMappingForm::isDrawState() { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return true; } if(MainImageForm->new3d){ TN3DMemberType mt; LPVOID ptr=NULL; if(TreeView->Selected==NULL) { END_LOG; return true; } int i = TreeView->Selected->AbsoluteIndex; MainImageForm->new3d->SeekType(i, mt, ptr); T3CP *t3cp = (T3CP *)ptr; if(mt==TYPE_T3CP&&t3cp->Activated){ if( rgGrid->ItemIndex>1 || sbFix->Down || t3cp->GridPenState==SELECT_GRID || t3cp->GridPenState==MOVE_GRID || t3cp->GridPenState==ROTATE_GRID ) { END_LOG; return false; } } } END_LOG; return true; } //--------------------------------------------------------------------------- bool __fastcall TN3DMappingForm::isDrawGrid() { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return false; } if(MainImageForm->new3d){ TN3DMemberType mt; LPVOID ptr=NULL; if(TreeView->Selected==NULL) { END_LOG; return false; } int i = TreeView->Selected->AbsoluteIndex; MainImageForm->new3d->SeekType(i, mt, ptr); T3CP *t3cp = (T3CP *)ptr; if(mt==TYPE_T3CP&&t3cp->Activated){ if(MainImageForm->iMainImage->OnPaintZoom) { END_LOG; return true; } } } END_LOG; return false; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbGridMoveClick(TObject *Sender) { BEGIN_LOG("::"); SetGridPen(); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbRotateClick(TObject *Sender) { BEGIN_LOG("::"); SetGridPen(); END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbGridNormalClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; if(t3cp->ListOfData3D2->Count<0) { END_LOG; return; } //undo->reset(); undo->do_(t3cp); TData3D2 *data3d2 = (TData3D2 *)t3cp->ListOfData3D2->Items[t3cp->IndexOfData3D2]; data3d2->Normal(); MainImageForm->iMainImage->Repaint(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbGridCopyClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; //undo->reset(); undo->do_(t3cp); TData3D2 *newdata3d2 = new TData3D2; TData3D2 *curdata3d2 = (TData3D2 *)t3cp->ListOfData3D2->Items[t3cp->IndexOfData3D2]; newdata3d2->Copy(curdata3d2); t3cp->ListOfData3D2->Add(newdata3d2); t3cp->IndexOfData3D2 = t3cp->ListOfData3D2->Count-1; //rgGrid->ItemIndex=2; //SetGridPen(); UpdateGB(); MainImageForm->iMainImage->Repaint(); } } END_LOG; } //--------------------------------------------------------------------------- void __fastcall TN3DMappingForm::sbGridInvertClick(TObject *Sender) { BEGIN_LOG("::"); if(!MainImageForm) { END_LOG; return; } if(MainImageForm->new3d){ TN3D *new3d = MainImageForm->new3d; TN3DMemberType mt; LPVOID ptr=NULL; new3d->SeekType(new3d->AMI, mt, ptr); if(mt==TYPE_T3CP&&((T3CP *)ptr)->Activated){ T3CP *t3cp = (T3CP *)ptr; if(t3cp->ListOfData3D2->Count<0) { END_LOG; return; } //undo->reset(); undo->do_(t3cp); TData3D2 *data3d2 = (TData3D2 *)t3cp->ListOfData3D2->Items[t3cp->IndexOfData3D2]; data3d2->Invert(1); MainImageForm->iMainImage->Repaint(); } } END_LOG; } //---------------------------------------------------------------------------