Mercurial > pidgin.yaz
changeset 11219:0fabe3892b97
[gaim-migrate @ 13351]
temporary removal of crazychat sources
committer: Tailor Script <tailor@pidgin.im>
author | Charlie Stockman <chuckleberry> |
---|---|
date | Tue, 09 Aug 2005 07:22:41 +0000 |
parents | ed017b9c532d |
children | dc6fabb3b645 |
files | plugins/crazychat/QTUtilities.c plugins/crazychat/QTUtilities.h plugins/crazychat/Utilities.c plugins/crazychat/Utilities.h plugins/crazychat/camdata.c plugins/crazychat/camdata.h plugins/crazychat/camproc.c plugins/crazychat/camproc.h plugins/crazychat/cc_features.c plugins/crazychat/cc_gaim_plugin.c plugins/crazychat/cc_gtk_gl.c plugins/crazychat/cc_gtk_gl.h plugins/crazychat/cc_interface.h plugins/crazychat/cc_network.c plugins/crazychat/cc_network.h plugins/crazychat/cc_output.c plugins/crazychat/crazychat.c plugins/crazychat/crazychat.h plugins/crazychat/dog_lids.c plugins/crazychat/dog_lids.h plugins/crazychat/doggy.c plugins/crazychat/doggy.h plugins/crazychat/draw.c plugins/crazychat/eye.c plugins/crazychat/eye.h plugins/crazychat/eyes.c plugins/crazychat/eyes.h plugins/crazychat/face.c plugins/crazychat/face.h plugins/crazychat/filter.c plugins/crazychat/filter.h plugins/crazychat/glm.c plugins/crazychat/glm.h plugins/crazychat/lids.c plugins/crazychat/lids.h plugins/crazychat/main.c plugins/crazychat/mat_struct.h plugins/crazychat/models.c plugins/crazychat/models.h plugins/crazychat/sharky.c plugins/crazychat/sharky.h plugins/crazychat/test.h plugins/crazychat/util.h |
diffstat | 43 files changed, 0 insertions(+), 13265 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/crazychat/QTUtilities.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,306 +0,0 @@ -/* - File: QTUtilities.c - - Description: Miscellaneous QuickTime utility routines. - - Copyright: © Copyright 2003 Apple Computer, Inc. All rights reserved. - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. - ("Apple") in consideration of your agreement to the following terms, and your - use, installation, modification or redistribution of this Apple software - constitutes acceptance of these terms. If you do not agree with these terms, - please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject - to these terms, Apple grants you a personal, non-exclusive license, under Apple’s - copyrights in this original Apple software (the "Apple Software"), to use, - reproduce, modify and redistribute the Apple Software, with or without - modifications, in source and/or binary forms; provided that if you redistribute - the Apple Software in its entirety and without modifications, you must retain - this notice and the following text and disclaimers in all such redistributions of - the Apple Software. Neither the name, trademarks, service marks or logos of - Apple Computer, Inc. may be used to endorse or promote products derived from the - Apple Software without specific prior written permission from Apple. Except as - expressly stated in this notice, no other rights or licenses, express or implied, - are granted by Apple herein, including but not limited to any patent rights that - may be infringed by your derivative works or by other works in which the Apple - Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO - WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED - WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION - OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT - (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Change History (most recent first): - -*/ - -#include "QTUtilities.h" -#include "Utilities.h" - -#define BailErr(x) {if (x != noErr) goto bail;} - -////////// -// -// GetMovieFromFile -// Opens a movie file, then creates a new movie for the file -// -////////// - -OSErr GetMovieFromFile(FSSpec *fsspecPtr, Movie *theMovie) -{ - short resRefNum = -1; - OSErr result; - - *theMovie = NULL; - - result = OpenMovieFile(fsspecPtr, &resRefNum, 0); - if (result == noErr) - { - short actualResId = DoTheRightThing; - - result = NewMovieFromFile(theMovie, - resRefNum, - &actualResId, - (unsigned char *) 0, - 0, - (Boolean *) 0); - CloseMovieFile(resRefNum); - } - - return result; -} - -////////// -// -// GetAMovieFile -// Prompt the user for a movie file, then open -// the file and create a movie for it. -// -////////// - -OSErr GetAMovieFile(Movie *theMovie) -{ - OSType myTypeList[2] = {kQTFileTypeMovie, kQTFileTypeQuickTimeImage}; - FSSpec theFSSpec; - OSErr result = noErr; - - *theMovie = nil; - - result = GetOneFileWithPreview(2, myTypeList, &theFSSpec, NULL); - if (result != userCanceledErr) - { - result = GetMovieFromFile(&theFSSpec, theMovie); - } - - return result; -} - -////////// -// -// NormalizeMovieRect -// -////////// - -void NormalizeMovieRect(Movie theMovie) -{ - Rect movieBounds; - - GetMovieBox(theMovie, &movieBounds); - OffsetRect(&movieBounds, -movieBounds.left, -movieBounds.top); - movieBounds.right = movieBounds.left + 640; - movieBounds.bottom = movieBounds.top + 480; - SetMovieBox(theMovie, &movieBounds); -} - -////////// -// -// EraseRectAndAlpha -// Zeros out a section of the GWorld, including alpha. -// -////////// - -void EraseRectAndAlpha(GWorldPtr gWorld, Rect *pRect) -{ - PixMapHandle pixMap = GetGWorldPixMap(gWorld); - long rows; - Ptr rowBaseAddr; - - - LockPixels(pixMap); - rows = pRect->bottom - pRect->top; - - rowBaseAddr = GetPixBaseAddr(pixMap) + (GetPixRowBytes(pixMap) & 0x3fff) * pRect->top + pRect->left * GetPixDepth(pixMap) / 8; - do - { - long cols; - UInt32 *baseAddr; - - cols = pRect->right - pRect->left; - baseAddr = (UInt32*)rowBaseAddr; - rowBaseAddr += (**pixMap).rowBytes & 0x3fff; - do - { - *baseAddr++ = 0; - } while (--cols); - } while (--rows); - - UnlockPixels(pixMap); - -} // EraseRectAndAlpha - -////////// -// -// CreateDecompSeqForSGChannelData -// Create a decompression sequence for the passed -// Sequence Grabber channel data -// -////////// - -OSErr CreateDecompSeqForSGChannelData(SGChannel sgChannel, Rect *srcBounds, GWorldPtr imageDestination, ImageSequence *imageSeqID) -{ - OSErr err = noErr; - - ImageDescriptionHandle imageDesc = (ImageDescriptionHandle)NewHandle(sizeof(ImageDescription)); - if (imageDesc) - { - - err = SGGetChannelSampleDescription(sgChannel,(Handle)imageDesc); - // The original version of this code had a bug - it passed in a Crop Rect to DecompressSequenceBegin instead of a scaling matrix - // This only worked because of another bug inside QT that reated the crop Rect as a destination rect for DV - // the following code does the right thing in all cases. - - if (err == noErr) - { - MatrixRecord mr; - Rect fromR; - - fromR.left = 0; - fromR.top = 0; - fromR.right = (**imageDesc).width; - fromR.bottom = (**imageDesc).height; - RectMatrix(&mr, &fromR, srcBounds); - - err = DecompressSequenceBegin(imageSeqID, imageDesc, imageDestination, 0, nil, &mr,srcCopy,nil,0, codecNormalQuality, bestSpeedCodec); - } - - DisposeHandle((Handle)imageDesc); - } - else - { - err = MemError(); - } - - return err; -} - - -////////// -// -// CreateDecompSeqForGWorldData -// Create a decompression sequence for the specified gworld data -// -////////// - -OSErr CreateDecompSeqForGWorldData(GWorldPtr srcGWorld, Rect *srcBounds, MatrixRecordPtr mr, GWorldPtr imageDestination, ImageSequence *imageSeqID) -{ - OSErr err; - - ImageDescriptionHandle imageDesc = (ImageDescriptionHandle)NewHandle(sizeof(ImageDescription)); - if (imageDesc) - { - err = MakeImageDescriptionForPixMap (GetGWorldPixMap(srcGWorld), &imageDesc); - err = DecompressSequenceBegin( imageSeqID, - imageDesc, - imageDestination, - 0, - srcBounds, - mr, - srcCopy, - nil, - 0, - codecNormalQuality, - bestSpeedCodec); - DisposeHandle((Handle)imageDesc); - } - else - { - err = MemError(); - } - - return err; -} - -////////// -// -// CreateNewSGChannelForRecording -// - create a new Sequence Grabber video channel -// - let the use configure the channel -// - set the channel bounds, usage -// - set a data proc for the channel -// - start recording data -// -////////// - -OSErr CreateNewSGChannelForRecording(ComponentInstance seqGrab, SGDataUPP dataProc, CGrafPtr drawPort, Rect *theRect, SGChannel *sgChannel, long refCon) -{ - OSErr err = noErr; - - BailErr((err = SGInitialize(seqGrab))); - - // tell it we're not making a movie - BailErr((err = SGSetDataRef(seqGrab,0,0,seqGrabDontMakeMovie))); - // It wants a port, even if its not drawing to it - BailErr((err = SGSetGWorld(seqGrab, drawPort, GetMainDevice()))); - BailErr((err = SGNewChannel(seqGrab, VideoMediaType, sgChannel))); - - // let the user configure the video channel - //BailErr((err = SGSettingsDialog(seqGrab, *sgChannel, 0, nil, 0, nil, 0))); // ************************ -// ************************************************************ - - - - BailErr((err = SGSetChannelBounds(*sgChannel, theRect))); - // set usage for new video channel to avoid playthrough - BailErr((err = SGSetChannelUsage(*sgChannel, seqGrabRecord ))); //note we don't set seqGrabPlayDuringRecord - BailErr((err = SGSetDataProc(seqGrab, dataProc, refCon))); - BailErr((err = SGStartRecord(seqGrab))); - -bail: - return err; -} - -////////// -// -// DoCloseSG -// Terminate recording for our SG channel - dispose of the channel and -// the associated SG component instance -// -////////// - -void DoCloseSG(ComponentInstance seqGrab, SGChannel sgChannel, SGDataUPP dataProc) -{ - if(seqGrab) - { - SGStop(seqGrab); - SGSetDataProc(seqGrab, NULL ,NULL); - if (dataProc) - { - DisposeSGDataUPP(dataProc); - } - - SGDisposeChannel(seqGrab, sgChannel); - CloseComponent(seqGrab); - } -} - -
--- a/plugins/crazychat/QTUtilities.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* - File: QTUtilities.h - - Description: Interface file for QTUtilities.c source code. - - Copyright: © Copyright 2003 Apple Computer, Inc. All rights reserved. - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. - ("Apple") in consideration of your agreement to the following terms, and your - use, installation, modification or redistribution of this Apple software - constitutes acceptance of these terms. If you do not agree with these terms, - please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject - to these terms, Apple grants you a personal, non-exclusive license, under Apple’s - copyrights in this original Apple software (the "Apple Software"), to use, - reproduce, modify and redistribute the Apple Software, with or without - modifications, in source and/or binary forms; provided that if you redistribute - the Apple Software in its entirety and without modifications, you must retain - this notice and the following text and disclaimers in all such redistributions of - the Apple Software. Neither the name, trademarks, service marks or logos of - Apple Computer, Inc. may be used to endorse or promote products derived from the - Apple Software without specific prior written permission from Apple. Except as - expressly stated in this notice, no other rights or licenses, express or implied, - are granted by Apple herein, including but not limited to any patent rights that - may be infringed by your derivative works or by other works in which the Apple - Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO - WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED - WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION - OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT - (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Change History (most recent first): - -*/ - -#ifdef __APPLE_CC__ -// #include <Carbon/Carbon.h> - #include <QuickTime/QuickTime.h> -#else -// #include <Carbon.h> - #include <QuickTime.h> -#endif - -#define kSourceNoneName FOUR_CHAR_CODE('srcZ') - - -OSErr GetMovieFromFile(FSSpec *fsspecPtr, Movie *theMovie); -void NormalizeMovieRect(Movie theMovie); -void EraseRectAndAlpha(GWorldPtr gWorld, Rect *pRect); -OSErr GetAMovieFile(Movie *theMovie); -OSErr CreateDecompSeqForSGChannelData(SGChannel sgChannel, Rect *srcBounds, GWorldPtr imageDestination, ImageSequence *imageSeqID); -OSErr CreateDecompSeqForGWorldData(GWorldPtr srcGWorld, Rect *srcBounds, MatrixRecordPtr mr, GWorldPtr imageDestination, ImageSequence *imageSeqID); -OSErr CreateNewSGChannelForRecording(ComponentInstance seqGrab, SGDataUPP dataProc, CGrafPtr drawPort, Rect *theRect, SGChannel *sgChannel, long refCon); -void DoCloseSG(ComponentInstance seqGrab, SGChannel sgChannel, SGDataUPP dataProc);
--- a/plugins/crazychat/Utilities.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,283 +0,0 @@ -/* - File: Utilities.c - - Description: Miscellaneous Utility routines. - - Copyright: © Copyright 2003 Apple Computer, Inc. All rights reserved. - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. - ("Apple") in consideration of your agreement to the following terms, and your - use, installation, modification or redistribution of this Apple software - constitutes acceptance of these terms. If you do not agree with these terms, - please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject - to these terms, Apple grants you a personal, non-exclusive license, under Apple’s - copyrights in this original Apple software (the "Apple Software"), to use, - reproduce, modify and redistribute the Apple Software, with or without - modifications, in source and/or binary forms; provided that if you redistribute - the Apple Software in its entirety and without modifications, you must retain - this notice and the following text and disclaimers in all such redistributions of - the Apple Software. Neither the name, trademarks, service marks or logos of - Apple Computer, Inc. may be used to endorse or promote products derived from the - Apple Software without specific prior written permission from Apple. Except as - expressly stated in this notice, no other rights or licenses, express or implied, - are granted by Apple herein, including but not limited to any patent rights that - may be infringed by your derivative works or by other works in which the Apple - Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO - WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED - WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION - OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT - (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Change History (most recent first): - -*/ - -#ifndef __UTILITIES__ - #include "Utilities.h" -#endif - -const OSType kApplicationSignature = FOUR_CHAR_CODE('cvmj'); -const ResType kOpenResourceType = FOUR_CHAR_CODE('open'); -const StringPtr kApplicationName = "\pYourAppNameHere"; - -////////// -// -// GetOneFileWithPreview -// Display the appropriate file-opening dialog box, with an optional QuickTime preview pane. If the user -// selects a file, return information about it using the theFSSpecPtr parameter. -// -// Note that both StandardGetFilePreview and NavGetFile use the function specified by theFilterProc as a -// file filter. This framework always passes NULL in the theFilterProc parameter. If you use this function -// in your own code, keep in mind that on Windows the function specifier must be of type FileFilterUPP and -// on Macintosh it must be of type NavObjectFilterUPP. (You can use the QTFrame_GetFileFilterUPP to create -// a function specifier of the appropriate type.) Also keep in mind that Navigation Services expects a file -// filter function to return true if a file is to be displayed, while the Standard File Package expects the -// filter to return false if a file is to be displayed. -// -////////// - -OSErr GetOneFileWithPreview (short theNumTypes, TypeListPtr theTypeList, FSSpecPtr theFSSpecPtr, void *theFilterProc) -{ - -#if TARGET_OS_WIN32 - StandardFileReply myReply; -#endif -#if TARGET_OS_MAC - NavReplyRecord myReply; - NavDialogOptions myDialogOptions; - NavTypeListHandle myOpenList = NULL; - NavEventUPP myEventUPP = NewNavEventUPP(HandleNavEvent); -#endif - OSErr myErr = noErr; - - if (theFSSpecPtr == NULL) - return(paramErr); - -#if TARGET_OS_WIN32 - // prompt the user for a file - StandardGetFilePreview((FileFilterUPP)theFilterProc, theNumTypes, (ConstSFTypeListPtr)theTypeList, &myReply); - if (!myReply.sfGood) - return(userCanceledErr); - - // make an FSSpec record - myErr = FSMakeFSSpec(myReply.sfFile.vRefNum, myReply.sfFile.parID, myReply.sfFile.name, theFSSpecPtr); -#endif - -#if TARGET_OS_MAC - // specify the options for the dialog box - NavGetDefaultDialogOptions(&myDialogOptions); - myDialogOptions.dialogOptionFlags -= kNavNoTypePopup; - myDialogOptions.dialogOptionFlags -= kNavAllowMultipleFiles; - BlockMoveData(kApplicationName, myDialogOptions.clientName, kApplicationName[0] + 1); - - // create a handle to an 'open' resource - myOpenList = (NavTypeListHandle)CreateOpenHandle(kApplicationSignature, theNumTypes, theTypeList); - if (myOpenList != NULL) - HLock((Handle)myOpenList); - - // prompt the user for a file - myErr = NavGetFile(NULL, &myReply, &myDialogOptions, myEventUPP, NULL, (NavObjectFilterUPP)theFilterProc, myOpenList, NULL); - if ((myErr == noErr) && myReply.validRecord) { - AEKeyword myKeyword; - DescType myActualType; - Size myActualSize = 0; - - // get the FSSpec for the selected file - if (theFSSpecPtr != NULL) - myErr = AEGetNthPtr(&(myReply.selection), 1, typeFSS, &myKeyword, &myActualType, theFSSpecPtr, sizeof(FSSpec), &myActualSize); - - NavDisposeReply(&myReply); - } - - if (myOpenList != NULL) { - HUnlock((Handle)myOpenList); - DisposeHandle((Handle)myOpenList); - } - - DisposeNavEventUPP(myEventUPP); -#endif - - return(myErr); -} - -////////// -// -// CreateOpenHandle -// Get the 'open' resource or dynamically create a NavTypeListHandle. -// -////////// - -Handle CreateOpenHandle (OSType theApplicationSignature, short theNumTypes, TypeListPtr theTypeList) -{ - Handle myHandle = NULL; - - // see if we have an 'open' resource... - myHandle = Get1Resource('open', 128); - if ( myHandle != NULL && ResError() == noErr ) { - DetachResource( myHandle ); - return myHandle; - } else { - myHandle = NULL; - } - - // nope, use the passed in types and dynamically create the NavTypeList - if (theTypeList == NULL) - return myHandle; - - if (theNumTypes > 0) { - myHandle = NewHandle(sizeof(NavTypeList) + (theNumTypes * sizeof(OSType))); - if (myHandle != NULL) { - NavTypeListHandle myOpenResHandle = (NavTypeListHandle)myHandle; - - (*myOpenResHandle)->componentSignature = theApplicationSignature; - (*myOpenResHandle)->osTypeCount = theNumTypes; - BlockMoveData(theTypeList, (*myOpenResHandle)->osType, theNumTypes * sizeof(OSType)); - } - } - - return myHandle; -} - -////////// -// -// HandleNavEvent -// A callback procedure that handles events while a Navigation Service dialog box is displayed. -// -////////// - -PASCAL_RTN void HandleNavEvent(NavEventCallbackMessage theCallBackSelector, NavCBRecPtr theCallBackParms, void *theCallBackUD) -{ -#pragma unused(theCallBackUD) - - if (theCallBackSelector == kNavCBEvent) { - switch (theCallBackParms->eventData.eventDataParms.event->what) { - case updateEvt: -#if TARGET_OS_MAC - // Handle Update Event -#endif - break; - case nullEvent: - // Handle Null Event - break; - } - } -} - -////////// -// -// PutFile -// Save a file under the specified name. Return Boolean values indicating whether the user selected a file -// and whether the selected file is replacing an existing file. -// -////////// - -OSErr PutFile (ConstStr255Param thePrompt, ConstStr255Param theFileName, FSSpecPtr theFSSpecPtr, Boolean *theIsSelected, Boolean *theIsReplacing) -{ - NavReplyRecord myReply; - NavDialogOptions myDialogOptions; - NavEventUPP myEventUPP = NewNavEventUPP(HandleNavEvent); - OSErr myErr = noErr; - - if ((theFSSpecPtr == NULL) || (theIsSelected == NULL) || (theIsReplacing == NULL)) - return(paramErr); - - // assume we are not replacing an existing file - *theIsReplacing = false; - - *theIsSelected = false; - - // specify the options for the dialog box - NavGetDefaultDialogOptions(&myDialogOptions); - myDialogOptions.dialogOptionFlags += kNavNoTypePopup; - myDialogOptions.dialogOptionFlags += kNavDontAutoTranslate; - BlockMoveData(theFileName, myDialogOptions.savedFileName, theFileName[0] + 1); - BlockMoveData(thePrompt, myDialogOptions.message, thePrompt[0] + 1); - - // prompt the user for a file - myErr = NavPutFile(NULL, &myReply, &myDialogOptions, myEventUPP, MovieFileType, sigMoviePlayer, NULL); - if ((myErr == noErr) && myReply.validRecord) - { - AEKeyword myKeyword; - DescType myActualType; - Size myActualSize = 0; - - // get the FSSpec for the selected file - if (theFSSpecPtr != NULL) - myErr = AEGetNthPtr(&(myReply.selection), 1, typeFSS, &myKeyword, &myActualType, theFSSpecPtr, sizeof(FSSpec), &myActualSize); - - *theIsSelected = myReply.validRecord; - if (myReply.validRecord) - { - *theIsReplacing = myReply.replacing; - } - - NavDisposeReply(&myReply); - } - - - DisposeNavEventUPP(myEventUPP); - - return(myErr); -} - -////////// -// -// DrawLobsterPICTtoGWorld -// Draws our lobster image to the specified gworld -// -////////// - -void DrawLobsterPICTtoGWorld(CGrafPtr destGWorld, Rect *srcRect) -{ - // put the overlay into the GWorld, move the picture to the bottom right of the movie - PicHandle pict = GetPicture(129); - if (pict) - { - CGrafPtr oldPort; - GDHandle oldDevice; - Rect frame = (**pict).picFrame; - - GetGWorld(&oldPort, &oldDevice); - SetGWorld(destGWorld, nil); - // normalize coordinates - OffsetRect(&frame, -frame.left, -frame.left); - // grow frame to be as big as source rect - OffsetRect(&frame, srcRect->right - frame.right, srcRect->bottom - frame.bottom); - DrawPicture(pict, &frame); - SetGWorld(oldPort, oldDevice); - ReleaseResource((Handle)pict); - } -} -
--- a/plugins/crazychat/Utilities.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* - File: Utilities.h - - Description: Interface file for Utilities.c source code. - - Copyright: © Copyright 2003 Apple Computer, Inc. All rights reserved. - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. - ("Apple") in consideration of your agreement to the following terms, and your - use, installation, modification or redistribution of this Apple software - constitutes acceptance of these terms. If you do not agree with these terms, - please do not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following terms, and subject - to these terms, Apple grants you a personal, non-exclusive license, under Apple’s - copyrights in this original Apple software (the "Apple Software"), to use, - reproduce, modify and redistribute the Apple Software, with or without - modifications, in source and/or binary forms; provided that if you redistribute - the Apple Software in its entirety and without modifications, you must retain - this notice and the following text and disclaimers in all such redistributions of - the Apple Software. Neither the name, trademarks, service marks or logos of - Apple Computer, Inc. may be used to endorse or promote products derived from the - Apple Software without specific prior written permission from Apple. Except as - expressly stated in this notice, no other rights or licenses, express or implied, - are granted by Apple herein, including but not limited to any patent rights that - may be infringed by your derivative works or by other works in which the Apple - Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO - WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED - WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION - OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT - (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Change History (most recent first): - -*/ - -#ifdef __APPLE_CC__ -// #include <Carbon/Carbon.h> - #include <QuickTime/QuickTime.h> -#else -// #include <Carbon.h> - #include <QuickTime.h> -#endif - - -#define kTypeListCount 2 -#if TARGET_OS_MAC - #define PASCAL_RTN pascal -#endif - -#ifdef __APPLE_CC__ - #define sigMoviePlayer FOUR_CHAR_CODE('TVOD') -#else - #include <FileTypesAndCreators.h> -#endif - - -// -// Typedefs -// -typedef const OSTypePtr TypeListPtr; - - -// -// Prototypes -// -OSErr GetOneFileWithPreview (short theNumTypes, TypeListPtr theTypeList, FSSpecPtr theFSSpecPtr, void *theFilterProc); -Handle CreateOpenHandle (OSType theApplicationSignature, short theNumTypes, TypeListPtr theTypeList); -PASCAL_RTN void HandleNavEvent(NavEventCallbackMessage theCallBackSelector, NavCBRecPtr theCallBackParms, void *theCallBackUD); -OSErr PutFile (ConstStr255Param thePrompt, ConstStr255Param theFileName, FSSpecPtr theFSSpecPtr, Boolean *theIsSelected, Boolean *theIsReplacing); -void DrawLobsterPICTtoGWorld(CGrafPtr destGWorld, Rect *srcRect); - -
--- a/plugins/crazychat/camdata.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,213 +0,0 @@ -/* - * camdata.c - * basecame - * - * Created by CS194 on Mon Apr 26 2004. - * Copyright (c) 2004 __MyCompanyName__. All rights reserved. - * - */ - -#include "camdata.h" -//#include "AppBlit_Component.h" -#include "QTUtilities.h" -#include "Utilities.h" - - -#define BailNULL(n) if (!n) goto bail; -#define BailError(n) if (n) goto bail; -#define BailNil(n) if (!n) goto bail; -#define BailErr(x) {if (x != noErr) goto bail;} -#define bitdepth 32 - -mungDataPtr myMungData = NULL; -long mWorlds[20]; -UInt32 mRedCount[256], mGreenCound[256], mBlueCount[256]; - -static void DecompressSequencePreflight(GWorldPtr srcGWorld, - ImageSequence *imageSeq, - GWorldPtr destGWorld, - Rect *srcRect); -//static void DrawRGBHistogram(mungDataRecord *theMungData); -//static void CreateEffectDescription(mungDataRecord *theMungData); -//static void CreateEffectDecompSequence(mungDataRecord *theMungData); -//static void AddGWorldDataSourceToEffectDecompSeq(mungDataRecord *theMungData); -//static void MakeEffectTimeBaseForEffect(mungDataRecord *theMungData); -//static void DrawUsingEffect(mungDataRecord *theMungData); - - -OSErr InitializeMungData(Rect bounds) -{ - OSErr err = noErr; - - if(myMungData) - { - DisposeMungData(); - } - - myMungData = (mungDataPtr)NewPtrClear(sizeof(mungDataRecord)); - if (myMungData == nil) - { - err = MemError(); - goto bail; - } - - myMungData->effect = 0; // always - - - BailErr(QTNewGWorld(&(myMungData->gw),bitdepth,&bounds,0,0,0)); - LockPixels(GetGWorldPixMap(myMungData->gw)); - - SetMungDataColorDefaults(); - - - - myMungData->selectedIndex = 0; - myMungData->overlay = NULL; - - SetCurrentClamp(-1); - - - - myMungData->bounds = bounds; - - SetRect(&bounds, 0, 0, 256*2+4, 128*3 + 20); - BailErr(QTNewGWorld(&(myMungData->histoWorld),bitdepth,&bounds,0,0,0)); - LockPixels(GetGWorldPixMap(myMungData->histoWorld)); - -bail: - return err; -} - -OSErr DisposeMungData(void) -{ // check this out - OSErr err = noErr; - - if(myMungData) - { - //if(myMungData->drawSeq) - //{ - // CDSequenceEnd(myMungData->drawSeq); - //} - - if(myMungData->gw) - { - DisposeGWorld(myMungData->gw); - myMungData->gw = nil; - } - - if(myMungData->overlay) - { - DisposeGWorld(myMungData->overlay); - myMungData->overlay = nil; - } - - if(myMungData->histoWorld) - { - DisposeGWorld(myMungData->histoWorld); - myMungData->histoWorld = nil; - } - - if (myMungData->effectTimeBase) - { - DisposeTimeBase(myMungData->effectTimeBase); - } - if (myMungData->effectParams) - { - QTDisposeAtomContainer(myMungData->effectParams); - } - if (myMungData->effectDesc) - { - DisposeHandle((Handle)myMungData->effectDesc); - } - - DisposePtr((Ptr)myMungData); - myMungData = nil; - } - return err; -} - -static void DecompressSequencePreflight(GWorldPtr srcGWorld, - ImageSequence *imageSeq, - GWorldPtr destGWorld, - Rect *srcRect) -// might not need this one - -{ - ImageDescriptionHandle imageDesc = nil; - - BailErr(MakeImageDescriptionForPixMap (GetGWorldPixMap(srcGWorld), &imageDesc)); - - // use our built-in decompressor to draw - // (**imageDesc).cType = kCustomDecompressorType; - -// *********** MIGHT BE MAKING A BIG MISTAKE ****************** - // pass a compressed sample so a codec can perform preflighting before the first DecompressSequenceFrameWhen call - - BailErr(DecompressSequenceBegin(imageSeq, - imageDesc, - destGWorld, - 0, - srcRect, - nil, - srcCopy, - nil, - 0, - codecNormalQuality, - bestSpeedCodec)); - -bail: - if (imageDesc) - { - DisposeHandle((Handle)imageDesc); - } -} - -ImageSequence GetMungDataDrawSeq() -{ - return myMungData->drawSeq; -} - -void SetMungDataColorDefaults() -{ - if(myMungData) - { - myMungData->redMin = 2; - myMungData->redMax = 254; - myMungData->greenMin = 2; - myMungData->greenMax = 254; - myMungData->blueMin = 2; - myMungData->blueMax = 254; - } -} - -void GetMungDataBoundsRect(Rect *boundsRect) -// might not need this one -{ - MacSetRect (boundsRect, - myMungData->bounds.left, - myMungData->bounds.top, - myMungData->bounds.right, - myMungData->bounds.bottom - ); -} - -void SetCurrentClamp(short index) // :crazy:20040426 -{ - myMungData->selectedIndex = index; -} - -GWorldPtr GetMungDataOffscreen() -{ - return (myMungData->gw); -} - -void SetMungDataDrawSeq(ImageSequence theDrawSeq) -{ - myMungData->drawSeq = theDrawSeq; -} - - -CGrafPtr GetMungDataWindowPort() -{ - return GetWindowPort(myMungData->window); -}
--- a/plugins/crazychat/camdata.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -/* - * camdata.h - * basecame - * - * Created by CS194 on Mon Apr 26 2004. - * Copyright (c) 2004 __MyCompanyName__. All rights reserved. - * - */ - -#pragma once - -#ifdef __APPLE_CC__ -// #include <Carbon/Carbon.h> - #include <QuickTime/QuickTime.h> -#else -// #include <Carbon.h> - #include <QuickTime.h> -#endif - -typedef struct -{ - GWorldPtr gw; - GWorldPtr overlay; - GWorldPtr histoWorld; - - Rect bounds; - WindowPtr window; - ImageSequence drawSeq; - UInt32 redMin, redMax; - UInt32 greenMin, greenMax; - UInt32 blueMin, blueMax; - - long selectedIndex; - OSType effect; - TimeBase effectTimeBase; - QTAtomContainer effectParams; - ImageDescriptionHandle effectDesc, effectDesc2; -} mungDataRecord; -typedef mungDataRecord *mungDataPtr; - -OSErr DisposeMungData(void); -OSErr InitializeMungData(Rect bounds); -void SetCurrentClamp(short index); - -//void BlitOneMungData(mungDataRecord *theMungData); - -//void AdjustColorClampEndpoints(short hMouseCoord); -//void IncrementCurrentClamp(); -//void DecrementCurrentClamp(); -void SetMungDataColorDefaults(); -CGrafPtr GetMungDataWindowPort(); - -GWorldPtr GetMungDataOffscreen(void); -//OSType GetMungDataEffectType(); - -//long GetCurrentClamp(); -//void SetCurrentClamp(short index); - -void GetMungDataBoundsRect(Rect *movieRect); -//CGrafPtr GetMungDataWindowPort(); - -void SetMungDataDrawSeq(ImageSequence theDrawSeq); -//ImageSequence GetMungDataDrawSeq();
--- a/plugins/crazychat/camproc.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,812 +0,0 @@ -/* - * camproc.c - * basecame - * - * Created by CS194 on Mon Apr 26 2004. - * Copyright (c) 2004 __MyCompanyName__. All rights reserved. - * - */ - - -#include "camdata.h" -#include "Utilities.h" -#include "QTUtilities.h" -#include "stdio.h" -#include "math.h" -#include <gtk/gtk.h> -#include "cc_interface.h" -#include "filter.h" - - -extern int detection_mode; -extern mungDataPtr myMungData; -extern int x_click; -extern int y_click; - - -#define kMinimumIdleDurationInMillis kEventDurationMillisecond -#define BailErr(x) {if (x != noErr) goto bail;} -#define PRE_CALIBRATE_MODE 0 -#define CALIBRATE_MODE 1 -#define SCAN_MODE 2 - -#define CALIB_TOP 190 -#define CALIB_BOTTOM 200 -#define CALIB_LEFT 200 -#define CALIB_RIGHT 210 - -#define CALIB_RADIUS 5 - -#define NUM_FRAMES_EYE_SEARCH 50 -#define EYE_UNCONFIDENCE_LIMIT 7 - -#define BLINK_THRESHOLD 75 -#define BLINK_LENGTH 10 -#define WHITE_THRESH 25 -#define WHITE_COUNT_MAX 200 - - -struct input_instance* instance; -int scan_region_left; -int scan_region_right; -int scan_region_top; -int scan_region_bottom; - -int lum_thresh=150; -int face_left; -int face_right; -int face_top; -int face_bottom; -int old_left_eye_x=50; -int old_left_eye_y=50; -int old_right_eye_x=50; -int old_right_eye_y=50; -int left_eye_x; -int left_eye_y; -int right_eye_x; -int right_eye_y; -int eye_search_frame_count=0; -int bozo_bit=0; -int eye_unconfidence=0; -int last_eye_count_left=0; -int last_eye_count_right=0; -int mouth_ctr_x; -int mouth_ctr_y; -int mouth_size, mouth_left, mouth_right, mouth_top, mouth_bottom; -int white_count; -guint8 head_size_old; -int left_eye_blink_count; -int right_eye_blink_count; - -int left_eye_top, left_eye_bottom, left_eye_right, left_eye_left; -int right_eye_top, right_eye_bottom, right_eye_right, right_eye_left; - -filter_bank *bank; - -static SeqGrabComponent mSeqGrab = NULL; -static SGChannel mSGChanVideo = NULL; -static SGDataUPP mMyDataProcPtr = NULL; -static EventLoopTimerRef mSGTimerRef = 0; -static ImageSequence mDecomSeq = 0; -static EventLoopTimerUPP mSGTimerUPP = nil; -static Rect mMungRect = {0, 0, 480, 640}; -int lower_left_corner_x = 200; -int lower_left_corner_y = 200; -int upper_right_corner_x = 210; -int upper_right_corner_y = 190; - - -static pascal OSErr MiniMungDataProc(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon); -static pascal void SGIdlingTimer(EventLoopTimerRef inTimer, void *inUserData); -static void DetectLobster(GWorldPtr mungDataOffscreen); -int SkinDetect(double Y, double E, double S); -void ScanSkin(PixMapHandle p); -void drawbox(int top, int bottom, int left, int right, int color); -void SkinStats (PixMapHandle p, int top, int bottom, int left, int right); -void SetEyeSearchRegions(void); - - -typedef enum {RED, GREEN, BLUE} color; -color saved_best=-1; - -int filenum=0; - - -OSErr CamProc(struct input_instance *inst, filter_bank *f) -{ - OSStatus error; - OSErr err = noErr; - - BailErr(err = InitializeMungData(mMungRect)); - - bank = f; - - instance=inst; - mMyDataProcPtr = NewSGDataUPP(MiniMungDataProc); - mSeqGrab = OpenDefaultComponent(SeqGrabComponentType, 0); - BailErr((err = CreateNewSGChannelForRecording( mSeqGrab, - mMyDataProcPtr, - GetMungDataOffscreen(), // drawing destination - &mMungRect, - &mSGChanVideo, - NULL))); - -bail: - return err; -} - -void QueryCam (void) -{ - SGIdle(mSeqGrab); -} - -static pascal void SGIdlingTimer(EventLoopTimerRef inTimer, void *inUserData) -{ -#pragma unused(inUserData) - - if (mSeqGrab) - { - SGIdle(mSeqGrab); - } - - // Reschedule the event loop timer - SetEventLoopTimerNextFireTime(inTimer, kMinimumIdleDurationInMillis); -} - -static pascal OSErr MiniMungDataProc(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon) -{ - - -#pragma unused(offset,chRefCon,time,writeType,refCon) - ComponentResult err = noErr; - CodecFlags ignore; - GWorldPtr gWorld; - - - - - if (!myMungData) goto bail; - - gWorld = GetMungDataOffscreen(); - if(gWorld) - { - if (mDecomSeq == 0) // init a decompression sequence - { - Rect bounds; - - GetMungDataBoundsRect(&bounds); - - BailErr( CreateDecompSeqForSGChannelData(c, &bounds, gWorld, &mDecomSeq)); - - if(1) - //if ((!mUseOverlay) && (GetCurrentClamp() == -1) && (!mUseEffect)) - { - ImageSequence drawSeq; - - err = CreateDecompSeqForGWorldData( gWorld, - &bounds, - nil, - GetMungDataWindowPort(), - &drawSeq); - SetMungDataDrawSeq(drawSeq); - } - } - - // decompress data to our offscreen gworld - BailErr(DecompressSequenceFrameS(mDecomSeq,p,len,0,&ignore,nil)); - - // image is now in the GWorld - manipulate it at will! - //if ((mUseOverlay) || (GetCurrentClamp() != -1) || (mUseEffect)) - //{ - // use our custom decompressor to "decompress" the data - // to the screen with overlays or color clamping - // BlitOneMungData(myMungData); - //} - //else - //{ - // we are doing a motion detect grab, so - // search for lobsters in our image data - DetectLobster(gWorld); - //} - - } - -bail: - return err; -} - -void Die() -{ - //RemoveEventLoopTimer(mSGTimerRef); - // mSGTimerRef = nil; - // DisposeEventLoopTimerUPP(mSGTimerUPP); - DoCloseSG(mSeqGrab, mSGChanVideo, mMyDataProcPtr); - -} - - -float Y_mean=-1; -float Y_dev,E_mean,E_dev,S_mean,S_dev; -/* - extern colorBuf[480][640]; -*/ -extern unsigned int (*colorBuf)[644]; -extern struct input_instance input_data; - -static void DetectLobster(GWorldPtr mungDataOffscreen) -{ - CGrafPtr oldPort; - GDHandle oldDevice; - int x, y; - Rect bounds; - PixMapHandle pix = GetGWorldPixMap(mungDataOffscreen); - UInt32 * baseAddr; - UInt32 reds = 0; - Str255 tempString; - int minX = 10000, maxX = -10000; - int minY = 10000, maxY = -10000; - Rect tempRect; - float percent; - OSErr err; - CodecFlags ignore; - color best; - long R_total=0; - long G_total=0; - long B_total=0; - - - - //fprintf(stderr, "Starting to find some lobsters...\n"); - - - GetPortBounds(mungDataOffscreen, &bounds); - OffsetRect(&bounds, -bounds.left, -bounds.top); - - - UInt32 color; - - - int sum_x,sum_y=0; - int count=0; - int k,j; - long R; - long G; - long B; - int search_width=200; - int search_height=200; - - - colorBuf = GetPixBaseAddr(pix); - - switch (detection_mode) { - - case PRE_CALIBRATE_MODE: - //drawbox(CALIB_TOP, CALIB_BOTTOM, CALIB_LEFT, CALIB_RIGHT); - break; - - case CALIBRATE_MODE: - SkinStats(pix, y_click-CALIB_RADIUS, y_click+CALIB_RADIUS, x_click-CALIB_RADIUS, x_click+CALIB_RADIUS); - scan_region_left=x_click-CALIB_RADIUS;//10; - scan_region_right=x_click+CALIB_RADIUS;//630; - scan_region_top=y_click-CALIB_RADIUS;//10; - scan_region_bottom=y_click+CALIB_RADIUS;//470; - ScanSkin(pix); - detection_mode=SCAN_MODE; - //fprintf(stderr, "scan left: %d scan right: %d \n",scan_region_left,scan_region_right); - head_size_old=50; - break; - - case SCAN_MODE: - ScanSkin(pix); - drawbox(face_top, face_bottom, face_left, face_right,1); - //drawbox(scan_region_top, scan_region_bottom, scan_region_left, scan_region_right); - drawbox((left_eye_y-5),(left_eye_y+5),(left_eye_x-5),(left_eye_x+5),0); - drawbox((right_eye_y-5),(right_eye_y+5),(right_eye_x-5),(right_eye_x+5),0); - int face_scale=instance->face.head_size; - int mouth_width=face_scale; - int mouth_height=face_scale; - // if (bozo_bit==1) drawbax((mouth_ctr_y-mouth_height),(mouth_ctr_y+mouth_height),(mouth_ctr_x-mouth_width),(mouth_ctr_x+mouth_width)); - filter(&instance->face, bank); - break; - } - - //fprintf(stderr, "Lobsters found...\n"); - - -} - - - - -void ScanSkin(PixMapHandle p) -{ - int y,x,j,k; - int right_eye_x_sum,right_eye_y_sum,left_eye_x_sum,left_eye_y_sum,right_eye_pt_count,left_eye_pt_count; - right_eye_x_sum=right_eye_y_sum=left_eye_x_sum=left_eye_y_sum=right_eye_pt_count=left_eye_pt_count=0; - long R,G,B,sum_x,sum_y; - int count; - double Y,E,S,lum; - double min_lum_mouth=766; - double min_lum_left=766; - double min_lum_right=766; - UInt32 color; - UInt32 * baseAddr; - int max_horz=0; - int max_vert=0; - sum_x=sum_y=count=0; - int horz_count[480]; - int vert_count[640]; - - - - memset(horz_count,0,480*sizeof(int)); - memset(vert_count,0,640*sizeof(int)); - - if (eye_search_frame_count<NUM_FRAMES_EYE_SEARCH) eye_search_frame_count++; - else if (eye_search_frame_count==NUM_FRAMES_EYE_SEARCH && bozo_bit==0) - { - bozo_bit=1; - //fprintf(stderr, "GOOD You flipped the bozo bit (to good)\n"); - } - - SetEyeSearchRegions(); - - - for (y = scan_region_top; y < scan_region_bottom; y++) // change this to only calculate in bounding box - { - baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p)); - for (x = scan_region_left; x < scan_region_right; x++) - { - color=baseAddr[x]; - R = (color & 0x00FF0000) >> 16; - G = (color & 0x0000FF00) >> 8; - B = (color & 0x000000FF) >> 0; - Y=.253*R+.684*G+.063*B; - E=.5*R-.5*G; - S=.25*R+.25*G-.5*B; - lum=R+G+B; - - if (y>left_eye_top && y<left_eye_bottom) - { - if (x > left_eye_left && x<left_eye_right) - { - if (lum < lum_thresh) { - left_eye_x_sum+=x; - left_eye_y_sum+=y; - left_eye_pt_count++; - //colorBuf[y][x]=0x0000FF00; - } - } - } - if (y>right_eye_top && y<right_eye_bottom) - { - if (x > right_eye_left && x < right_eye_right) - { - if (lum < lum_thresh) { - right_eye_x_sum+=x; - right_eye_y_sum+=y; - right_eye_pt_count++; - //colorBuf[y][x]=0x0000FF00; - } - } - } - - if(SkinDetect(Y,E,S)) - { - sum_x+=x; - sum_y+=y; - count++; - - ++horz_count[y]; - ++vert_count[x]; - - if (horz_count[y]>max_horz) max_horz=horz_count[y]; - if (vert_count[x]>max_vert) max_vert=vert_count[x]; - - //colorBuf[y][x]=0x00FF0000; - } - - } - } - - - left_eye_x=left_eye_x_sum/left_eye_pt_count; - left_eye_y=left_eye_y_sum/left_eye_pt_count; - right_eye_x=right_eye_x_sum/right_eye_pt_count; - right_eye_y=right_eye_y_sum/right_eye_pt_count; - - - - int width=right_eye_x-left_eye_x; - int height=right_eye_y-left_eye_y; - double face_ang; - if (width!=0) face_ang=atan((double)height/width); - else face_ang=0; - face_ang=face_ang*180/pi; - //fprintf(stderr,"face angle: %f \n",face_ang); - - if ((left_eye_pt_count<5 || right_eye_pt_count<5 || width==0 || face_ang > 30 || face_ang < -30 - || left_eye_y < (face_top+.15*(face_bottom-face_top)) - || right_eye_y < (face_top+.15*(face_bottom-face_top))) - && bozo_bit==1){ - eye_unconfidence++; - left_eye_x=old_left_eye_x; - left_eye_y=old_left_eye_y; - right_eye_x=old_right_eye_x; - right_eye_y=old_right_eye_y; - } - else { - eye_unconfidence=0; - old_left_eye_x=left_eye_x; - old_left_eye_y=left_eye_y; - old_right_eye_x=right_eye_x; - old_right_eye_y=right_eye_y; - } - - - if (eye_unconfidence==EYE_UNCONFIDENCE_LIMIT){ - bozo_bit=0; - eye_search_frame_count=0; - //fprintf(stderr, "Recalibrating eyes\n"); - } - - if ((last_eye_count_left-left_eye_pt_count> BLINK_THRESHOLD) && eye_unconfidence==0) - { - left_eye_blink_count=BLINK_LENGTH; - } - if (left_eye_blink_count>0){ - instance->face.left_eye_open=0; - left_eye_blink_count--; - } - else instance->face.left_eye_open=1; - - if ((last_eye_count_right-right_eye_pt_count> BLINK_THRESHOLD) && eye_unconfidence==0) - { - right_eye_blink_count=BLINK_LENGTH; - } - if (right_eye_blink_count>0){ - instance->face.right_eye_open=0; - right_eye_blink_count--; - } - else instance->face.right_eye_open=1; - - if (instance->face.right_eye_open==0) instance->face.left_eye_open=0; - if (instance->face.left_eye_open==0) instance->face.right_eye_open=0; - - last_eye_count_left=left_eye_pt_count; - last_eye_count_right=right_eye_pt_count; - - float x_shift=0; - if (width!=0) x_shift= (float)height/(float)width; // --> note dependence on earlier data here - - -if (bozo_bit==1){ - int mouth_search_start_y=face_top+(.6*(face_bottom-face_top)); - int mouth_search_end_y=face_bottom; - int mouth_search_start_x=(left_eye_x+right_eye_x)/2 + (-x_shift*(mouth_search_start_y-((right_eye_y+left_eye_y)/2))) ; - -for (y=mouth_search_start_y; y < mouth_search_end_y; y++) -{ - x=mouth_search_start_x+((y - mouth_search_start_y)*(-x_shift)); - baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p)); - //colorBuf[y][x] = 0x0000FF00; - color=baseAddr[x]; - R = (color & 0x00FF0000) >> 16; - G = (color & 0x0000FF00) >> 8; - B = (color & 0x000000FF) >> 0; - lum=R+G+B; - - if (lum<min_lum_mouth) { - min_lum_mouth=lum; - mouth_ctr_x=x; - mouth_ctr_y=y; - } -} - - mouth_size=(face_right-face_left)*100/640; - mouth_left=mouth_ctr_x-mouth_size; - if (mouth_left < face_left) mouth_left=face_left; - mouth_right=mouth_ctr_x+mouth_size; - if (mouth_right > face_right) mouth_right=face_right; - mouth_top=mouth_ctr_y-mouth_size; - if (mouth_top < face_top) mouth_top=face_top; - mouth_bottom=mouth_ctr_y+mouth_size; - if (mouth_bottom > face_bottom) mouth_bottom=face_bottom; - - white_count=0; - - for (y=mouth_top; y< mouth_bottom; y++){ - baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p)); - for (x=mouth_left; x< mouth_right; x++){ - color=baseAddr[x]; - R = (color & 0x00FF0000) >> 16; - G = (color & 0x0000FF00) >> 8; - B = (color & 0x000000FF) >> 0; - if ((abs(R-G) < WHITE_THRESH) && (abs(G-B) < WHITE_THRESH) && (abs(R-B) < WHITE_THRESH)) - { - white_count++; - //colorBuf[y][x]=0x0000FF00; - } - } - } - - } -else white_count=10; - -// This next section finds the face region and sets the face_* parameters. - - int scan; - float thresh=.3; - scan=scan_region_left+1; - if (scan<0) scan=0; - //fprintf(stderr,"threshold value: %d boxtop value: %d \n", (max_horz), horz_count[scan_region_top]); - while(1) - { - if (vert_count[scan]>=(thresh*max_vert)) - { - face_left=scan; - break; - } - scan++; - } - - scan=scan_region_right-1; - if (scan>=640) scan=639; - while(1) - { - if (vert_count[scan]>=(thresh*max_vert)) - { - face_right=scan; - break; - } - scan--; - } - - scan=scan_region_top+1; - if (scan<0) scan=0; - while(1) - { - if (horz_count[scan]>=(thresh*max_horz)) - { - face_top=scan; - break; - } - scan++; - } - - - scan=scan_region_bottom-1; - if (scan>=480) scan=479; - while(1) - { - if (horz_count[scan]>=(thresh*max_horz)) - { - face_bottom=scan; - break; - } - scan--; - } - - // Base scan region on face region here - scan_region_left=face_left-10; - if (scan_region_left <= 0) scan_region_left=1; - scan_region_right=face_right+10; - if (scan_region_right >= 640) scan_region_right=639; - scan_region_top=face_top-10; - if (scan_region_top <= 0) scan_region_top=1; - scan_region_bottom=face_bottom+10; - if (scan_region_bottom >= 480) scan_region_bottom=479; - - - // Calculate some stats - - // face size - width=face_right-face_left; - guint8 temp=width*100/640; - instance->face.head_size=temp; - - // face location - temp=((double)100/(double)640)*(double)(face_right+face_left)/2; - instance->face.x=temp; - temp=((double)100/(double)480)*(double)(face_top+face_bottom)/2; - instance->face.y=temp; - - // face angle-Z - instance->face.head_z_rot=face_ang+50; - - // face angle-Y - int center=(face_right+face_left)/2; - int right_eye_strad=right_eye_x-center; - int left_eye_strad=center-left_eye_x; - double y_ang; - if (right_eye_strad > left_eye_strad) y_ang= (double)right_eye_strad/(double)left_eye_strad; - else y_ang=(double)left_eye_strad/(double)right_eye_strad; - y_ang=y_ang*5; - if (y_ang >= 10) y_ang=30; - if (y_ang <= 1) y_ang=1; - - if (right_eye_strad > left_eye_strad) y_ang=-y_ang; - temp = (guint8) 50 + y_ang; - instance->face.head_y_rot=temp; - - if (abs (temp-50) > 15) instance->face.head_size=head_size_old; - else head_size_old=instance->face.head_size; - - temp = (guint8) 100 * white_count / WHITE_COUNT_MAX; - if (temp > 100) temp=100; - instance->face.mouth_open = temp; - -} - - - - - - - // draw bounding box for either calibration or face - - -void SetEyeSearchRegions(void) -{ - if (bozo_bit==0) - { - left_eye_top=face_top+(.25*(face_bottom-face_top)); - left_eye_bottom=face_top+(.6*(face_bottom-face_top)); - left_eye_right=((face_left+face_right)/2); - left_eye_left=face_left+.15*(face_right-face_left); - - right_eye_top=face_top+(.25*(face_bottom-face_top)); - right_eye_bottom=face_top+(.6*(face_bottom-face_top)); - right_eye_right=face_right-.15*(face_right-face_left); - right_eye_left=((face_left+face_right)/2); - } - - if (bozo_bit==1) - { - left_eye_top=left_eye_y-20; - left_eye_bottom=left_eye_y+20; - left_eye_left=left_eye_x-20; - left_eye_right=left_eye_x+20; - - right_eye_top=right_eye_y-20; - right_eye_bottom=right_eye_y+20; - right_eye_left=right_eye_x-20; - right_eye_right=right_eye_x+20; - } -} - - -void drawbox(int top, int bottom, int left, int right, int color) -{ - int y, x, j; - - unsigned int col; - - - if (color==1) - col=0x00FFFF00; - else - col=0x00FF00FF; - - if (top<0) top =0; - if (top>=480) top=479; - if (bottom<0) bottom =0; - if (bottom>=480) bottom=479; - if (left<0) left =0; - if (left>=640) left=639; - if (right<0) right =0; - if (right>=640) right=639; - - if (color==1){ - - for (y=top; y<bottom; y++) - { - for (j=0;j<5;j++){ - colorBuf[y][left+j] = col; - colorBuf[y][right-j] = col; - } - - } - - for (x=left; x<right; x++) - { - - for (j=0;j<5;j++){ - - colorBuf[bottom-j][x] = col; - colorBuf[top+j][x] = col; - - } - - } - - - } else { - - - - for (y=top; y<bottom; y++) - { - for (x=left;x<right;x++){ - colorBuf[y][x] = col; - colorBuf[y][x] = col; - } - - } - - } -} - - - -void SkinStats (PixMapHandle p, int top, int bottom, int left, int right) -{ - double Y_sum,E_sum,S_sum; - int R,G,B; - int count=0; - Y_sum=E_sum=S_sum=0; - double Y,E,S; - UInt32 color; - int x, y; - UInt32 * baseAddr; - - for (y=top; y<bottom; y++) - { - baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p)); - for (x=left; x<right; x++) - { - count++; - color=baseAddr[x]; - - R = (color & 0x00FF0000) >> 16; - G = (color & 0x0000FF00) >> 8; - B = (color & 0x000000FF) >> 0; - Y=.253*R+.684*G+.063*B; - E=.5*R-.5*G; - S=.25*R+.25*G-.5*B; - Y_sum+=Y; - E_sum+=E; - S_sum+=S; - } - } - - Y_mean=Y_sum/count; - E_mean=E_sum/count; - S_mean=S_sum/count; - - Y_sum=E_sum=S_sum=0; - - for (y=top; y<bottom; y++) - { - baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p)); - for (x=left; x<right; x++) - { - color=baseAddr[x]; - R = (color & 0x00FF0000) >> 16; - G = (color & 0x0000FF00) >> 8; - B = (color & 0x000000FF) >> 0; - Y=.253*R+.684*G+.063*B; - E=.5*R-.5*G; - S=.25*R+.25*G-.5*B; - - Y_sum+=(Y-Y_mean)*(Y-Y_mean); - E_sum+=(E-E_mean)*(E-E_mean); - S_sum+=(S-S_mean)*(S-S_mean); - - } - } - - Y_dev=sqrt(Y_sum/(count-1)); - E_dev=sqrt(E_sum/(count-1)); - S_dev=sqrt(S_sum/(count-1)); - - //fprintf(stderr,"Y: %f, %f\n E: %f, %f\nS: %f, %f\n",Y_mean,E_mean,S_mean,Y_dev,E_dev,S_dev); - -} - -int SkinDetect(double Y, double E, double S) -{ - if (E>(E_mean-(2*E_dev)) && E<(E_mean+(2*E_dev))) return 1; - else return 0; -} -
--- a/plugins/crazychat/camproc.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* - * camproc.h - * basecame - * - * Created by CS194 on Mon Apr 26 2004. - * Copyright (c) 2004 __MyCompanyName__. All rights reserved. - * - */ - - - -//#pragma once - -#ifdef __APPLE_CC__ - #include <Carbon/Carbon.h> - -#else - #include <Carbon.h> - -#endif - -#include "cc_interface.h" -#include "filter.h" - -void Die(); -OSErr CamProc(struct input_instance *inst, filter_bank *bank); -void QueryCam (void); - -
--- a/plugins/crazychat/cc_features.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,522 +0,0 @@ -#include <assert.h> -#include <GL/gl.h> -#include <GL/glu.h> -#include "cc_interface.h" -#include "crazychat.h" - -#include "Utilities.h" -#include "QTUtilities.h" -#include "camdata.h" -#include "camproc.h" -#include "util.h" -#include <unistd.h> - - -#ifdef __APPLE_CC__ -#include <Carbon/Carbon.h> -#else -#include <Carbon.h> -#endif - -/* temporarily including for development testing */ -#include "cc_gtk_gl.h" - -/* hard coding the webcam dimensions: BAD, but we're not probing hardware yet */ - -#define WEBCAM_X 644 /* webcam's x dim */ -#define WEBCAM_Y 480 /* webcam's y dim */ - -/* default webcam timer callback delay */ -#define WEBCAM_CALLBACK_DELAY 40 /* in ms */ - -int x_click, y_click; -int mode_change=0; - -struct input_instance input_data; - -/* move this to input_instance eventually */ -/* -UInt32 colorBuf[WEBCAM_Y][WEBCAM_X]; -*/ -unsigned int (*colorBuf)[640]; -int detection_mode=0; -int draw_mode=0; //0=pixels, 1=face -int easter_count; -static void *kickstart(void *data); -static void *facefind(void *data); - -/** - * Resets the OpenGL viewport stuff on widget reconfiguration (resize, - * reposition) - * @param widget widget that got reconfigured - * @param event the configuration event - * @param data unused - * @return TRUE ( i don't know what FALSE would do ) - */ -static gboolean config_wrapper(GtkWidget *widget, GdkEventConfigure *event, - void *data); - -/** - * Debug features test. Draws pixels directly to the frame buffer. - * @param widget widget that we're drawing - * @param event the draw event - * @param data array of pixels - * @return DUNNO - */ -static gboolean mydraw(GtkWidget *widget, GdkEventExpose *event, - void *data); - -/** - * Periodically querys the webcam for more data. - * @param instance webcam input instance data - * @return TRUE to stop other handler, FALSE to continue - */ -static gboolean webcam_cb(struct input_instance *instance); - -/** - * Init window code, adding our click callback. - * @param widget the window we clicked in - * @param instance webcam input instance data - */ -static void init_cb(GtkWidget *widget, struct input_instance *instance); - -/** - * Click callback - * @param widget the window we clicked in - * @param event the button click event structure - * @param instance input instance data - * @return TRUE to stop other handler, FALSE to continue - */ -static gboolean click_cb(GtkWidget *widget, GdkEventButton *event, - struct input_instance *instance); - -/** - * Button callback - * @param button the button we clicked on - * @param instance input instance data - */ -static void button_cb(GtkWidget *button, struct input_instance *instance); - -/** - * Destroy callback. Called when the input processing window is destroyed. - * @param widget the window we clicked in - * @param cc crazychat global data structure - */ -static void destroy_cb(GtkWidget *widget, struct crazychat *cc); - -/** - * Set feature material. - * @param entry model selector combo box entry - * @param material pointer to material we're setting - */ -static void material_set(GtkWidget *entry, guint8 *material); - -struct input_instance *init_input(struct crazychat *cc) -{ - - pthread_t userinput_t; // should we put this in a nicer wrapper? - struct draw_info *info; - struct input_instance *instance; - info = (struct draw_info*)malloc(sizeof(*info)); - assert(info); - memset(info, 0, sizeof(*info)); - info->timeout = TRUE; - info->delay_ms = DEFAULT_FRAME_DELAY; - info->data = &input_data; - instance = (struct input_instance*)info->data; - memset(instance, 0, sizeof(*instance)); - instance->output.features = &instance->face; - EnterMovies(); - filter_bank *bank; - bank = Filter_Initialize(); - assert(CamProc(instance, bank) == noErr); // change this prototype-> no windows - instance->timer_id = g_timeout_add(WEBCAM_CALLBACK_DELAY, - (GSourceFunc)webcam_cb, instance); -// THREAD_CREATE(&userinput_t, facefind, instance); // is this being created correctly? - struct window_box ret; - cc_new_gl_window(init_cb, config_wrapper, mydraw, - info, &ret); - instance->widget = ret.window; - gtk_window_set_title(GTK_WINDOW(ret.window), "Local User"); - instance->box = ret.vbox; - GtkWidget *label = gtk_label_new("Click your face"); - instance->label = label; - gtk_box_pack_start(GTK_BOX(ret.vbox), label, FALSE, FALSE, 0); - gtk_box_reorder_child(GTK_BOX(ret.vbox), label, 0); - gtk_widget_show(label); - GtkWidget *button = gtk_button_new_with_label("Confirm"); - gtk_box_pack_start(GTK_BOX(ret.vbox), button, FALSE, FALSE, 0); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(button_cb), - instance); - instance->button = button; - gtk_widget_show(button); - - GtkWidget *hbox = gtk_hbox_new(TRUE, 0); - gtk_box_pack_start(GTK_BOX(ret.vbox), hbox, FALSE, FALSE, 0); - gtk_widget_show(hbox); - - GtkWidget *model_combo = gtk_combo_new(); - GList *glist = NULL; - - glist = g_list_append(glist, "Dog"); - glist = g_list_append(glist, "Shark"); - gtk_combo_set_popdown_strings(GTK_COMBO(model_combo), glist); - g_list_free(glist); - //gtk_combo_box_set_column_span_column(GTK_COMBO(model_combo), - // 10); - gtk_box_pack_start(GTK_BOX(hbox), model_combo, TRUE, TRUE, 0); - gtk_widget_show(model_combo); - instance->model = model_combo; - - GtkWidget *head_material_combo = gtk_combo_new(); - glist = NULL; - glist = g_list_append(glist, "Red"); - glist = g_list_append(glist, "Dark Brown"); - glist = g_list_append(glist, "Light Brown"); - glist = g_list_append(glist, "White"); - glist = g_list_append(glist, "Green"); - glist = g_list_append(glist, "Black"); - gtk_combo_set_popdown_strings(GTK_COMBO(head_material_combo), glist); - g_list_free(glist); - //gtk_combo_box_set_column_span_column(GTK_COMBO(head_material_combo), - // 10); - gtk_box_pack_start(GTK_BOX(hbox), head_material_combo, TRUE, TRUE, 0); - gtk_widget_show(head_material_combo); - instance->head = head_material_combo; - - GtkWidget *appendage_material_combo = gtk_combo_new(); - glist = NULL; - glist = g_list_append(glist, "Red"); - glist = g_list_append(glist, "Dark Brown"); - glist = g_list_append(glist, "Light Brown"); - glist = g_list_append(glist, "White"); - glist = g_list_append(glist, "Green"); - glist = g_list_append(glist, "Black"); - gtk_combo_set_popdown_strings(GTK_COMBO(appendage_material_combo), - glist); - g_list_free(glist); - //gtk_combo_box_set_column_span_column(GTK_COMBO(appendage_material_combo), 10); - gtk_box_pack_start(GTK_BOX(hbox), appendage_material_combo, - TRUE, TRUE, 0); - gtk_widget_show(appendage_material_combo); - instance->appendage = appendage_material_combo; - - hbox = gtk_hbox_new(TRUE, 0); - gtk_box_pack_start(GTK_BOX(ret.vbox), hbox, FALSE, FALSE, 0); - gtk_widget_show(hbox); - - GtkWidget *lids_material_combo = gtk_combo_new(); - glist = NULL; - glist = g_list_append(glist, "Red"); - glist = g_list_append(glist, "Dark Brown"); - glist = g_list_append(glist, "Light Brown"); - glist = g_list_append(glist, "White"); - glist = g_list_append(glist, "Green"); - glist = g_list_append(glist, "Black"); - gtk_combo_set_popdown_strings(GTK_COMBO(lids_material_combo), glist); - g_list_free(glist); - //gtk_combo_box_set_column_span_column(GTK_COMBO(lids_material_combo), 10); - gtk_box_pack_start(GTK_BOX(hbox), lids_material_combo, TRUE, TRUE, 0); - gtk_widget_show(lids_material_combo); - instance->lid = lids_material_combo; - - GtkWidget *left_iris_material_combo = gtk_combo_new(); - glist = NULL; - glist = g_list_append(glist, "Red"); - glist = g_list_append(glist, "Dark Brown"); - glist = g_list_append(glist, "Light Brown"); - glist = g_list_append(glist, "White"); - glist = g_list_append(glist, "Green"); - glist = g_list_append(glist, "Black"); - gtk_combo_set_popdown_strings(GTK_COMBO(left_iris_material_combo), - glist); - g_list_free(glist); - //gtk_combo_box_set_column_span_column(GTK_COMBO(left_iris_material_combo), 10); - gtk_box_pack_start(GTK_BOX(hbox), left_iris_material_combo, - TRUE, TRUE, 0); - gtk_widget_show(left_iris_material_combo); - instance->left_iris = left_iris_material_combo; - - /* - GtkWidget *right_iris_material_combo = gtk_combo_new(); - glist = NULL; - glist = g_list_append(glist, "Red"); - glist = g_list_append(glist, "Dark Brown"); - glist = g_list_append(glist, "Light Brown"); - glist = g_list_append(glist, "White"); - glist = g_list_append(glist, "Green"); - glist = g_list_append(glist, "Black"); - gtk_combo_set_popdown_strings(GTK_COMBO(right_iris_material_combo), - glist); - g_list_free(glist); - //gtk_combo_box_set_column_span_column(GTK_COMBO(right_iris_material_combo), 10); - gtk_box_pack_start(GTK_BOX(hbox), right_iris_material_combo, - TRUE, TRUE, 0); - gtk_widget_show(right_iris_material_combo); - instance->right_iris = right_iris_material_combo; -*/ - gtk_widget_add_events(ret.draw_area, GDK_BUTTON_PRESS_MASK); - g_signal_connect(G_OBJECT(ret.draw_area), "button_press_event", - G_CALLBACK(click_cb), instance); - g_signal_connect(G_OBJECT(ret.window), "destroy", - G_CALLBACK(destroy_cb), cc); -// gtk_widget_set_size_request(window, 640, 480); - gtk_window_set_default_size(GTK_WINDOW(ret.window),320,300); - - - GdkGeometry hints; - hints.max_width = 640; - hints.max_height = 480; - - gtk_window_set_geometry_hints (GTK_WINDOW(ret.window), - NULL, - &hints, - GDK_HINT_MAX_SIZE); - gtk_widget_show(ret.window); - return instance; -} - -static gboolean webcam_cb(struct input_instance *instance) -{ - assert(instance); - QueryCam(); - return TRUE; -} - -static void *facefind(void *data) -{ - fprintf(stderr, "waiting\n"); - getchar(); - fprintf(stderr,"got you"); - detection_mode=1; - return; -} - -void destroy_input(struct input_instance *instance) -{ - extern filter_bank *bank; - assert(instance); - Filter_Destroy(bank); - g_source_remove(instance->timer_id); - Die(); - ExitMovies(); -} - -static gboolean config_wrapper(GtkWidget *widget, GdkEventConfigure *event, - void *data) -{ - - - GdkGLContext *glcontext = gtk_widget_get_gl_context(widget); - GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget); - - GLfloat w = widget->allocation.width; - GLfloat h = widget->allocation.height; - GLfloat aspect; - -// fprintf(stderr,"Homicide %f %f %d\n", w,h,draw_mode); - - if (draw_mode==1){ -// fprintf(stderr, "Bad place to be- actually not so bad\n"); - return configure(widget, event, data); - } - - /*** OpenGL BEGIN ***/ - if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) - return FALSE; - - -/* Undo all of the Model lighting here*/ - -// glDisable(GL_LIGHTING); - glDisable(GL_DEPTH_TEST); -// glDisable(GL_CULL_FACE); -// glDisable(GL_LIGHT0); -// glClearColor(1.0f, 1.0f, 1.0f, 1.0f); -/* */ - - - glViewport(0,-(h/14),w*2,h*2); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(0,0,640,640); - glRasterPos2i(0,0); - glPixelZoom(-w/(1*640),(-h/(1*480))); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - - - - gdk_gl_drawable_gl_end(gldrawable); - /*** OpenGL END ***/ - - return TRUE; -} - -static gboolean mydraw(GtkWidget *widget, GdkEventExpose *event, - void *data) -{ - GdkGLContext *glcontext = gtk_widget_get_gl_context (widget); - GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget); - struct input_instance *instance = (struct input_instance*)data; - unsigned int *boo; - struct cc_features *features = &instance->face; - - char *string = gtk_entry_get_text(GTK_COMBO(instance->model)->entry); - if (!strcmp(string, "Dog")) { - features->kind = 0; - } else if (!strcmp(string, "Shark")) { - features->kind = 1; - } - - material_set(GTK_ENTRY(GTK_COMBO(instance->head)->entry), - &features->head_color); - material_set(GTK_ENTRY(GTK_COMBO(instance->appendage)->entry), - &features->appendage_color); - material_set(GTK_ENTRY(GTK_COMBO(instance->lid)->entry), - &features->lid_color); - material_set(GTK_ENTRY(GTK_COMBO(instance->left_iris)->entry), - &features->left_iris_color); - material_set(GTK_ENTRY(GTK_COMBO(instance->left_iris)->entry), - &features->right_iris_color); - - if (easter_count>0) { - easter_count--; - } else { - instance->face.mode = 0; - } - - if (mode_change>0){ - mode_change--; - config_wrapper(widget, event, data); - } - - if (draw_mode==1){ - instance->output.my_output=LOCAL; - return draw(widget,event,&instance->output); - } - - - boo = (unsigned int*)colorBuf; - - assert(instance); - assert(gtk_widget_is_gl_capable(widget)); - - /*** OpenGL BEGIN ***/ - - if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) { - // fprintf(stderr, "We're fucked this time.\n"); - return FALSE; - } - - glClearColor(0.0, 0.0, 0.0, 0.0); - glClear(GL_COLOR_BUFFER_BIT); - - glDrawPixels(WEBCAM_X, WEBCAM_Y-70, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, boo); - - if (gdk_gl_drawable_is_double_buffered(gldrawable)) - gdk_gl_drawable_swap_buffers(gldrawable); - else - glFlush(); - - gdk_gl_drawable_gl_end(gldrawable); - - /*** OpenGL END ***/ - - return TRUE; -} - -static void init_cb(GtkWidget *widget, struct input_instance *instance) -{ - setupDrawlists(LOCAL); -// fprintf(stderr,"init_cb\n"); -} - -static gboolean click_cb(GtkWidget *widget, GdkEventButton *event, - struct input_instance *instance) -{ - - GLfloat w = widget->allocation.width; - GLfloat h = widget->allocation.height; - GLfloat aspect; - - if (draw_mode==1) { - switch (event->button) { - case 1: - Debug("F U!\n"); - instance->face.mode = 1; - easter_count = 5; - break; - case 3: - Debug("should never get here\n"); - instance->face.mode = 2; - easter_count = 5; - break; - default: - instance->face.mode = 0; - break; - } - return FALSE; - } - - x_click=(event->x*(640/w)); - x_click=640-x_click; - y_click=(event->y-(h/14))*(480/(h-(h/14))); - detection_mode=1; - //Debug("@@@ x:%d y:%d\n", x_click, y_click); - - gtk_label_set_text(instance->label, - "Put on the box, then press confirm."); - if (x_click <= 10) x_click=10; - if (x_click >= WEBCAM_X-10) x_click=WEBCAM_X-60; - if (y_click <= 10) y_click=10; - if (y_click >= WEBCAM_Y-10) y_click=WEBCAM_Y-60; - - return FALSE; -} - -static void button_cb(GtkWidget *button, struct input_instance *instance) -{ - if (!draw_mode) { /* transition to face mode */ - if (detection_mode == 0) { /* ignore confirm if no calibrate */ - return; - } - setupLighting(instance->widget); - mode_change = 1; - gtk_button_set_label(GTK_BUTTON(button), "Calibrate"); - gtk_label_set_label(instance->label, - "If things get too crazy, click Calibrate."); - } else { /* transition to calibration mode */ - gtk_label_set_label(instance->label, "Click your face"); - mode_change = 2; - gtk_button_set_label(GTK_BUTTON(button), "Confirm"); - } - draw_mode = !draw_mode; -} - -static void destroy_cb(GtkWidget *widget, struct crazychat *cc) -{ - cc->features_state = 0; - destroy_input(cc->input_data); - cc->input_data = NULL; -} - -static void material_set(GtkWidget *entry, guint8 *material) -{ - char *string = gtk_entry_get_text(GTK_ENTRY(entry)); - if (!strcmp(string, "Red")) { - *material = 0; - } else if (!strcmp(string, "Dark Brown")) { - *material = 1; - } else if (!strcmp(string, "Light Brown")) { - *material = 2; - } else if (!strcmp(string, "White")) { - *material = 3; - } else if (!strcmp(string, "Green")) { - *material = 4; - } else if (!strcmp(string, "Black")) { - *material = 5; - } -}
--- a/plugins/crazychat/cc_gaim_plugin.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,482 +0,0 @@ -#include <stdio.h> -#include <assert.h> -#include <internal.h> -#include <plugin.h> -#include <gtkplugin.h> -#include <gtkblist.h> -#include <gtkutils.h> -#include <connection.h> -#include <conversation.h> -#include <network.h> -#include <gtk/gtkgl.h> -#include <GL/gl.h> -#include <GL/glu.h> -#include "crazychat.h" -#include "cc_network.h" -#include "cc_interface.h" -#include "cc_gtk_gl.h" -#include "util.h" - -/* --- begin type and global variable definitions --- */ - -static struct crazychat cc_info; - -/* --- begin function declarations --- */ - -/** - * Called by gaim plugin to start CrazyChat - * @param cc the crazychat struct - */ -static void cc_init(struct crazychat *cc); - -/** - * Called by gaim plugin to destroy CrazyChat - * @param cc the crazychat struct - */ -static void cc_destroy(struct crazychat *cc); - - -/** - * Buddy menu drawing callback. Adds a CrazyChat menuitem. - * @param menu the buddy menu widget - * @param b the buddy whose menu this is - */ -static gboolean cc_buddy_menu(GtkWidget *menu, GaimBuddy *b); - -/** - * Buddy menu callback. Initiates the CrazyChat session. - * @param item the gtk buddy menu item - * @param b the buddy whose menu the item was in - */ -static void cc_menu_cb(GtkMenuItem *item, GaimBuddy *b); - -/** - * IM callback. Handles receiving a CrazyChat session request. - * @param account the account we received the IM on - * @param sender the buddy who we received the message from - * @param message the message we received - * @param flags IM flags - * @param data user data - */ -static gboolean receive_im_cb(GaimAccount *account, char **sender, - char **message, int *flags, void *data); - -/** - * Displaying IM callback. Drops CrazyChat messages from IM window. - * @param account the account we are displaying the IM on - * @param conv the conversation we are displaying the IM on - * @param message the message we are displaying - * @param data user data - */ -static gboolean display_im_cb(GaimAccount *account, GaimConversation *conv, - char **message, void *data); - -/** - * Callback for CrazyChat plugin configuration frame - * @param plugin the plugin data - * @return the configuration frame - */ -static GtkWidget *get_config_frame(GaimPlugin *plugin); - -/** - * TCP port callback. Changes the port used to listen for new CC sessions - * @param spin the spinner button whose value changed - * @param data user data - */ -static void tcp_port_cb(GtkSpinButton *spin, struct crazychat *cc); - -/** - * UDP port callback. Changes the port used to send/recv CC session frames - * @param spin the spinner button whose value changed - * @param data user data - */ -static void udp_port_cb(GtkSpinButton *spin, struct crazychat *cc); - -/** - * Features enabling/disabling callback. Initializes the input processing - * or shuts it down. - * @param data user data - */ -static void features_enable_cb(struct crazychat *cc); - -/** - * User signed on callback. Now we have a buddy list to connect a signal - * handler to. - * @param gc the gaim connection we are signed on - * @param plugin our plugin struct - */ -static gboolean cc_signed_on(GaimConnection *gc, void *plugin); - -/** - * Plugin loading callback. If a buddy list exists, connect our buddy menu - * drawing callback to the signal handler, otherwise, connect a signed on - * signal handler so we know when we get a buddy list. - * @param plugin our plugin struct - */ -static gboolean plugin_load(GaimPlugin *plugin); - -/** - * Plugin unloading callback. Disconnect all handlers and free data. - * @param plugin our plugin struct - */ -static gboolean plugin_unload(GaimPlugin *plugin); - - -/* --- end function declarations --- */ - - -#define CRAZYCHAT_PLUGIN_ID "gtk-crazychat" - -static GaimGtkPluginUiInfo ui_info = { - get_config_frame /**< get_config_frame */ -}; - -static GaimPluginInfo info = { - 2, /**< api_version */ - GAIM_PLUGIN_STANDARD, /**< type */ - GAIM_GTK_PLUGIN_TYPE, /**< ui_requirement */ - 0, /**< flags */ - NULL, /**< dependencies */ - GAIM_PRIORITY_DEFAULT, /**< priority */ - - CRAZYCHAT_PLUGIN_ID, /**< id */ - N_("Crazychat"), /**< name */ - VERSION, /**< version */ - /** summary */ - N_("Plugin to establish a Crazychat session."), - /** description */ - N_("Uses Gaim to obtain buddy ips to connect for a Crazychat session"), - "\n" - "William Chan <chanman@stanford.edu>\n" - "Ian Spiro <ispiro@stanford.edu>\n" - "Charlie Stockman<stockman@stanford.edu>\n" - "Steve Yelderman<scy@stanford.edu>", /**< author */ - GAIM_WEBSITE, /**< homepage */ - - plugin_load, /**< load */ - plugin_unload, /**< unload */ - NULL, /**< destroy */ - - &ui_info, /**< ui_info */ - &cc_info /**< extra_info */ -}; - -/* --- end plugin struct definition --- */ - -static void cc_init(struct crazychat *cc) -{ - /* initialize main crazychat thread */ - - assert(cc); - memset(cc, 0, sizeof(*cc)); - - /* initialize network configuration */ - cc->tcp_port = DEFAULT_CC_PORT; - cc->udp_port = DEFAULT_CC_PORT; - - /* disable input subsystem */ - //cc->features_state = 0; - - /* initialize input subsystem */ - cc->features_state = 1; - cc->input_data = init_input(cc); -} - -static void cc_destroy(struct crazychat *cc) -{ - assert(cc); - - if (cc->features_state) { - destroy_input(cc->input_data); - } - memset(cc, 0, sizeof(*cc)); -} - -static gboolean cc_buddy_menu(GtkWidget *menu, GaimBuddy *b) -{ - GtkWidget *menuitem; - - menuitem = gtk_menu_item_new_with_mnemonic("CrazyChat"); - g_signal_connect(G_OBJECT(menuitem), "activate", - G_CALLBACK(cc_menu_cb), b); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - return FALSE; -} - -static void cc_menu_cb(GtkMenuItem *item, GaimBuddy *b) -{ - assert(item); - assert(b); - - /* send the invite */ - cc_net_send_invite(&cc_info, b->name, b->account); -} - -static gboolean receive_im_cb(GaimAccount *account, char **sender, - char **message, int *flags, void *data) -{ - struct crazychat *cc; - - cc = (struct crazychat*)data; - assert(cc); - if (!strncmp(*message, CRAZYCHAT_INVITE_CODE, - strlen(CRAZYCHAT_INVITE_CODE))) { - Debug(*message); - char *split = strchr(*message, '!'); - assert(split); - *split = 0; - split++; - cc_net_recv_invite(account, cc, *sender, - &(*message)[strlen(CRAZYCHAT_INVITE_CODE)], - split); - return TRUE; - } else if (!strncmp(*message, CRAZYCHAT_ACCEPT_CODE, - strlen(CRAZYCHAT_ACCEPT_CODE))) { - cc_net_recv_accept(account, cc, *sender, - &(*message)[strlen(CRAZYCHAT_ACCEPT_CODE)]); - return TRUE; - } else if (!strncmp(*message, CRAZYCHAT_READY_CODE, - strlen(CRAZYCHAT_READY_CODE))) { - cc_net_recv_ready(account, cc, *sender); - return TRUE; - } - - return FALSE; -} - -static gboolean display_im_cb(GaimAccount *account, GaimConversation *conv, - char **message, void *data) -{ - struct crazychat *cc; - - cc = (struct crazychat*)data; - assert(cc); - if (!strncmp(*message, CRAZYCHAT_INVITE_CODE, - strlen(CRAZYCHAT_INVITE_CODE))) { - return TRUE; - } else if (!strncmp(*message, CRAZYCHAT_ACCEPT_CODE, - strlen(CRAZYCHAT_ACCEPT_CODE))) { - return TRUE; - } else if (!strncmp(*message, CRAZYCHAT_READY_CODE, - strlen(CRAZYCHAT_READY_CODE))) { - return TRUE; - } - - return FALSE; -} - -static GtkWidget *get_config_frame(GaimPlugin *plugin) -{ - GtkWidget *ret; - GtkWidget *frame; - GtkWidget *vbox, *hbox; - GtkWidget *drawing_area; - GtkWidget *label; - GtkAdjustment *adj; - GtkWidget *spinner; - GtkWidget *button, *button1, *button2; - GSList *group; - struct draw_info *info; - struct crazychat *cc; - - cc = (struct crazychat*)plugin->info->extra_info; - assert(cc); - - /* create widgets */ - - /* creating the config frame */ - ret = gtk_vbox_new(FALSE, 18); - gtk_container_set_border_width(GTK_CONTAINER(ret), 12); - - /* make the network configuration frame */ - frame = gaim_gtk_make_frame(ret, _("Network Configuration")); - gtk_widget_show(frame); - - /* add boxes for packing purposes */ - vbox = gtk_vbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(frame), vbox, TRUE, TRUE, 0); - gtk_widget_show(vbox); - - /* add widgets to row 1 */ - hbox = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); - gtk_widget_show(hbox); - label = gtk_label_new(_("TCP port")); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 15); - gtk_widget_show(label); - adj = (GtkAdjustment*)gtk_adjustment_new(DEFAULT_CC_PORT, 1, - G_MAXUSHORT, 1, 1000, 0); - spinner = gtk_spin_button_new(adj, 1, 0); - g_signal_connect(G_OBJECT(spinner), "value_changed", - G_CALLBACK(tcp_port_cb), cc); - gtk_box_pack_start(GTK_BOX(hbox), spinner, FALSE, FALSE, 0); - gtk_widget_show(spinner); - label = gtk_label_new(_("UDP port")); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 15); - gtk_widget_show(label); - adj = (GtkAdjustment*)gtk_adjustment_new(DEFAULT_CC_PORT, 1, - G_MAXUSHORT, 1, 1000, 0); - spinner = gtk_spin_button_new(adj, 1, 0); - g_signal_connect(G_OBJECT(spinner), "value_changed", - G_CALLBACK(udp_port_cb), cc); - gtk_box_pack_start(GTK_BOX(hbox), spinner, FALSE, FALSE, 0); - gtk_widget_show(spinner); - - /* make the feature configuration frame */ - frame = gaim_gtk_make_frame(ret, _("Feature Calibration")); - gtk_widget_show(frame); - - /* add hbox for packing purposes */ - hbox = gtk_hbox_new(TRUE, 40); - gtk_box_pack_start(GTK_BOX(frame), hbox, TRUE, TRUE, 0); - gtk_widget_show(hbox); - - /* add feature calibration options */ - - /* add vbox for packing purposes */ - vbox = gtk_vbox_new(TRUE, 0); - gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0); - gtk_widget_show(vbox); - - /* add enabled / disabled */ - button1 = gtk_radio_button_new_with_label(NULL, _("Enabled")); - gtk_box_pack_start(GTK_BOX(vbox), button1, TRUE, TRUE, 0); - gtk_widget_show(button1); - - group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button1)); - button2 = gtk_radio_button_new_with_label(group, _("Disabled")); - gtk_box_pack_start(GTK_BOX(vbox), button2, TRUE, TRUE, 0); - gtk_widget_show(button2); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1), - cc->features_state); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button2), - !cc->features_state); - g_signal_connect_swapped(G_OBJECT(button1), "toggled", - G_CALLBACK(features_enable_cb), cc); - - /* add vbox for packing purposes */ - vbox = gtk_vbox_new(TRUE, 0); - gtk_box_pack_end(GTK_BOX(hbox), vbox, TRUE, TRUE, 0); - gtk_widget_show(vbox); - - /* add calibrate button */ - button = gtk_button_new_with_label("Calibrate"); - gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, FALSE, 0); - gtk_widget_show(button); - - gtk_widget_show(ret); - - return ret; -} - -static void tcp_port_cb(GtkSpinButton *spin, struct crazychat *cc) -{ - assert(spin); - assert(cc); - cc->tcp_port = gtk_spin_button_get_value_as_int(spin); - Debug("New tcp port: %d\n", cc->tcp_port); -} - -static void udp_port_cb(GtkSpinButton *spin, struct crazychat *cc) -{ - assert(spin); - assert(cc); - cc->udp_port = gtk_spin_button_get_value_as_int(spin); - Debug("New udp port: %d\n", cc->udp_port); -} - -static void features_enable_cb(struct crazychat *cc) -{ - Debug("Changing features state\n"); - cc->features_state = !cc->features_state; - if (cc->features_state) { - cc->input_data = init_input(cc); - } else { - if (cc->input_data) { - gtk_widget_destroy(cc->input_data->widget); - } - } -} - -static gboolean cc_signed_on(GaimConnection *gc, void *plugin) -{ - struct crazychat *extra; - void *conv_handle; - - assert(plugin); - extra = (struct crazychat*)((GaimPlugin*)plugin)->info->extra_info; - gaim_signal_disconnect - (gaim_connections_get_handle(), "signed-on", - plugin, GAIM_CALLBACK(cc_signed_on)); - gaim_signal_connect(GAIM_GTK_BLIST - (gaim_get_blist()), - "drawing-menu", plugin, - GAIM_CALLBACK(cc_buddy_menu), NULL); - conv_handle = gaim_conversations_get_handle(); - gaim_signal_connect(conv_handle, "received-im-msg", plugin, - GAIM_CALLBACK(receive_im_cb), extra); - gaim_signal_connect(conv_handle, "displaying-im-msg", plugin, - GAIM_CALLBACK(display_im_cb), extra); - return FALSE; -} - -static gboolean plugin_load(GaimPlugin *plugin) -{ - GaimBuddyList *buddy_list; - void *conv_handle; - - if (cc_init_gtk_gl()) - return FALSE; - - cc_init(&cc_info); - buddy_list = gaim_get_blist(); - if (buddy_list) { - gaim_signal_connect(GAIM_GTK_BLIST - (buddy_list), - "drawing-menu", plugin, - GAIM_CALLBACK(cc_buddy_menu), NULL); - conv_handle = gaim_conversations_get_handle(); - gaim_signal_connect(conv_handle, "received-im-msg", plugin, - GAIM_CALLBACK(receive_im_cb), &cc_info); - gaim_signal_connect(conv_handle, "displaying-im-msg", plugin, - GAIM_CALLBACK(display_im_cb), &cc_info); - } else { - gaim_signal_connect - (gaim_connections_get_handle(), "signed-on", - plugin, GAIM_CALLBACK(cc_signed_on), plugin); - } - - Debug("CrazyChat plugin loaded.\n"); - - return TRUE; -} - -static gboolean plugin_unload(GaimPlugin *plugin) -{ - void *conv_handle; - struct crazychat *extra; - assert(plugin); - extra = (struct crazychat*) plugin->info->extra_info; - cc_destroy(extra); - conv_handle = gaim_conversations_get_handle(); - gaim_signal_disconnect(GAIM_GTK_BLIST - (gaim_get_blist()), - "drawing-menu", plugin, - GAIM_CALLBACK(cc_buddy_menu)); - gaim_signal_disconnect(conv_handle, "received-im", plugin, - GAIM_CALLBACK(receive_im_cb)); - gaim_signal_disconnect(conv_handle, "displaying-im-msg", plugin, - GAIM_CALLBACK(display_im_cb)); - Debug("CrazyChat plugin unloaded.\n"); - return TRUE; -} - -static void init_plugin(GaimPlugin *plugin) -{ - gtk_gl_init(NULL, NULL); - memset(&cc_info, 0, sizeof(cc_info)); - Debug("CrazyChat plugin initialized\n"); -} - -GAIM_INIT_PLUGIN(crazychat, init_plugin, info)
--- a/plugins/crazychat/cc_gtk_gl.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,288 +0,0 @@ -#include <assert.h> -#include <stdio.h> -#include <GL/gl.h> -#include <GL/glu.h> -#include "cc_gtk_gl.h" -#include "util.h" - -static GdkGLConfig *glconfig = NULL; - -/** - * Resets the OpenGL viewport stuff on widget reconfiguration (resize, - * reposition) - * @param widget widget that got reconfigured - * @param event the configuration event - * @param data unused - * @return FALSE to propagate other handlers - */ -static gboolean configure_event(GtkWidget *widget, GdkEventConfigure *event, - void *data); - -/** - * Maps the widget to the screen. - * @param widget widget that got mapped - * @param event the map event - * @param data draw info struct - * @return FALSE to propagate other handlers - */ -static gboolean map_event(GtkWidget *widget, GdkEventAny *event, void *data); - -/** - * Unmaps the widget from the screen. - * @param widget widget that got unmapped - * @param event the configuration event - * @param data draw info struct - * @return FALSE to propagate other handlers - */ -static gboolean unmap_event(GtkWidget *widget, GdkEventAny *event, void *data); - -/** - * Respond to widget visibility change. - * @param widget widget whose visibility changed - * @param event the visibility event - * @param data draw info struct - * @return FALSE to propagate other handlers - */ -static gboolean visibility_notify_event(GtkWidget *widget, - GdkEventVisibility *event, void *data); - -/** - * Add a glib timer to periodically draw the widget. - * @param widget widget we're drawing - * @param info draw info struct - */ -static void widget_draw_timer_add(GtkWidget *widget, struct draw_info *info); - -/** - * Remove glib timer that was drawing this widget. - * @param widget widget we're drawing - * @param info draw info struct - */ -static void widget_draw_timer_remove(GtkWidget *widget, struct draw_info *info); - -/** - * Periodically invalidates gtk gl widget and tells GTK to redraw - * @param widget widget we're drawing - */ -static gboolean widget_draw_timer(GtkWidget *widget); - -/** - * Cleanup widget stuff when it's getting destroyed. - * @param widget widget that got destroyed - * @param data draw info struct - */ -static void destroy_event(GtkWidget *widget, struct draw_info *data); - -int cc_init_gtk_gl() -{ - if (glconfig) - return 0; - - /* configure OpenGL */ - - glconfig = gdk_gl_config_new_by_mode(GDK_GL_MODE_RGB | - GDK_GL_MODE_DEPTH | - GDK_GL_MODE_DOUBLE); - - if (glconfig == NULL) { - Debug("*** Cannot find the double-buffered visual.\n"); - Debug("*** Trying single-buffered visual.\n"); - - /* Try single-buffered visual */ - glconfig = gdk_gl_config_new_by_mode(GDK_GL_MODE_RGB | - GDK_GL_MODE_DEPTH); - if (glconfig == NULL) { - Debug("*** No appropriate OpenGL-capable visual " - "found.\n"); - return 1; - } - } - - return 0; -} - -void cc_new_gl_window(gl_init_func init, gl_config_func config, - gl_draw_func draw, struct draw_info *data, - struct window_box *ret) -{ - GtkWidget *window; - GtkWidget *vbox; - GtkWidget *drawing_area; - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_container_set_reallocate_redraws(GTK_CONTAINER(window), TRUE); - - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(window), vbox); - gtk_widget_show(vbox); - - if (!data) { - data = (struct draw_info*)malloc(sizeof(*data)); - assert(data); - memset(data, 0, sizeof(*data)); - data->timeout = TRUE; - data->delay_ms = DEFAULT_FRAME_DELAY; - } - drawing_area = cc_new_gl_area(init, config, draw, data); - gtk_box_pack_start(GTK_BOX(vbox), drawing_area, TRUE, TRUE, 0); - gtk_widget_show(drawing_area); - ret->window = window; - ret->vbox = vbox; - ret->draw_area = drawing_area; -} - -GtkWidget *cc_new_gl_area(gl_init_func init, gl_config_func config, - gl_draw_func draw, struct draw_info *data) -{ - GtkWidget *drawing_area; - - assert(data); - - drawing_area = gtk_drawing_area_new(); - assert(drawing_area); - - assert(gtk_widget_set_gl_capability(drawing_area, glconfig, NULL, FALSE, - GDK_GL_RGBA_TYPE)); - gtk_widget_add_events (drawing_area, GDK_VISIBILITY_NOTIFY_MASK); - if (init) { - g_signal_connect_after(G_OBJECT(drawing_area), "realize", - G_CALLBACK(init), data->data); - } - if (config) { - g_signal_connect(G_OBJECT(drawing_area), "configure_event", - G_CALLBACK(config), NULL); - } else { - g_signal_connect(G_OBJECT(drawing_area), "configure_event", - G_CALLBACK(configure_event), NULL); - } - if (draw) { - g_signal_connect(G_OBJECT(drawing_area), "expose_event", - G_CALLBACK(draw), data->data); - } - g_signal_connect(G_OBJECT(drawing_area), "map_event", - G_CALLBACK(map_event), data); - g_signal_connect(G_OBJECT(drawing_area), "unmap_event", - G_CALLBACK(unmap_event), data); - g_signal_connect(G_OBJECT(drawing_area), "visibility_notify_event", - G_CALLBACK(visibility_notify_event), data); - g_signal_connect(G_OBJECT(drawing_area), "destroy", - G_CALLBACK(destroy_event), data); - - return drawing_area; -} - - -static gboolean configure_event(GtkWidget *widget, - GdkEventConfigure *event, void *data) -{ - GdkGLContext *glcontext = gtk_widget_get_gl_context(widget); - GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget); - - GLfloat w = widget->allocation.width; - GLfloat h = widget->allocation.height; - GLfloat aspect; - -// Debug("configuring\n"); - - /*** OpenGL BEGIN ***/ - if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) - return FALSE; - - glViewport(0, 0, w, h); - glMatrixMode(GL_PROJECTION); - - glLoadIdentity(); - if (w > h) { - aspect = w / h; - glFrustum(-aspect, aspect, -1.0, 1.0, 2.0, 60.0); - } else { - aspect = h / w; - glFrustum(-1.0, 1.0, -aspect, aspect, 2.0, 60.0); - } - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - gdk_gl_drawable_gl_end(gldrawable); - /*** OpenGL END ***/ - - return FALSE; -} - -static int map_event(GtkWidget *widget, GdkEventAny *event, void *data) -{ - struct draw_info *info = (struct draw_info*)data; - Debug("map\n"); - - if (info->timeout) { - widget_draw_timer_add(widget, info); - } - return FALSE; -} - -static int unmap_event(GtkWidget *widget, GdkEventAny *event, void *data) -{ - struct draw_info *info = (struct draw_info*)data; - Debug("unmap\n"); - - if (info->timeout) { - widget_draw_timer_remove(widget, info); - } - return FALSE; -} - -static int visibility_notify_event(GtkWidget *widget, GdkEventVisibility *event, - void *data) -{ - struct draw_info *info = (struct draw_info*)data; - Debug("visibility\n"); - - if (event->state == GDK_VISIBILITY_FULLY_OBSCURED) { - Debug("obscured\n"); - if (info->timeout) { - widget_draw_timer_remove(widget, info); - } - } else { - Debug("visible\n"); - if (info->timeout) { - widget_draw_timer_add(widget, info); - } - } - return FALSE; -} - -static void widget_draw_timer_add(GtkWidget *widget, struct draw_info *info) -{ - if (!info->timer_id) { - info->timer_id = g_timeout_add(info->delay_ms, - (GSourceFunc)widget_draw_timer, widget); - } -} - -static void widget_draw_timer_remove(GtkWidget *widget, struct draw_info *info) -{ - if (info->timer_id) { - g_source_remove(info->timer_id); - info->timer_id = 0; - } -} - -static gboolean widget_draw_timer(GtkWidget *widget) -{ - /* invalidate the window */ - gdk_window_invalidate_rect (widget->window, &widget->allocation, FALSE); - - /* tell gtk to update it _now_ */ - gdk_window_process_updates (widget->window, FALSE); - - return TRUE; -} - -static void destroy_event(GtkWidget *widget, struct draw_info *data) -{ - Debug("destroying widget\n"); - - if (data) { - widget_draw_timer_remove(widget, data); - free(data); - } -}
--- a/plugins/crazychat/cc_gtk_gl.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -#include <gtk/gtk.h> -#include <gtk/gtkgl.h> - -#define DEFAULT_FRAME_DELAY 40 - -typedef void (gl_init_func) (GtkWidget *widget, void *data); -typedef gboolean (*gl_config_func) (GtkWidget *widget, GdkEventConfigure *event, - void *data); -typedef gboolean (*gl_draw_func) (GtkWidget *widget, GdkEventExpose *event, - void *data); - -struct draw_info { - gboolean timeout; /* use/not use a timer callback */ - int timer_id; /* glib timer callback id */ - guint delay_ms; /* timer callback delay in ms */ - void *data; /* drawing data */ -}; - -struct window_box { - GtkWidget *window; - GtkWidget *vbox; - GtkWidget *draw_area; -}; - -/** - * Initialize the gtkglext framework for all our widgets. - * @return 0 on success, non-zero on failure - */ -int cc_init_gtk_gl(); - -/** - * Create a new OpenGL enabled window - * @param init the initialize callback function - * @param draw the drawing callback function - * @param data drawing metadata - * @param ret struct with returned window and vbox - */ -void cc_new_gl_window(gl_init_func init, gl_config_func config, - gl_draw_func draw, struct draw_info *data, - struct window_box *ret); - -/** - * Create a new OpenGL enabled drawing area widget. - * @param init the initialize callback function - * @param draw the drawing callback function - * @param data drawing metadata - * @return the drawing widget - */ -GtkWidget *cc_new_gl_area(gl_init_func init, gl_config_func config, - gl_draw_func draw, struct draw_info *data);
--- a/plugins/crazychat/cc_interface.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -#ifndef __CC_INTERFACE_H__ -#define __CC_INTERFACE_H__ - -#include <gtk/gtk.h> -#include "crazychat.h" - -/* XXX feature encapsulation: still in flux, not stable XXX */ - -//charlie -typedef enum {REMOTE, LOCAL} OUTPUT; - -gboolean configure(GtkWidget *widget, - GdkEventConfigure *event, void *data); - -gboolean draw(GtkWidget *widget, GdkEventExpose *event, - void *data); - -void init (GtkWidget *widget, void *data); - -void setupLighting(GtkWidget *widget); - -void setupDrawlists(OUTPUT output); - -struct cc_features { - guint8 head_size; - guint8 left_eye_open, right_eye_open; /*booleans*/ - guint8 mouth_open; /*percentage*/ - guint8 head_x_rot, head_y_rot, head_z_rot; /* head rotation */ - guint8 x, y; /*center of head*/ - guint8 head_color, appendage_color, lid_color, right_iris_color, left_iris_color; //colors - guint8 mode, kind; -}; - -struct output_instance { - struct cc_features *features; - struct cc_session *session; - float past_y; - OUTPUT my_output; - GtkWidget *widget; - GtkWidget *box; -}; - -struct input_instance { - int timer_id; - struct cc_features face; - GtkWidget *widget; - GtkWidget *box; - GtkWidget *button; - GtkWidget *label; - GtkWidget *model; - GtkWidget *head, *appendage, *lid, *right_iris, *left_iris; - struct output_instance output; -}; - -struct output_handlers { - int (*configure)(GtkWidget *widget, GdkEventConfigure *event, - void *data); - void (*init) (GtkWidget *widget, void *data); - gboolean (*draw) (GtkWidget *widget, GdkEventExpose *event, void *data); -}; - -struct cc_session { - struct crazychat *cc; /**< crazychat global data */ - char *name; /**< session peer */ - guint32 peer_ip; /**< peer's ip addr, nbo */ - guint16 peer_port; /**< peer's port hbo */ - struct sockaddr_in peer; /**< peer udp sock addr */ - CC_STATE state; /**< connection state */ - int timer_id; /**< glib timer callback id */ - int tcp_sock; /**< tcp socket connection */ - int udp_sock; /**< udp socket connection */ - struct cc_features features; /**< network peer features */ - struct output_instance *output; /**< output instance data */ - filter_bank *filter; /**< filter instance */ -}; - -struct crazychat { - guint16 tcp_port; /**< tcp port to bind on */ - guint16 udp_port; /**< udp session data port */ - struct cc_session_node *sessions; /**< list of sessions */ - struct input_instance *input_data; /**< input instance data */ - gboolean features_state; /**< features state on/off */ -}; - -/* --- input feature interface --- */ - -#ifdef _DISABLE_QT_ -#define init_input(a) NULL -#define destroy_input(a) -#else - -/** - * Initializes the input subsystem. - * @param cc global crazychat data structure - * @return pointer to an input instance - */ -struct input_instance *init_input(struct crazychat *cc); - -/** - * Destroys the input subsystem. - * @param instance input instance - */ -void destroy_input(struct input_instance *instance); - -#endif /* _DISABLE_QT_ */ - -/* --- output feature interface --- */ - -/** - * Initializes an output instance. - * @param features pointer to features - * @param session pointer to the crazychat session - * @return pointer to the output instance - */ -struct output_instance *init_output(struct cc_features *features, - struct cc_session *session); - -/** - * Destroys an output instance. - * @param instance output instance - */ -void destroy_output(struct output_instance *instance); - -#endif
--- a/plugins/crazychat/cc_network.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,540 +0,0 @@ -#include <assert.h> -#include <errno.h> -#include <string.h> -#include <gtk/gtk.h> -#include <conversation.h> -#include <network.h> -#include <sys/socket.h> -#include <sys/types.h> -#include <netinet/in.h> -#include <sys/time.h> -#include <unistd.h> -#include <fcntl.h> -#include "cc_network.h" -#include "cc_interface.h" -#include "util.h" - -/* --- begin constant definitions --- */ - -#define NETWORK_TIMEOUT_DELAY 40 /* in ms */ -#define MAX_ACCEPT_CHECKS 1000 - -/* --- begin type declarations --- */ - -struct accept_args { - GaimAccount *account; - struct crazychat *cc; - char *name; - guint32 peer_ip; - guint16 peer_port; -}; - -struct sock_accept_args { - GaimAccount *account; - struct cc_session *session; -}; - -/* --- begin function prototypes --- */ - -/** - * Creates a server socket and sends a response to the peer. - * @param account the gaim account sending the ready msg - * @param session the peer CrazyChat session - */ -static void cc_net_send_ready(GaimAccount *account, struct cc_session *session); - -/** - * Handles responses from the CrazyChat session invite dialog box. - * @param dialog the dialog box - * @param response the dialog box button response - * @param args account, crazychat global data, peer name - */ -static void invite_handler(GtkDialog *dialog, gint response, - struct accept_args *args); - -/** - * Periodically checks the server socket for peer's connection. Gives up - * after a set number of checks. - * @param args peer session and account - * @return TRUE to continue checking, FALSE to stop - */ -static gboolean accept_cb(struct sock_accept_args *args); - -/** - * Initialize CrazyChat network session. Sets up the UDP socket and port. - * @param account the account the session is part of - * @param session the CrazyChat network session - */ -static void init_cc_net_session(GaimAccount *account, - struct cc_session *session); - -/** - * Handles checking the network for new feature data and sending out the - * latest features. - * @param session the session we're checking for network traffic - */ -static gboolean network_cb(struct cc_session *session); - -/** - * Generates random bytes in the user specified byte buffer. - * @param buf the byte buffer - * @param len length of the byte buffer - */ -static void generate_randomness(uint8_t buf[], unsigned int len); - -/** - * Sends data over a socket. - * @param s socket file descriptor - * @param buf data buffer - * @param len data buffer length - * @return number of bytes sent or -1 if an error occurred - */ -static int __send(int s, char *buf, int len); - -/* --- begin function definitions --- */ - -void cc_net_send_invite(struct crazychat *cc, char *name, GaimAccount *account) -{ - struct cc_session *session; - GaimConversation *conv; - GaimConvIm *im; - char buf[BUFSIZ]; - - session = cc_find_session(cc, name); - if (session) return; /* already have a session with this guy */ - session = cc_add_session(cc, name); - session->state = INVITE; - conv = gaim_find_conversation_with_account(name, account); - if (!conv) { - conv = gaim_conversation_new(GAIM_CONV_IM, account, name); - } - im = gaim_conversation_get_im_data(conv); - snprintf(buf, BUFSIZ, "%s%s!%d", CRAZYCHAT_INVITE_CODE, - gaim_network_get_ip_for_account(account, -1), cc->tcp_port); - Debug("Sent invite to %s for port: %d\n", name, cc->tcp_port); - gaim_conv_im_send(im, buf); -} - -void cc_net_recv_invite(GaimAccount *account, struct crazychat *cc, char *name, - const char *peer_ip, const char *peer_port) -{ - struct cc_session *session; - GaimConversation *conv; - GaimConvWindow *convwin; - char buf[BUFSIZ]; - struct accept_args *args; - - assert(cc); - assert(name); - Debug("Received a CrazyChat session invite from %s on port %s!\n", - name, peer_port); - session = cc_find_session(cc, name); - if (!session) { - Debug("Creating a CrazyChat session invite dialog box!\n"); - conv = gaim_find_conversation_with_account(name, account); - if (conv) convwin = gaim_conversation_get_window(conv); - else convwin = NULL; - /* pop gtk window asking if want to accept */ - GtkWidget *dialog = - gtk_dialog_new_with_buttons("CrazyChat Session Invite", - GTK_WINDOW(convwin), - GTK_DIALOG_MODAL | - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_OK, - GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, - GTK_RESPONSE_REJECT, - NULL); - snprintf(buf, BUFSIZ, "Would you like to CRaZYchAT with %s?", name); - GtkWidget *label = gtk_label_new(buf); - gtk_container_add(GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), - label); - args = (struct accept_args*)malloc(sizeof(*args)); - args->account = account; - args->cc = cc; - args->name = strdup(name); - assert(inet_aton(peer_ip, (struct in_addr*)&args->peer_ip)); - args->peer_port = atoi(peer_port); - - g_signal_connect(GTK_OBJECT(dialog), "response", - G_CALLBACK(invite_handler), args); - - gtk_widget_show_all(dialog); - } -} - -void cc_net_recv_accept(GaimAccount *account, struct crazychat *cc, char *name, - const char *peer_ip) -{ - struct cc_session *session; - struct in_addr peer_addr; - - assert(cc); - assert(name); - Debug("Received a CrazyChat session accept!\n"); - session = cc_find_session(cc, name); - if (session && session->state == INVITE) { - session->state = ACCEPTED; - assert(inet_aton(peer_ip, &peer_addr)); - session->peer_ip = peer_addr.s_addr; - cc_net_send_ready(account, session); - } -} - -static void cc_net_send_ready(GaimAccount *account, struct cc_session *session) -{ - struct sock_accept_args *args; - - assert(session); - Debug("Initializing the server socket and sending ready message\n"); - /* create the server socket */ - session->tcp_sock = socket(AF_INET, SOCK_STREAM, 0); - assert(session->tcp_sock != -1); - int reuse = 1; - assert(setsockopt(session->tcp_sock, SOL_SOCKET, SO_REUSEADDR, - &reuse, sizeof(int)) != -1); - struct sockaddr_in my_addr; - my_addr.sin_family = AF_INET; - my_addr.sin_port = htons(session->cc->tcp_port); - assert(inet_aton(gaim_network_get_ip_for_account(account, -1), - &my_addr.sin_addr)); - memset(&my_addr.sin_zero, 0, sizeof(my_addr.sin_zero)); - assert(bind(session->tcp_sock, (struct sockaddr*)&my_addr, - sizeof(my_addr)) != -1); - Debug("Listening on port: %d\n", my_addr.sin_port); - assert(listen(session->tcp_sock, 1) != -1); - - /* socket created, send the ready message */ - GaimConversation *conv; - GaimConvIm *im; - - conv = gaim_find_conversation_with_account(session->name, account); - if (!conv) { - conv = gaim_conversation_new(GAIM_CONV_IM, account, - session->name); - } - im = gaim_conversation_get_im_data(conv); - gaim_conv_im_send(im, CRAZYCHAT_READY_CODE); - - /* register timer callback for checking socket connection */ - args = (struct sock_accept_args*)malloc(sizeof(*args)); - args->session = session; - args->account = account; - session->udp_sock = MAX_ACCEPT_CHECKS; - session->timer_id = g_timeout_add(NETWORK_TIMEOUT_DELAY, - (GSourceFunc)accept_cb, args); -} - -void cc_net_recv_ready(GaimAccount *account, struct crazychat *cc, char *name) -{ - struct cc_session *session; - struct sockaddr_in server_addr, my_addr; - int sock; - - assert(cc); - assert(name); - Debug("Received a CrazyChat session ready!\n"); - session = cc_find_session(cc, name); - if (session && session->state == ACCEPTED) { - /* connect to peer */ - session->tcp_sock = socket(AF_INET, SOCK_STREAM, 0); - assert(session->tcp_sock != -1); - server_addr.sin_family = AF_INET; - server_addr.sin_port = session->peer_port; - server_addr.sin_addr.s_addr = session->peer_ip; - memset(&(server_addr.sin_zero), 0, - sizeof(server_addr.sin_zero)); - assert(connect(session->tcp_sock, - (struct sockaddr*)&server_addr, - sizeof(server_addr)) != -1); - Debug("Connecting to peer on port %d\n", session->peer_port); - - /* now set state */ - session->state = CONNECTED; - init_cc_net_session(account, session); - } -} - -static void invite_handler(GtkDialog *dialog, gint response, struct accept_args *args) -{ - struct cc_session *session; - char buf[BUFSIZ]; - GaimConversation *conv; - GaimConvIm *im; - - if (response == GTK_RESPONSE_ACCEPT) { - assert(args); - session = cc_find_session(args->cc, args->name); - assert(!session); - session = cc_add_session(args->cc, args->name); - session->state = ACCEPTED; - session->peer_ip = args->peer_ip; - session->peer_port = args->peer_port; - snprintf(buf, BUFSIZ, "%s%s", CRAZYCHAT_ACCEPT_CODE, - gaim_network_get_ip_for_account(args->account, -1)); - conv = gaim_find_conversation_with_account(args->name, - args->account); - if (!conv) { - conv = gaim_conversation_new(GAIM_CONV_IM, - args->account, args->name); - } - im = gaim_conversation_get_im_data(conv); - gaim_conv_im_send(im, buf); - } - free(args->name); - free(args); - gtk_widget_destroy(GTK_WIDGET(dialog)); -} - -static gboolean accept_cb(struct sock_accept_args *args) -{ - fd_set fds; - struct timeval zero; - int ret; - GaimAccount *account; - struct cc_session *session; - - assert(args); - account = args->account; - session = args->session; - assert(account); - assert(session); - - /* set select to check on our tcp socket */ - FD_ZERO(&fds); - FD_SET(session->tcp_sock, &fds); - memset(&zero, 0, sizeof(zero)); - - /* check socket */ - ret = select(session->tcp_sock+1,&fds, NULL, NULL, &zero); - assert(ret != -1); - - if (ret) { /* got something to check */ - Debug("Checking pending connection\n"); - int sock; - struct sockaddr_in client_addr; - socklen_t sin_size; - - sin_size = sizeof(client_addr); - sock = accept(session->tcp_sock, - (struct sockaddr*)&client_addr, &sin_size); - assert(sock != -1); - - /* check if it's a match */ - if (client_addr.sin_addr.s_addr == session->peer_ip) { - /* cool, we're set */ - Debug("Accepted tcp connect from %s\n", session->name); - close(session->tcp_sock); - session->tcp_sock = sock; - session->state = CONNECTED; - session->timer_id = 0; - init_cc_net_session(account, session); - Debug("Will start sending to port %d\n", - session->peer_port); - free(args); - return FALSE; - } - } - - session->udp_sock--; - - if (!session->udp_sock) { /* timed out */ - /* remove session from session list */ - cc_remove_session(session->cc, session); - free(args); - return FALSE; - } - - return TRUE; -} - -static void init_cc_net_session(GaimAccount *account, - struct cc_session *session) -{ - struct sockaddr_in my_addr; - struct sockaddr_in peer_addr; - int reuse; - - /* send/obtain the udp port information */ - - assert(__send(session->tcp_sock, (char*)&session->cc->udp_port, - sizeof(session->cc->udp_port)) == - sizeof(session->cc->udp_port)); - assert(recv(session->tcp_sock, (char*)&session->peer_port, - sizeof(session->peer_port), 0) == - sizeof(session->peer_port)); - - Debug("Established a CrazyChat session with %s!\n", session->name); - - /* connect the udp sockets */ - - session->udp_sock = socket(AF_INET, SOCK_DGRAM, 0); - - assert(!setsockopt(session->udp_sock, SOL_SOCKET, SO_REUSEADDR, - &reuse, sizeof(reuse))); - - my_addr.sin_family = AF_INET; - my_addr.sin_port = htons(session->cc->udp_port); - assert(inet_aton(gaim_network_get_ip_for_account(account, -1), - &my_addr.sin_addr)); - memset(my_addr.sin_zero, 0, sizeof(my_addr.sin_zero)); - assert(!bind(session->udp_sock, (struct sockaddr*)&my_addr, - sizeof(my_addr))); - session->peer.sin_family = AF_INET; - session->peer.sin_port = htons(session->peer_port); - session->peer.sin_addr.s_addr = session->peer_ip; - memset(&session->peer.sin_zero, 0, sizeof(session->peer.sin_zero)); - - Debug("Bound udp sock to port %d, connecting to port %d\n", - session->cc->udp_port, session->peer_port); - - memset(&session->features, 0, sizeof(session->features)); - - session->output = init_output(&session->features, session); - - session->filter = Filter_Initialize(); - - /* initialize timer callback */ - session->timer_id = g_timeout_add(NETWORK_TIMEOUT_DELAY, - (GSourceFunc)network_cb, session); - - /* initialize input subsystem if not initialized */ - if (!session->cc->features_state) { - session->cc->input_data = init_input(session->cc); - session->cc->features_state = 1; - } -} - -static gboolean network_cb(struct cc_session *session) -{ - fd_set fds; - struct timeval zero; - int ret; - int command; - struct cc_features *features; - - assert(session); - - Debug("Checking for data\n"); - - /* set select to check on our tcp socket */ - FD_ZERO(&fds); - FD_SET(session->tcp_sock, &fds); - memset(&zero, 0, sizeof(zero)); - - /* check tcp socket */ - ret = select(session->tcp_sock+1, &fds, NULL, NULL, &zero); - assert(ret != -1); - - while (ret) { - ret = recv(session->tcp_sock, &command, sizeof(command), 0); - assert(ret != -1); - if (!ret) { - /* tcp connection closed, destroy connection */ - gtk_widget_destroy(session->output->widget); - return FALSE; - } - assert(ret == sizeof(command)); - - FD_ZERO(&fds); - FD_SET(session->tcp_sock, &fds); - ret = select(session->tcp_sock+1, &fds, NULL, NULL, &zero); - assert(ret != -1); - } - - /* set select to check on our udp socket */ - FD_ZERO(&fds); - FD_SET(session->udp_sock, &fds); - memset(&zero, 0, sizeof(zero)); - - /* check udp socket */ - ret = select(session->udp_sock+1, &fds, NULL, NULL, &zero); - assert(ret != -1); - - features = &session->features; - - while (ret) { /* have data, let's copy it for output */ - struct sockaddr_in from; - int fromlen; - ret = recvfrom(session->udp_sock, &session->features, - sizeof(session->features), - 0, (struct sockaddr*)&from, &fromlen); - Debug("Received %d bytes from port %d\n", ret, - ntohs(from.sin_port)); - filter(features, session->filter); - Debug("\thead size: %d\n", features->head_size); - Debug("\topen: left(%s), right(%s), mouth(%s)\n", - features->left_eye_open ? "yes" : "no", - features->right_eye_open ? "yes" : "no", - features->mouth_open ? "yes" : "no"); - Debug("\thead rotation: x(%d), y(%d), z(%d)\n", - features->head_x_rot, features->head_y_rot, - features->head_z_rot); - Debug("\tx(%d), y(%d)\n", features->x, features->y); - if (ret == -1) { - perror("wtf:"); - } - assert(ret != -1); - - FD_ZERO(&fds); - FD_SET(session->udp_sock, &fds); - ret = select(session->udp_sock+1, &fds, NULL, NULL, &zero); - assert(ret != -1); - } - -#ifdef _DISABLE_QT_ - struct cc_features bogus; - features = &bogus; - generate_randomness((uint8_t*)features, sizeof(*features)); -#else - features = &session->cc->input_data->face; -#endif - assert(sendto(session->udp_sock, (char*)features, - sizeof(*features), 0, (struct sockaddr*)&session->peer, - sizeof(session->peer)) == sizeof(*features)); - Debug("Sent %d bytes\n", sizeof(*features)); - Debug("\thead size: %d\n", features->head_size); - Debug("\topen: left(%s), right(%s), mouth(%s)\n", - features->left_eye_open ? "yes" : "no", - features->right_eye_open ? "yes" : "no", - features->mouth_open ? "yes" : "no"); - Debug("\thead rotation: x(%d), y(%d), z(%d)\n", - features->head_x_rot, features->head_y_rot, - features->head_z_rot); - Debug("\tx(%d), y(%d)\n", features->x, features->y); - - /* clear easter egg */ - features->mode = 0; - - return TRUE; -} - -static void generate_randomness(uint8_t buf[], unsigned int len) -{ - int fd; - - fd = open("/dev/random", O_RDONLY); - assert(fd != -1); - - assert(read(fd, buf, len) == len); - close(fd); -} - -static int __send(int s, char *buf, int len) -{ - int total = 0; /* how many bytes we've sent */ - int bytesleft = len; /* how many we have left to send */ - int n; - - while (total < len) { - n = send(s, buf + total, bytesleft, 0); - if (n == -1) { - Debug("ERROR: %s\n", strerror(errno)); - return -1; - } - total += n; - bytesleft -= n; - } - - return total; -}
--- a/plugins/crazychat/cc_network.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -#ifndef __CC_NETWORK_H__ -#define __CC_NETWORK_H__ - -#include <account.h> -#include <conversation.h> -#include "crazychat.h" - -/* --- begin constant definition --- */ - -#define DEFAULT_CC_PORT 6543 - -#define CRAZYCHAT_INVITE_CODE "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \ - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \ - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \ - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \ - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \ - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" -#define CRAZYCHAT_ACCEPT_CODE "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \ - "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \ - "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \ - "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \ - "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \ - "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" -#define CRAZYCHAT_READY_CODE "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \ - "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \ - "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \ - "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \ - "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \ - "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" - -/* --- begin function declarations --- */ - -/** - * Creates a new CrazyChat session if one doesn't exist and sends the invite. - * @param cc global crazychat data structure - * @param name the peer name - * @param account the gaim account - */ -void cc_net_send_invite(struct crazychat *cc, char *name, GaimAccount *account); - -/** - * Pops up the CrazyChat invitation accept window if a CrazyChat session does - * not exist yet for this peer. - * @param account gaim account - * @param cc global crazychat data structure - * @param name the peer name - * @param peer_ip the peer's ip address - * @param peer_port the peer's tcp port - */ -void cc_net_recv_invite(GaimAccount *account, struct crazychat *cc, char *name, - const char *peer_ip, const char *peer_port); - -/** - * Accepts the CrazyChat invitation and sends the response. - * @param session the CrazyChat session - */ -void cc_net_send_accept(struct cc_session *session); - -/** - * Receives a CrazyChat accept message, and if appropriate, creates a server - * socket and sends the ready message. - * @param account the gaim account which received the message - * @param cc global crazychat data structure - * @param name the peer name - * @param peer_ip the peer's ip address - */ -void cc_net_recv_accept(GaimAccount *account, struct crazychat *cc, char *name, - const char *peer_ip); - -/** - * Receives a CrazyChat ready message, and if appropriate, connects to peer - * @param account the gaim account which received the message - * @param cc global crazychat data structure - * @param name the peer name - */ -void cc_net_recv_ready(GaimAccount *account, struct crazychat *cc, char *name); - -#endif
--- a/plugins/crazychat/cc_output.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,353 +0,0 @@ -#include <assert.h> -#include <string.h> -#include <stdlib.h> -#include <GL/gl.h> -#include <GL/glu.h> -#include <math.h> -#include "util.h" -#include "cc_interface.h" -#include "crazychat.h" -#include <stdio.h> - -#include "cc_gtk_gl.h" - -#include "face.h" -#include "glm.h" - - -#define TAN_30 0.577 -#define ROOT_3 1.73 -//this will be the width of all heads -#define HEAD_WIDTH 2.5 -#define HEAD_HEIGHT 2.5 //same for now, this will actually vary from head -#define PERSONS_HEAD 1 -#define MOVEMENT .33 - -GLfloat ambient[] = {1.0, 1.0, 1.0, 1.0}; -GLfloat diffuse[] = {.7, .7, .7, 1}; -GLfloat specular[] = {1, 1, 1, 1}; -GLfloat lightpos[] = {0.0, 0.0, 20, 1}; -GLfloat specref[] = {1.0, 1, 1, 1,}; - -GLfloat xrot, yrot, zrot; -GLfloat x, y, z, mouth_open; -GLint left_eye_frame, right_eye_frame; //between 0 - 8 -GLint mouth_type; -GLint mouth_frame; -DIRECTION dir; -BOOL left_open, right_open; -GLfloat window_aspect; - -FACE remote_shark_face, remote_dog_face, local_shark_face, local_dog_face; -int count = 0; -int curr_materials[DOG_SHARK_CHANGE]; //these are the materials from output_instance -OUTPUT_MODE curr_mode; -KIND which_face; - -static void destroy_cb(GtkWidget *widget, struct output_instance *data); - -void Interpolate(struct output_instance* instance){ - GLfloat rangeX, rangeY, minZ, adj, angle, temp; - count++; -/* yrot=90; - zrot=0; - z=5; - x=0; - y=0; - left_open = right_open = TRUE; - mouth_open = (float)(count%10)/10; - dir = CONST; - curr_mode = NORMAL; - return; -*/ - - //find z plane from percentage of face - if(instance->features->head_size==0){ - z = 5; - } - - temp = (GLfloat)instance->features->head_size/40.0; - //printf("head size %d\n", instance->features->head_size); - - minZ = ROOT_3; - z = ROOT_3*(PERSONS_HEAD/temp); - if(z < minZ) - z = minZ; - - //these calculations are based on a 90 degree viewing angle - rangeX = z*(TAN_30)*2; - rangeY = window_aspect*rangeX; - temp = (GLfloat)instance->features->x; - if(temp>50) { //then its on the left - temp = (temp - 50.0)/50.0; - x = 0 - temp*rangeX/1.0; - } - else { - temp = (50.0-temp)/50.0; - x = 0 + temp*rangeX/1.0; - } - - temp = (GLfloat)instance->features->y; - - if(temp>50){ - temp = (temp-50.0)/50.0; - y = 0 - temp*rangeY/1.0; - } - else { - temp = (50.0-temp)/50.0; - y = 0 + temp*rangeY/1.0; - } - - temp = (GLfloat)instance->features->head_y_rot; - yrot = temp - 50; - temp = (GLfloat)instance->features->head_z_rot; - zrot = temp-50; - - if(y-instance->past_y < -MOVEMENT) - dir = DOWN; - else if(y-instance->past_y > MOVEMENT) - dir = UP; - else - dir = CONST; - instance->past_y=y; - - mouth_open = (float)instance->features->mouth_open/105; - count++; - //mouth_open = (count%10)/(10); - - if(instance->features->left_eye_open==0){ - left_open = FALSE; - } - else{ - left_open = TRUE; - } - - if(instance->features->right_eye_open==0) - right_open = FALSE; - else - right_open = TRUE; - //right_open =1 - (count%5)/4; - - //set the materials - curr_materials[APPENDAGE]=instance->features->appendage_color; - curr_materials[HEAD]=instance->features->head_color; - curr_materials[LIDS]=instance->features->lid_color; - curr_materials[LEFT_IRIS]=instance->features->left_iris_color; - curr_materials[RIGHT_IRIS]=instance->features->right_iris_color; - // we don't get an x rotation - xrot = 0; - curr_mode=instance->features->mode; - if(instance->features->kind==0) - which_face=DOG; - else - which_face=SHARK; - -} - - - -gboolean configure(GtkWidget *widget, - GdkEventConfigure *event, void *data) -{ - GdkGLContext *glcontext = gtk_widget_get_gl_context(widget); - GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget); - - GLfloat w = widget->allocation.width; - GLfloat h = widget->allocation.height; - GLfloat aspect; - - Debug("configuring\n"); - - - /*** OpenGL BEGIN ***/ - if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) - return FALSE; - - glEnable(GL_DEPTH_TEST); - glViewport(0, 0, w, h); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - - if (w > h) { - window_aspect = w / h; - } else { - window_aspect = h / w; - } - - //glOrtho(-10, 10, -10,10, 0.0001, 1000); - gluPerspective(90.0, window_aspect, 0.0001, 1000.0); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - gdk_gl_drawable_gl_end(gldrawable); - /*** OpenGL END ***/ - - return TRUE; -} - -gboolean draw(GtkWidget *widget, GdkEventExpose *event, - void *data) -{ - struct output_instance *instance = (struct output_instance*)data; - if(!data) { - fprintf(stderr,"null\n"); - } - assert(instance); - Interpolate(instance); - - GdkGLContext *glcontext = gtk_widget_get_gl_context (widget); - GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget); - - //return TRUE; - - assert(gtk_widget_is_gl_capable(widget)); - - if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext)) { - fprintf(stderr, "We're fucked this time.\n"); - return FALSE; - } - - - glClearColor(1.0, 1.0, 1.0, 0.0); - //glDisable(GL_CULL_FACE); - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glColor3f(1.0, 1.0, 1.0); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - glTranslatef(x, y, -z); - if(instance->my_output==LOCAL){ - if(which_face==DOG){ - change_materials(local_dog_face, curr_materials, DOG_SHARK_CHANGE); - draw_face(local_dog_face, zrot, yrot, left_open, right_open, mouth_open, dir, curr_mode); - } - else { - change_materials(local_shark_face, curr_materials, DOG_SHARK_CHANGE); - draw_face(local_shark_face, zrot, yrot, left_open, right_open, mouth_open, dir, curr_mode); - } - } - else{ - if(which_face==DOG){ - change_materials(remote_dog_face, curr_materials, DOG_SHARK_CHANGE); - draw_face(remote_dog_face, zrot, yrot, left_open, right_open, mouth_open, dir, curr_mode); - } - else{ - change_materials(remote_shark_face, curr_materials, DOG_SHARK_CHANGE); - draw_face(remote_shark_face, zrot, yrot, left_open, right_open, mouth_open, dir, curr_mode); - } - } - if (gdk_gl_drawable_is_double_buffered (gldrawable)) - gdk_gl_drawable_swap_buffers (gldrawable); - else - glFlush (); - return TRUE; -} - -void init (GtkWidget *widget, void *data) -{ - setupDrawlists(REMOTE); - setupLighting(widget); -} - - -void setupDrawlists(OUTPUT output) -{ - if(output==REMOTE){ - remote_shark_face = init_face(SHARK); - remote_dog_face = init_face(DOG); - } - if(output==LOCAL){ - local_shark_face = init_face(SHARK); - local_dog_face = init_face(DOG); - } -} - - -void setupLighting(GtkWidget *widget) -{ - - GLfloat w = widget->allocation.width; - GLfloat h = widget->allocation.height; - glClearColor(1.0f, 1.0f, 1.0f, 1.0f); - glEnable(GL_DEPTH_TEST); - glEnable(GL_LIGHTING); - //glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); - glLightfv(GL_LIGHT0, GL_SPECULAR, specular); - glLightfv(GL_LIGHT0, GL_POSITION, lightpos); - glEnable(GL_LIGHT0); - //glEnable(GL_COLOR_MATERIAL); - //glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); - glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse); - glMateriali(GL_FRONT, GL_SHININESS, 128); - - //glEnable(GL_CULL_FACE); - - glClear(GL_COLOR_BUFFER_BIT); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - //glOrtho(-2, 2, -2, 2, 0.0001, 1000); - - if (w > h) { - window_aspect = w / h; - } else { - window_aspect = h / w; - } - - gluPerspective(90.0, window_aspect, 0.0001, 1000.0); - //glFrustum(-100.0, 100.0, -100.0, 100.0, 0, 10); - glMatrixMode(GL_MODELVIEW); - //gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); -} - -struct output_instance *init_output(struct cc_features *features, - struct cc_session *session) -{ - struct draw_info *info; - struct output_instance *instance; - struct window_box ret; - - instance = (struct output_instance*)malloc(sizeof(*instance)); - assert(instance); - memset(instance, 0, sizeof(*instance)); - instance->features = features; - instance->session = session; - - info = (struct draw_info*)malloc(sizeof(*info)); - memset(info, 0, sizeof(*info)); - info->timeout = TRUE; - info->delay_ms = 40; - info->data = instance; - - - cc_new_gl_window(init, configure, draw, info, &ret); - g_signal_connect(GTK_OBJECT(ret.window), "destroy", - G_CALLBACK(destroy_cb), instance); - gtk_window_set_default_size(ret.window,640,480); - if (session) { - gtk_window_set_title(ret.window, session->name); - } - gtk_widget_show(ret.window); - instance->widget = ret.window; - instance->box = ret.vbox; - return instance; -} - -static void destroy_cb(GtkWidget *widget, struct output_instance *data) -{ - Debug("Closing output window\n"); - if (data->session) { - cc_remove_session(data->session->cc, data->session); - close(data->session->tcp_sock); - close(data->session->udp_sock); - Filter_Destroy(data->session->filter); - destroy_output(data->session->output); - } -} - -void destroy_output(struct output_instance *instance) -{ - free(instance); -}
--- a/plugins/crazychat/crazychat.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -#include <assert.h> -#include <stdlib.h> -#include <string.h> -#include "cc_interface.h" - -struct cc_session_node { - struct cc_session session; - struct cc_session_node *next; -}; - -struct cc_session *cc_find_session(struct crazychat *cc, char *handle) -{ - struct cc_session_node *curr; - - assert(cc); - assert(handle); - - curr = cc->sessions; - while (curr) { - struct cc_session *session = &curr->session; - if (!strncmp(session->name, handle, strlen(session->name))) { - return session; - } - curr = curr->next; - } - return NULL; -} - -struct cc_session *cc_add_session(struct crazychat *cc, char *handle) -{ - struct cc_session_node *curr; - - assert(cc); - assert(handle); - - if (!cc->sessions) { - cc->sessions = (struct cc_session_node*) - malloc(sizeof(*cc->sessions)); - memset(cc->sessions, 0, sizeof(*cc->sessions)); - cc->sessions->session.cc = cc; - cc->sessions->session.name = strdup(handle); - return &cc->sessions->session; - } else { - if (!strncmp(cc->sessions->session.name, handle, - strlen(cc->sessions->session.name))) { - return &cc->sessions->session; - } - } - - curr = cc->sessions; - while (curr->next) { - struct cc_session *session = &curr->next->session; - if (!strncmp(session->name, handle, strlen(session->name))) { - return session; - } - curr = curr->next; - } - curr->next = (struct cc_session_node*)malloc(sizeof(*curr->next)); - memset(curr->next, 0, sizeof(*curr->next)); - curr->next->session.cc = cc; - curr->next->session.name = strdup(handle); - return &curr->next->session; -} - -void cc_remove_session(struct crazychat *cc, struct cc_session *session) -{ - struct cc_session_node *curr, *prev; - - assert(cc); - assert(session); - - assert(cc->sessions); - - curr = cc->sessions; - prev = NULL; - - while (curr) { - if (&curr->session == session) { - if (prev) { - prev->next = curr->next; - } else { - cc->sessions = curr->next; - } - /* destroy curr */ - free(curr); - g_source_remove(session->timer_id); - free(session->name); - free(session); - return; - } - prev = curr; - curr = curr->next; - } - - assert(0); -}
--- a/plugins/crazychat/crazychat.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -#ifndef __CRAZYCHAT_H__ -#define __CRAZYCHAT_H__ - -#include <glib.h> -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <gtk/gtk.h> -#include "filter.h" - -struct crazychat; - -/* --- type definitions --- */ - -typedef enum { INVITE = 0, ACCEPT, ACCEPTED, CONNECTED } CC_STATE; - -/** - * Finds the CrazyChat session with the handle. - * @param cc global crazychat data structure - * @param handle the peer name - * @return the cc_session if found, or NULL - */ -struct cc_session *cc_find_session(struct crazychat *cc, char *handle); - -/** - * Adds a new session with a peer, unless a peer session already exists. - * Makes a deep copy of the handle. - * @param cc global crazychat data structure - * @param handle the peer name - * @return the new/old cc_session - */ -struct cc_session *cc_add_session(struct crazychat *cc, char *handle); - -/** - * Removes a crazychat session with a peer. - * @param cc global crazychat data structure - * @param session the cc_session to remove - */ -void cc_remove_session(struct crazychat *cc, struct cc_session *session); - -#endif /* __CRAZYCHAT_H__ */
--- a/plugins/crazychat/dog_lids.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -#include - -#include "lid1.h" -#include "lid2.h" -#include "lid3.h" -#include "lid4.h" -#include "lid5.h" -#include "lid6.h" -#include "lid8.h" -#include "lid9.h" -#include "lid10.h" - -#define NUM_LIDS 9 - -GLint lidLists[NUM_LIDS]; - -void initLids(){ - GLint test; - int i; - - GLint[0]=Gen3DObjectListLid1(); - GLint[1]=Gen3DObjectListLid2(); - GLint[2]=Gen3DObjectListLid3(); - GLint[3]=Gen3DObjectListLid4(); - GLint[4]=Gen3DObjectListLid5(); - GLint[5]=Gen3DObjectListLid6(); - GLint[6]=Gen3DObjectListLid8(); - GLint[7]=Gen3DObjectListLid9(); - GLint[8]=Gen3DObjectListLid10(); - -}; - -void drawLids(int left, right) { - //draw left - GLfloat offset = .5; - - glPushMatrix(); - glTranslatef(offset, 0, 0); - glCallList(lidLists[left]); - glPopMatrix(); - - //draw right - glPushMatrix(); - glTranslatef(-offset, 0, 0); - glScalef(-1, 1, 1); - glCallList(lidLists[right]); - glPopMatrix(); -} \ No newline at end of file
--- a/plugins/crazychat/dog_lids.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -void initLids(); - -void drawLids(int left, int right); \ No newline at end of file
--- a/plugins/crazychat/doggy.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,227 +0,0 @@ -#include "face.h" -#include "doggy.h" -#include <GL/gl.h> -#include <GL/glu.h> -#include "models.h" - -#define NUM_DOGS 11 -#define NUM_DOG_LIDS 10 -#define NUM_EARS 3 -#define NUM_EYES 1 -#define NUM_PUPILS 1 -#define NUM_IRIS 1 -#define SCALE .020 -#define EYES_Y 32.78*SCALE // .295 -#define EYES_X 28.89*SCALE // .26 -#define EYES_Z 42.22*SCALE // .38 -#define EARS_X 60*SCALE //.65 -#define EARS_Y 20*SCALE//.18 -#define EARS_Z -5.56*SCALE //.05 -#define IRIS_X 0*SCALE -#define IRIS_Y 1.67*SCALE//.015 -#define IRIS_Z 7*SCALE//.08 -#define PUP_X 0*SCALE -#define PUP_Y 0*SCALE -#define PUP_Z 1.2*SCALE //.028 -#define IRIS_SCALE .12*SCALE -#define PUP_SCALE .11*SCALE -#define EAR_SCALE .7*SCALE -#define EYE_SCALE .7*SCALE -#define LID_SCALE .77*SCALE -#define DOG_SCALE .58*SCALE -#define MAX_FILE_LEN 64 -#define MAX_EAR_ANGLE 90.0 -#define MIN_EAR_ANGLE -20.0 - - -char dog_mtl_file[MAX_FILE_LEN] = "dog.mtl"; -// the initial dog materials -GLint init_dog_mats[NUM_PARTS] = {1, 2, 2, 4, 0, 3, 5, 0, 0, 0}; - -void draw_pupil(FACE f, PART p) { - struct doggy_struct* dog=(struct doggy_struct*)f->char_struct; - glPushMatrix(); - glTranslatef(IRIS_X, -IRIS_Z, IRIS_Y); - if(p==LEFT_IRIS) - glmSetMat(f->materials, f->mat_indeces[LEFT_IRIS]); - else - glmSetMat(f->materials, f->mat_indeces[RIGHT_IRIS]); - glCallList(dog->iris[0]); - glTranslatef(PUP_X, -PUP_Z, PUP_Y); - glmSetMat(f->materials, f->mat_indeces[PUPIL]); - glCallList(dog->pupil[0]); - glPopMatrix(); -} - -void draw_left_eye(FACE f, BOOL open, int max) { - struct doggy_struct* dog=(struct doggy_struct*)f->char_struct; - if(f->my_mode==CRAZY2) - dog->curr_left_lid=NUM_DOG_LIDS-1; - else - dog->curr_left_lid = compute_lid(open, dog->curr_left_lid, max); - glPushMatrix(); - glTranslatef(-EYES_X, 0.0, 0.0); - glPushMatrix(); - glTranslatef(0.0, -f->curr_eye_pop, 0.0); - draw_pupil(f, LEFT_IRIS); - glmSetMat(f->materials, f->mat_indeces[EYES]); - glCallList(dog->eyes[dog->curr_left_eye]); - glPopMatrix(); - glmSetMat(f->materials, f->mat_indeces[LIDS]); - glCallList(dog->lids[dog->curr_left_lid]); - glPopMatrix(); -} - -void draw_right_eye(FACE f, BOOL open, int max) { - struct doggy_struct* dog=(struct doggy_struct*)f->char_struct; - if(f->my_mode==CRAZY2) - dog->curr_right_lid=NUM_DOG_LIDS-1; - else - dog->curr_right_lid = compute_lid(open, dog->curr_right_lid, max); - glPushMatrix(); - glTranslatef(EYES_X, 0.0, 0.0); - glScalef(-1, 1, 1); - glPushMatrix(); - glTranslatef(0.0, -f->curr_eye_pop, 0.0); - draw_pupil(f, RIGHT_IRIS); - glmSetMat(f->materials, f->mat_indeces[EYES]); - glCallList(dog->eyes[dog->curr_right_eye]); - glPopMatrix(); - glmSetMat(f->materials, f->mat_indeces[LIDS]); - glCallList(dog->lids[dog->curr_right_lid]); - glPopMatrix(); -} - -void dog_eyes(FACE f, GLfloat angle, GLfloat yangle, BOOL left_open, BOOL right_open, DIRECTION dir) -{ - struct doggy_struct* dog=(struct doggy_struct*)f->char_struct; - int max_eye; - if(dir==CONST) { //then not moving, eyes are gettin sleepy - f->eye_count--; - } - else{ - f->eye_count=EYE_TIME*NUM_DOG_LIDS-1; - } - max_eye=f->eye_count/EYE_TIME; - if(max_eye<0) - max_eye=0; - if(f->my_mode==CRAZY2) - f->curr_eye_pop=f->curr_eye_pop + (MAX_EYE_POP - f->curr_eye_pop)/2; - else - f->curr_eye_pop=f->curr_eye_pop - (f->curr_eye_pop-0)/2; - glPushMatrix(); - glTranslatef(0, 0, EYES_Y); - glTranslatef(0, -EYES_Z,0); - draw_left_eye(f, left_open, max_eye); - draw_right_eye(f, right_open, max_eye); - glPopMatrix(); -} - -void dog_ears(FACE f, DIRECTION dir){ - struct doggy_struct* dog=(struct doggy_struct*)f->char_struct; - //printf("ears %f\n", ears); - if(dir==DOWN){ - if(dog->curr_ear < (NUM_EARS-1)) - dog->curr_ear++; - dog->curr_ear_angle = dog->curr_ear_angle+(MAX_EAR_ANGLE-dog->curr_ear_angle)/2; - } - if(dir==UP){ - if(dog->curr_ear > 0) - dog->curr_ear--; - dog->curr_ear_angle = dog->curr_ear_angle+(MIN_EAR_ANGLE-dog->curr_ear_angle)/2; - } - else if(dir==CONST){ - dog->curr_ear=1; - dog->curr_ear_angle = dog->curr_ear_angle+(0-dog->curr_ear_angle)/3; - } - - glPushMatrix(); - glTranslatef(-EARS_X, -EARS_Z, EARS_Y); - if(f->my_mode==CRAZY1) - glRotatef(MAX_EAR_ANGLE, 0.0, 1.0, 0.0); - else - glRotatef(dog->curr_ear_angle, 0.0, 1.0, 0.0); - glmSetMat(f->materials, f->mat_indeces[APPENDAGE]); - glCallList(dog->ears[dog->curr_ear]); - glPopMatrix(); - glPushMatrix(); - glTranslatef(EARS_X, -EARS_Z, EARS_Y); - glScalef(-1, 1, 1); - if(f->my_mode==CRAZY1) - glRotatef(MIN_EAR_ANGLE, 0.0, 1.0, 0.0); - else - glRotatef(dog->curr_ear_angle, 0.0, 1.0, 0.0); - glCallList(dog->ears[dog->curr_ear]); - glPopMatrix(); -} - -void draw_dog(FACE f, GLfloat angle, GLfloat yangle, BOOL left_open, BOOL right_open, GLfloat open, DIRECTION dir, OUTPUT_MODE mode){ - int next_face; - struct doggy_struct* dog; - f->crazy_count--; - if(f->crazy_count==0){ - f->my_mode = mode; - if(mode!=NORMAL) - f->crazy_count = CRAZY_COUNT; - else - f->crazy_count = 1; - } - apply_output_mode(f, &angle, &yangle, &left_open, &right_open, &open, &dir); - next_face = NUM_DOGS - open*NUM_DOGS - 1; - dog = (struct doggy_struct*)f->char_struct; - if(next_face > dog->curr_face) - dog->curr_face++; - else if(next_face < dog->curr_face) - dog->curr_face--; - - glPushMatrix(); - glRotatef(-90, 1.0, 0.0, 0.0); - glRotatef(-yangle, 0.0, 0.0, -1.0); - glRotatef(-angle, 0, 1, 0); - dog_eyes(f, angle, yangle, left_open, right_open, dir); - dog_ears(f, dir); - glmSetMat(f->materials, f->mat_indeces[HEAD]); - glCallList(dog->faces[dog->curr_face]); - glPopMatrix(); -} - -void init_dog(FACE f){ - int i; - struct doggy_struct* dog; - f->char_struct = (struct doggy_struct*)malloc(sizeof(struct doggy_struct)); - f->materials = glmMTL(dog_mtl_file); - f->mat_indeces=(GLint*)malloc(sizeof(GLint)*NUM_PARTS); - //initialize all of the parts to some colors - change_materials(f, init_dog_mats, NUM_PARTS); - f->my_mode = NORMAL; - f->eye_count = EYE_TIME*NUM_DOG_LIDS-1; - f->crazy_count = 1; - f->curr_z_angle = 0; - f->curr_eye_pop = 0; - f->name = strdup("dog"); - f->draw_func = draw_dog; - dog = (struct doggy_struct*)f->char_struct; - - printf("\nReading models: "); - fflush(0); - - //initialize the draw lists - init_lists(&dog->faces, &dog->m_faces, NUM_DOGS, f->name, DOG_SCALE); - init_lists(&dog->lids, &dog->m_lids, NUM_DOG_LIDS, "lid", LID_SCALE); - init_lists(&dog->ears, &dog->m_ears, NUM_EARS, "ear", EAR_SCALE); - init_lists(&dog->eyes, &dog->m_eyes, NUM_EYES, "dogeye", EYE_SCALE); - init_lists(&dog->pupil, &dog->m_pupil, NUM_PUPILS, "dogpupil", PUP_SCALE); - init_lists(&dog->iris, &dog->m_iris, NUM_IRIS, "dogiris", IRIS_SCALE); - - printf("\n"); - fflush(0); - - dog->curr_face = 0; - dog->curr_ear = 1; - dog->curr_left_lid = 9; - dog->curr_right_lid = 0; - dog->curr_left_eye = 0; - dog->curr_right_eye = 0; - dog->curr_pupil = 0; - dog->curr_ear_angle = 0; -}
--- a/plugins/crazychat/doggy.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -#include "glm.h" - -struct doggy_struct{ - GLint* faces, *lids, *ears, *eyes, *iris, *pupil; - GLMmodel** m_faces, **m_lids, **m_ears, **m_eyes, **m_iris, **m_pupil; - int curr_face, curr_ear, curr_left_lid, curr_right_lid, curr_right_eye, curr_left_eye, curr_pupil, eye_count; - float curr_ear_angle; -}; - -void init_dog(FACE f); \ No newline at end of file
--- a/plugins/crazychat/draw.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -#include "righteye10.h" - -typedef struct _point{ - GLshort x; - GLshort y; -} Point; - -typedef struct Packet{ - Point mouthLeft; - Point mouthRight; - Point mouthTop; - Point mouthBottom; - Point eyeLeft; - Point eyeRight; -} Packet; - -#define NUM_EYE_FRAMES 10 - -GLint rightEyes[NUM_EYE_FRAMES]; - -void CalculateMouthPoints(GLshort[][][] ctrlpoints, struct Packet* p) -{ - GLshort points[4][3]; - points[0][0]=p->mouthLeft.x; - points[0][1]=p->mouthLeft.y; - points[0][2]=front; - - points[1][0]=p->mouthBottom.x; - points[1][1]=p->mouthTop.y; - points[1][2]=front; - - points[2][0]=p->mouthRight.x; - points[2][1]=p->mouthRight.y; - points[2][2]=front; - - points[3][0]=p->mouthTop.x; - points[3][1]=p->mouthTop.y; - points[3][2]=front; - - ctrlpoints[0][0][0]=points[0][0]; - ctrlpoints[0][0][1]=points[0][1]; - ctrlpoints[0][0][2]=points[0][2]; - - ctrlpoints[0][1][0]=points[1][0]; - ctrlpoints[0][1][1]=points[1][1]; - ctrlpoints[0][1][2]=points[1][2]; - - ctrlpoints[0][2][0]=points[2][0]; - ctrlpoints[0][2][1]=points[2][1]; - ctrlpoints[0][2][2]=points[2][2]; - - ctrlpoints[1][0][0]=points[0][0]; - ctrlpoints[1][0][1]=points[0][1]; - ctrlpoints[1][0][2]=points[0][2]; - - ctrlpoints[1][1][0]=0; - ctrlpoints[1][1][1]=0; - ctrlpoints[1][1][2]=back; - - ctrlpoints[1][2][0]=points[2][0]; - ctrlpoints[1][2][1]=points[2][1]; - ctrlpoints[1][2][2]=points[2][2]; - - ctrlpoints[2][0][0]=points[0][0]; - ctrlpoints[2][0][1]=points[0][1]; - ctrlpoints[2][0][2]=points[0][2]; - - ctrlpoints[2][1][0]=points[3][0]; - ctrlpoints[2][1][1]=points[3][1]; - ctrlpoints[2][1][2]=points[3][2]; - - ctrlpoints[2][2][0]=points[2][0]; - ctrlpoints[2][2][1]=points[2][1]; - ctrlpoints[2][2][2]=points[2][2]; -} - -void drawMouth(struct Packet* p) -{ - GLshort[4][3][3] ctrlpoints; - CalculateMouthPoints(ctrlpoints, p); - - glMap2f(GL_MAP2_VERTEX_3, 0, 10, 3, 3, 0.0, 10.0, 9, 3, &ctrlpoints[0][0][0]); - glEnable(GL_MAP2_VERTEX_3); - glMapGrid2f(10, 0, 10, 10, 0, 10); - glEnable(GL_AUTO_NORMAL); - glEvalMesh2(GL_FILL, 0, 10, 0, 10); -} - -void initEyes(){ - - -void drawEyes(struct Packet* p){ - GLshort eye[3][3][3]; - CalculateEyePoints(eye, p, LEFT); - glMap2f(GL_MAP2_VERTEX_3, 0, 10, 3, 3, 0.0, 10.0, 9, 3, &eyep[0][0][0]); - glMapGrid2f(10, 0, 10, 10, 0, 10); - glEvalMesh2(GL_FILL, 0, 10, 0, 10); - - CalculateEyePoints(eye, p, RIGHT); - glMap2f(GL_MAP2_VERTEX_3, 0, 10, 3, 3, 0.0, 10.0, 9, 3, &eyep[0][0][0]); - glMapGrid2f(10, 0, 10, 10, 0, 10); - glEvalMesh2(GL_FILL, 0, 10, 0, 10); - -} - -void drawHead(struct Packet* p){ -}
--- a/plugins/crazychat/eye.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,812 +0,0 @@ -/* -This file was produced by Deep Exploration Plugin: CPP Export filter. - -Deep Exploration - -Copyright (c) 1999-2003 Right Hemisphere, Inc - -WWW http://www.righthemisphere.com/dexp.htm -eMail support@righthemisphere.com -*/ -//#include <windows.h> -#include <GL/gl.h> -#include <GL/glu.h> - -#include <math.h> - -typedef struct sample_MATERIAL{ - GLfloat ambient[3]; - GLfloat diffuse[3]; - GLfloat specular[3]; - GLfloat emission[3]; - GLfloat alpha; - GLfloat phExp; - int texture; -} sample_MATERIAL; - -typedef struct sample_TEXTURE{ - char * name; - GLint id; -} sample_TEXTURE; - -static sample_MATERIAL materials [2] = { - {{0.117647f,0.117647f,0.117647f}, {0.752941f,0.752941f,0.752941f}, {0.752941f,0.752941f,0.752941f}, {0.0f,0.0f,0.0f}, 1.0f,8.0f,-1}, //Explorer Default - {{1.0f,1.0f,1.0f}, {1.0f,1.0f,1.0f}, {1.0f,1.0f,1.0f}, {1.0f,1.0f,1.0f}, 1.0f,32.0f,0} //Material #5 -}; - -static sample_TEXTURE texture_maps [1] = { -{"eye10.bmp_0.bmp",0} -}; - -// 244 Verticies -// 152 Texture Coordinates -// 328 Normals -// 448 Triangles - -static short face_indicies[448][9] = { -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 } -// Object #-1 - , {65,66,67 ,86,87,88 ,0,1,2 }, {65,67,68 ,89,88,90 ,3,2,4 }, - {65,68,69 ,91,90,92 ,5,4,6 }, {65,69,70 ,93,92,94 ,7,6,8 }, {65,70,71 ,95,94,96 ,9,8,10 }, - {65,71,72 ,97,96,98 ,11,10,12 }, {65,72,73 ,99,98,100 ,13,12,14 }, - {65,73,74 ,101,100,102 ,15,14,16 }, {65,74,75 ,103,102,104 ,17,16,18 }, - {65,75,76 ,105,104,106 ,19,18,20 }, {65,76,77 ,107,106,108 ,21,20,22 }, - {65,77,78 ,109,108,110 ,23,22,24 }, {65,78,79 ,111,110,112 ,25,24,26 }, - {65,79,80 ,113,112,114 ,27,26,28 }, {65,80,81 ,115,114,116 ,29,28,30 }, - {65,81,66 ,117,116,117 ,31,30,32 }, {66,82,83 ,87,118,119 ,1,33,34 }, - {66,83,67 ,87,119,88 ,1,34,2 }, {67,83,84 ,88,119,120 ,2,34,35 }, - {67,84,68 ,88,120,90 ,2,35,4 }, {68,84,85 ,90,120,121 ,4,35,36 }, - {68,85,69 ,90,121,92 ,4,36,6 }, {69,85,86 ,92,121,122 ,6,36,37 }, - {69,86,70 ,92,122,94 ,6,37,8 }, {70,86,87 ,94,122,123 ,8,37,38 }, - {70,87,71 ,94,123,96 ,8,38,10 }, {71,87,88 ,96,123,124 ,10,38,39 }, - {71,88,72 ,96,124,98 ,10,39,12 }, {72,88,89 ,98,124,125 ,12,39,40 }, - {72,89,73 ,98,125,100 ,12,40,14 }, {73,89,90 ,100,125,126 ,14,40,41 }, - {73,90,74 ,100,126,102 ,14,41,16 }, {74,90,91 ,102,126,127 ,16,41,42 }, - {74,91,75 ,102,127,104 ,16,42,18 }, {75,91,92 ,104,127,128 ,18,42,43 }, - {75,92,76 ,104,128,106 ,18,43,20 }, {76,92,93 ,106,128,129 ,20,43,44 }, - {76,93,77 ,106,129,108 ,20,44,22 }, {77,93,94 ,108,129,130 ,22,44,45 }, - {77,94,78 ,108,130,110 ,22,45,24 }, {78,94,95 ,110,130,131 ,24,45,46 }, - {78,95,79 ,110,131,112 ,24,46,26 }, {79,95,96 ,112,131,132 ,26,46,47 }, - {79,96,80 ,112,132,114 ,26,47,28 }, {80,96,97 ,114,132,133 ,28,47,48 }, - {80,97,81 ,114,133,116 ,28,48,30 }, {81,97,82 ,116,133,134 ,30,48,49 }, - {81,82,66 ,116,135,135 ,30,49,32 }, {82,98,99 ,118,136,137 ,33,50,51 }, - {82,99,83 ,118,137,119 ,33,51,34 }, {83,99,100 ,119,137,138 ,34,51,52 }, - {83,100,84 ,119,138,120 ,34,52,35 }, {84,100,101 ,120,138,139 ,35,52,53 }, - {84,101,85 ,120,139,121 ,35,53,36 }, {85,101,102 ,121,139,140 ,36,53,54 }, - {85,102,86 ,121,140,122 ,36,54,37 }, {86,102,103 ,122,140,141 ,37,54,55 }, - {86,103,87 ,122,141,123 ,37,55,38 }, {87,103,104 ,123,141,142 ,38,55,56 }, - {87,104,88 ,123,142,124 ,38,56,39 }, {88,104,105 ,124,142,143 ,39,56,57 }, - {88,105,89 ,124,143,125 ,39,57,40 }, {89,105,106 ,125,143,144 ,40,57,58 }, - {89,106,90 ,125,144,126 ,40,58,41 }, {90,106,107 ,126,144,145 ,41,58,59 }, - {90,107,91 ,126,145,127 ,41,59,42 }, {91,107,108 ,127,145,146 ,42,59,60 }, - {91,108,92 ,127,146,128 ,42,60,43 }, {92,108,109 ,128,146,147 ,43,60,61 }, - {92,109,93 ,128,147,129 ,43,61,44 }, {93,109,110 ,129,147,148 ,44,61,62 }, - {93,110,94 ,129,148,130 ,44,62,45 }, {94,110,111 ,130,148,149 ,45,62,63 }, - {94,111,95 ,130,149,131 ,45,63,46 }, {95,111,112 ,131,149,150 ,46,63,64 }, - {95,112,96 ,131,150,132 ,46,64,47 }, {96,112,113 ,132,150,151 ,47,64,65 }, - {96,113,97 ,132,151,133 ,47,65,48 }, {97,113,98 ,133,151,152 ,48,65,66 }, - {97,98,82 ,133,153,153 ,48,66,49 }, {98,114,115 ,136,154,155 ,50,67,68 }, - {98,115,99 ,136,155,137 ,50,68,51 }, {99,115,116 ,137,155,156 ,51,68,69 }, - {99,116,100 ,137,156,138 ,51,69,52 }, {100,116,117 ,138,156,157 ,52,69,70 }, - {100,117,101 ,138,157,139 ,52,70,53 }, {101,117,118 ,139,157,158 ,53,70,71 }, - {101,118,102 ,139,158,140 ,53,71,54 }, {102,118,119 ,140,158,159 ,54,71,72 }, - {102,119,103 ,140,159,141 ,54,72,55 }, {103,119,120 ,141,159,160 ,55,72,73 }, - {103,120,104 ,141,160,142 ,55,73,56 }, {104,120,121 ,142,160,161 ,56,73,74 }, - {104,121,105 ,142,161,143 ,56,74,57 }, {105,121,122 ,143,161,162 ,57,74,75 }, - {105,122,106 ,143,162,144 ,57,75,58 }, {106,122,123 ,144,162,163 ,58,75,76 }, - {106,123,107 ,144,163,145 ,58,76,59 }, {107,123,124 ,145,163,164 ,59,76,77 }, - {107,124,108 ,145,164,146 ,59,77,60 }, {108,124,125 ,146,164,165 ,60,77,78 }, - {108,125,109 ,146,165,147 ,60,78,61 }, {109,125,126 ,147,165,166 ,61,78,79 }, - {109,126,110 ,147,166,148 ,61,79,62 }, {110,126,127 ,148,166,167 ,62,79,80 }, - {110,127,111 ,148,167,149 ,62,80,63 }, {111,127,128 ,149,167,168 ,63,80,81 }, - {111,128,112 ,149,168,150 ,63,81,64 }, {112,128,129 ,150,168,169 ,64,81,82 }, - {112,129,113 ,150,169,151 ,64,82,65 }, {113,129,114 ,151,169,170 ,65,82,83 }, - {113,114,98 ,151,171,171 ,65,83,66 }, {114,130,131 ,154,172,173 ,67,84,85 }, - {114,131,115 ,154,173,155 ,67,85,68 }, {115,131,132 ,155,173,174 ,68,85,86 }, - {115,132,116 ,155,174,156 ,68,86,69 }, {116,132,133 ,156,174,175 ,69,86,87 }, - {116,133,117 ,156,175,157 ,69,87,70 }, {117,133,134 ,157,175,176 ,70,87,88 }, - {117,134,118 ,157,176,158 ,70,88,71 }, {118,134,135 ,158,176,177 ,71,88,89 }, - {118,135,119 ,158,177,159 ,71,89,72 }, {119,135,136 ,159,177,178 ,72,89,90 }, - {119,136,120 ,159,178,160 ,72,90,73 }, {120,136,137 ,160,178,179 ,73,90,91 }, - {120,137,121 ,160,179,161 ,73,91,74 }, {121,137,138 ,161,179,180 ,74,91,92 }, - {121,138,122 ,161,180,162 ,74,92,75 }, {122,138,139 ,162,180,181 ,75,92,93 }, - {122,139,123 ,162,181,163 ,75,93,76 }, {123,139,140 ,163,181,182 ,76,93,94 }, - {123,140,124 ,163,182,164 ,76,94,77 }, {124,140,141 ,164,182,183 ,77,94,95 }, - {124,141,125 ,164,183,165 ,77,95,78 }, {125,141,142 ,165,183,184 ,78,95,96 }, - {125,142,126 ,165,184,166 ,78,96,79 }, {126,142,143 ,166,184,185 ,79,96,97 }, - {126,143,127 ,166,185,167 ,79,97,80 }, {127,143,144 ,167,185,186 ,80,97,98 }, - {127,144,128 ,167,186,168 ,80,98,81 }, {128,144,145 ,168,186,187 ,81,98,99 }, - {128,145,129 ,168,187,169 ,81,99,82 }, {129,145,130 ,169,187,188 ,82,99,100 }, - {129,130,114 ,169,189,189 ,82,100,83 }, {130,146,147 ,172,190,191 ,84,101,102 }, - {130,147,131 ,172,191,173 ,84,102,85 }, {131,147,148 ,173,191,192 ,85,102,103 }, - {131,148,132 ,173,192,174 ,85,103,86 }, {132,148,149 ,174,192,193 ,86,103,104 }, - {132,149,133 ,174,193,175 ,86,104,87 }, {133,149,150 ,175,193,194 ,87,104,105 }, - {133,150,134 ,175,194,176 ,87,105,88 }, {134,150,151 ,176,194,195 ,88,105,106 }, - {134,151,135 ,176,195,177 ,88,106,89 }, {135,151,152 ,177,195,196 ,89,106,107 }, - {135,152,136 ,177,196,178 ,89,107,90 }, {136,152,153 ,178,196,197 ,90,107,108 }, - {136,153,137 ,178,197,179 ,90,108,91 }, {137,153,154 ,179,197,198 ,91,108,109 }, - {137,154,138 ,179,198,180 ,91,109,92 }, {138,154,155 ,180,198,199 ,92,109,110 }, - {138,155,139 ,180,199,181 ,92,110,93 }, {139,155,156 ,181,199,200 ,93,110,111 }, - {139,156,140 ,181,200,182 ,93,111,94 }, {140,156,157 ,182,200,201 ,94,111,112 }, - {140,157,141 ,182,201,183 ,94,112,95 }, {141,157,158 ,183,201,202 ,95,112,113 }, - {141,158,142 ,183,202,184 ,95,113,96 }, {142,158,159 ,184,202,203 ,96,113,114 }, - {142,159,143 ,184,203,185 ,96,114,97 }, {143,159,160 ,185,203,204 ,97,114,115 }, - {143,160,144 ,185,204,186 ,97,115,98 }, {144,160,161 ,186,204,205 ,98,115,116 }, - {144,161,145 ,186,205,187 ,98,116,99 }, {145,161,146 ,187,205,206 ,99,116,117 }, - {145,146,130 ,187,207,207 ,99,117,100 }, {146,162,163 ,190,208,209 ,101,118,119 }, - {146,163,147 ,190,209,191 ,101,119,102 }, {147,163,164 ,191,209,210 ,102,119,120 }, - {147,164,148 ,191,210,192 ,102,120,103 }, {148,164,165 ,192,210,211 ,103,120,121 }, - {148,165,149 ,192,211,193 ,103,121,104 }, {149,165,166 ,193,211,212 ,104,121,122 }, - {149,166,150 ,193,212,194 ,104,122,105 }, {150,166,167 ,194,212,213 ,105,122,123 }, - {150,167,151 ,194,213,195 ,105,123,106 }, {151,167,168 ,195,213,214 ,106,123,124 }, - {151,168,152 ,195,214,196 ,106,124,107 }, {152,168,169 ,196,214,215 ,107,124,125 }, - {152,169,153 ,196,215,197 ,107,125,108 }, {153,169,170 ,197,215,216 ,108,125,126 }, - {153,170,154 ,197,216,198 ,108,126,109 }, {154,170,171 ,198,216,217 ,109,126,127 }, - {154,171,155 ,198,217,199 ,109,127,110 }, {155,171,172 ,199,217,218 ,110,127,128 }, - {155,172,156 ,199,218,200 ,110,128,111 }, {156,172,173 ,200,218,219 ,111,128,129 }, - {156,173,157 ,200,219,201 ,111,129,112 }, {157,173,174 ,201,219,220 ,112,129,130 }, - {157,174,158 ,201,220,202 ,112,130,113 }, {158,174,175 ,202,220,221 ,113,130,131 }, - {158,175,159 ,202,221,203 ,113,131,114 }, {159,175,176 ,203,221,222 ,114,131,132 }, - {159,176,160 ,203,222,204 ,114,132,115 }, {160,176,177 ,204,222,223 ,115,132,133 }, - {160,177,161 ,204,223,205 ,115,133,116 }, {161,177,162 ,205,223,224 ,116,133,134 }, - {161,162,146 ,205,225,225 ,116,134,117 }, {178,163,162 ,226,209,208 ,135,119,118 }, - {178,164,163 ,227,210,209 ,136,120,119 }, {178,165,164 ,228,211,210 ,137,121,120 }, - {178,166,165 ,229,212,211 ,138,122,121 }, {178,167,166 ,230,213,212 ,139,123,122 }, - {178,168,167 ,231,214,213 ,140,124,123 }, {178,169,168 ,232,215,214 ,141,125,124 }, - {178,170,169 ,233,216,215 ,142,126,125 }, {178,171,170 ,234,217,216 ,143,127,126 }, - {178,172,171 ,235,218,217 ,144,128,127 }, {178,173,172 ,236,219,218 ,145,129,128 }, - {178,174,173 ,237,220,219 ,146,130,129 }, {178,175,174 ,238,221,220 ,147,131,130 }, - {178,176,175 ,239,222,221 ,148,132,131 }, {178,177,176 ,240,223,222 ,149,133,132 }, - {178,162,177 ,241,241,223 ,150,151,133 } -// Object #-1 - , {179,180,181 ,242,243,244 ,0,1,2 }, {179,181,182 ,245,244,246 ,3,2,4 }, - {179,182,183 ,247,246,248 ,5,4,6 }, {179,183,184 ,249,248,250 ,7,6,8 }, - {179,184,185 ,251,250,252 ,9,8,10 }, {179,185,186 ,253,252,254 ,11,10,12 }, - {179,186,187 ,255,254,256 ,13,12,14 }, {179,187,188 ,257,256,258 ,15,14,16 }, - {179,188,189 ,259,258,260 ,17,16,18 }, {179,189,190 ,261,260,262 ,19,18,20 }, - {179,190,191 ,263,262,264 ,21,20,22 }, {179,191,192 ,265,264,266 ,23,22,24 }, - {179,192,193 ,267,266,268 ,25,24,26 }, {179,193,194 ,269,268,270 ,27,26,28 }, - {179,194,195 ,271,270,272 ,29,28,30 }, {179,195,180 ,273,272,273 ,31,30,32 }, - {180,196,197 ,243,274,275 ,1,33,34 }, {180,197,181 ,243,275,244 ,1,34,2 }, - {181,197,198 ,244,275,276 ,2,34,35 }, {181,198,182 ,244,276,246 ,2,35,4 }, - {182,198,199 ,246,276,277 ,4,35,36 }, {182,199,183 ,246,277,248 ,4,36,6 }, - {183,199,200 ,248,277,278 ,6,36,37 }, {183,200,184 ,248,278,250 ,6,37,8 }, - {184,200,201 ,250,278,279 ,8,37,38 }, {184,201,185 ,250,279,252 ,8,38,10 }, - {185,201,202 ,252,279,280 ,10,38,39 }, {185,202,186 ,252,280,254 ,10,39,12 }, - {186,202,203 ,254,280,281 ,12,39,40 }, {186,203,187 ,254,281,256 ,12,40,14 }, - {187,203,204 ,256,281,282 ,14,40,41 }, {187,204,188 ,256,282,258 ,14,41,16 }, - {188,204,205 ,258,282,283 ,16,41,42 }, {188,205,189 ,258,283,260 ,16,42,18 }, - {189,205,206 ,260,283,284 ,18,42,43 }, {189,206,190 ,260,284,262 ,18,43,20 }, - {190,206,207 ,262,284,285 ,20,43,44 }, {190,207,191 ,262,285,264 ,20,44,22 }, - {191,207,208 ,264,285,286 ,22,44,45 }, {191,208,192 ,264,286,266 ,22,45,24 }, - {192,208,209 ,266,286,287 ,24,45,46 }, {192,209,193 ,266,287,268 ,24,46,26 }, - {193,209,210 ,268,287,288 ,26,46,47 }, {193,210,194 ,268,288,270 ,26,47,28 }, - {194,210,211 ,270,288,289 ,28,47,48 }, {194,211,195 ,270,289,272 ,28,48,30 }, - {195,211,196 ,272,289,290 ,30,48,49 }, {195,196,180 ,272,291,291 ,30,49,32 }, - {196,212,213 ,274,292,293 ,33,50,51 }, {196,213,197 ,274,293,275 ,33,51,34 }, - {197,213,214 ,275,293,294 ,34,51,52 }, {197,214,198 ,275,294,276 ,34,52,35 }, - {198,214,215 ,276,294,295 ,35,52,53 }, {198,215,199 ,276,295,277 ,35,53,36 }, - {199,215,216 ,277,295,296 ,36,53,54 }, {199,216,200 ,277,296,278 ,36,54,37 }, - {200,216,217 ,278,296,297 ,37,54,55 }, {200,217,201 ,278,297,279 ,37,55,38 }, - {201,217,218 ,279,297,298 ,38,55,56 }, {201,218,202 ,279,298,280 ,38,56,39 }, - {202,218,219 ,280,298,299 ,39,56,57 }, {202,219,203 ,280,299,281 ,39,57,40 }, - {203,219,220 ,281,299,300 ,40,57,58 }, {203,220,204 ,281,300,282 ,40,58,41 }, - {204,220,221 ,282,300,301 ,41,58,59 }, {204,221,205 ,282,301,283 ,41,59,42 }, - {205,221,222 ,283,301,302 ,42,59,60 }, {205,222,206 ,283,302,284 ,42,60,43 }, - {206,222,223 ,284,302,303 ,43,60,61 }, {206,223,207 ,284,303,285 ,43,61,44 }, - {207,223,224 ,285,303,304 ,44,61,62 }, {207,224,208 ,285,304,286 ,44,62,45 }, - {208,224,225 ,286,304,305 ,45,62,63 }, {208,225,209 ,286,305,287 ,45,63,46 }, - {209,225,226 ,287,305,306 ,46,63,64 }, {209,226,210 ,287,306,288 ,46,64,47 }, - {210,226,227 ,288,306,307 ,47,64,65 }, {210,227,211 ,288,307,289 ,47,65,48 }, - {211,227,212 ,289,307,308 ,48,65,66 }, {211,212,196 ,289,309,309 ,48,66,49 }, - {212,228,229 ,292,310,311 ,50,67,68 }, {212,229,213 ,292,311,293 ,50,68,51 }, - {213,229,230 ,293,311,312 ,51,68,69 }, {213,230,214 ,293,312,294 ,51,69,52 }, - {214,230,231 ,294,312,313 ,52,69,70 }, {214,231,215 ,294,313,295 ,52,70,53 }, - {215,231,232 ,295,313,314 ,53,70,71 }, {215,232,216 ,295,314,296 ,53,71,54 }, - {216,232,233 ,296,314,315 ,54,71,72 }, {216,233,217 ,296,315,297 ,54,72,55 }, - {217,233,234 ,297,315,316 ,55,72,73 }, {217,234,218 ,297,316,298 ,55,73,56 }, - {218,234,235 ,298,316,317 ,56,73,74 }, {218,235,219 ,298,317,299 ,56,74,57 }, - {219,235,236 ,299,317,318 ,57,74,75 }, {219,236,220 ,299,318,300 ,57,75,58 }, - {220,236,237 ,300,318,319 ,58,75,76 }, {220,237,221 ,300,319,301 ,58,76,59 }, - {221,237,238 ,301,319,320 ,59,76,77 }, {221,238,222 ,301,320,302 ,59,77,60 }, - {222,238,239 ,302,320,321 ,60,77,78 }, {222,239,223 ,302,321,303 ,60,78,61 }, - {223,239,240 ,303,321,322 ,61,78,79 }, {223,240,224 ,303,322,304 ,61,79,62 }, - {224,240,241 ,304,322,323 ,62,79,80 }, {224,241,225 ,304,323,305 ,62,80,63 }, - {225,241,242 ,305,323,324 ,63,80,81 }, {225,242,226 ,305,324,306 ,63,81,64 }, - {226,242,243 ,306,324,325 ,64,81,82 }, {226,243,227 ,306,325,307 ,64,82,65 }, - {227,243,228 ,307,325,326 ,65,82,83 }, {227,228,212 ,307,327,327 ,65,83,66 } -}; -static GLfloat vertices [244][3] = { -{-0.0594632f,0.340244f,-0.227837f},{-0.0839977f,0.221099f,-0.344899f},{-0.162438f,0.228128f,-0.353657f}, -{-0.225394f,0.248142f,-0.339163f},{-0.260027f,0.278097f,-0.302629f},{-0.260012f,0.31343f,-0.250458f}, -{-0.227263f,0.348764f,-0.192603f},{-0.169721f,0.378718f,-0.139431f},{-0.0976165f,0.398733f,-0.0989695f}, -{-0.0212892f,0.405761f,-0.0760573f},{0.0490029f,0.398733f,-0.07301f},{0.103337f,0.378718f,-0.0900053f}, -{0.133847f,0.348764f,-0.124503f},{0.136676f,0.31343f,-0.171127f},{0.11215f,0.278097f,-0.223036f}, -{0.0633403f,0.248142f,-0.273514f},{-0.00471581f,0.228128f,-0.316247f},{-0.088416f,0.0664659f,-0.404402f}, -{-0.236654f,0.0794526f,-0.421905f},{-0.358018f,0.116435f,-0.394699f},{-0.421142f,0.171783f,-0.323727f}, -{-0.413035f,0.237071f,-0.223224f},{-0.344259f,0.302359f,-0.116005f},{-0.237289f,0.357707f,-0.0234628f}, -{-0.111046f,0.39469f,0.0427706f},{0.0221782f,0.407676f,0.079975f},{0.148264f,0.39469f,0.0859734f}, -{0.246652f,0.357707f,0.0561923f},{0.29851f,0.302359f,-0.00828875f},{0.29812f,0.237071f,-0.0951606f}, -{0.252434f,0.171783f,-0.188204f},{0.169761f,0.116435f,-0.27625f},{0.0538453f,0.0794525f,-0.351645f}, -{-0.0747728f,-0.100115f,-0.397927f},{-0.265094f,-0.083147f,-0.413132f},{-0.421072f,-0.0348269f,-0.371959f}, -{-0.498119f,0.0374891f,-0.276676f},{-0.479955f,0.122792f,-0.147509f},{-0.38696f,0.208094f,-0.0154702f}, -{-0.253427f,0.28041f,0.0930117f},{-0.0998485f,0.328731f,0.16876f},{0.0671615f,0.345698f,0.215499f}, -{0.23274f,0.32873f,0.230046f},{0.363571f,0.28041f,0.196764f},{0.42705f,0.208094f,0.1102f}, -{0.416969f,0.122792f,-0.00920004f},{0.351655f,0.0374891f,-0.13296f},{0.247216f,-0.034827f,-0.245038f}, -{0.104266f,-0.083147f,-0.337127f},{-0.0513718f,-0.253282f,-0.328305f},{-0.247586f,-0.234916f,-0.330761f}, -{-0.405745f,-0.182615f,-0.278113f},{-0.481724f,-0.104341f,-0.176241f},{-0.460848f,-0.01201f,-0.0465844f}, -{-0.365803f,0.0803208f,0.0816631f},{-0.230648f,0.158595f,0.186497f},{-0.0716892f,0.210896f,0.263634f}, -{0.107899f,0.229262f,0.318551f},{0.29045f,0.210896f,0.342957f},{0.434324f,0.158595f,0.311819f}, -{0.5f,0.0803207f,0.215496f},{0.481891f,-0.0120101f,0.079437f},{0.404727f,-0.104341f,-0.060354f}, -{0.289283f,-0.182615f,-0.182709f},{0.136409f,-0.234917f,-0.275803f},{0.117563f,-0.01201f,0.375843f}, -{0.114291f,0.139643f,0.336151f},{0.0508502f,0.128099f,0.322581f},{-0.00136173f,0.0952246f,0.31399f}, -{-0.0363813f,0.0460249f,0.311237f},{-0.0508667f,-0.01201f,0.314621f},{-0.0436149f,-0.0700451f,0.323833f}, -{-0.0152835f,-0.119245f,0.337453f},{0.0315462f,-0.152119f,0.352954f},{0.0919289f,-0.163663f,0.367573f}, -{0.158049f,-0.152119f,0.379363f},{0.219457f,-0.119245f,0.387409f},{0.264776f,-0.070045f,0.391145f}, -{0.284658f,-0.01201f,0.389721f},{0.274768f,0.046025f,0.382324f},{0.237279f,0.0952247f,0.369285f}, -{0.180111f,0.128099f,0.352767f},{0.0852956f,0.268208f,0.257515f},{-0.0287871f,0.246877f,0.236747f}, -{-0.11952f,0.186134f,0.224289f},{-0.178349f,0.0952246f,0.219546f},{-0.201037f,-0.0120101f,0.223154f}, -{-0.186517f,-0.119245f,0.236486f},{-0.136378f,-0.210154f,0.258079f},{-0.0543631f,-0.270898f,0.282448f}, -{0.0529195f,-0.292228f,0.30343f},{0.173518f,-0.270898f,0.318397f},{0.288544f,-0.210154f,0.328679f}, -{0.374946f,-0.119245f,0.335885f},{0.412602f,-0.01201f,0.338198f},{0.391946f,0.0952246f,0.331038f}, -{0.317893f,0.186134f,0.31199f},{0.207926f,0.246877f,0.284788f},{0.0448437f,0.354112f,0.145691f}, -{-0.105491f,0.326243f,0.122505f},{-0.226023f,0.246877f,0.108312f},{-0.303201f,0.128099f,0.1019f}, -{-0.329682f,-0.0120101f,0.10436f},{-0.30443f,-0.152119f,0.118065f},{-0.232051f,-0.270898f,0.141232f}, -{-0.120388f,-0.350263f,0.166539f},{0.0202984f,-0.378132f,0.186412f},{0.174378f,-0.350263f,0.198924f}, -{0.318361f,-0.270898f,0.207861f},{0.424351f,-0.152119f,0.216955f},{0.468735f,-0.01201f,0.224104f}, -{0.440595f,0.128099f,0.221864f},{0.345624f,0.246877f,0.204744f},{0.204291f,0.326243f,0.175963f}, -{0.00299471f,0.384278f,0.00834511f},{-0.168323f,0.354112f,-0.0183378f},{-0.310292f,0.268208f,-0.037007f}, -{-0.400615f,0.139643f,-0.0453738f},{-0.426773f,-0.0120101f,-0.0417815f},{-0.388287f,-0.163663f,-0.0263951f}, -{-0.294627f,-0.292228f,-0.00363743f},{-0.159976f,-0.378132f,0.0188579f},{-0.000457861f,-0.408298f,0.0352872f}, -{0.16409f,-0.378132f,0.0457485f},{0.309093f,-0.292228f,0.0547918f},{0.409769f,-0.163663f,0.0655529f}, -{0.448241f,-0.01201f,0.0751867f},{0.417527f,0.139643f,0.0763255f},{0.321835f,0.268208f,0.063497f}, -{0.17583f,0.354112f,0.038304f},{-0.0360629f,0.354112f,-0.137422f},{-0.205101f,0.326243f,-0.16811f}, -{-0.349242f,0.246877f,-0.191968f},{-0.440435f,0.128099f,-0.202512f},{-0.462794f,-0.0120101f,-0.19744f}, -{-0.416476f,-0.152119f,-0.179929f},{-0.314265f,-0.270898f,-0.157067f},{-0.17459f,-0.350263f,-0.136191f}, -{-0.0174526f,-0.378132f,-0.120891f},{0.135495f,-0.350263f,-0.109443f},{0.261894f,-0.270898f,-0.097771f}, -{0.343535f,-0.152119f,-0.084796f},{0.37068f,-0.01201f,-0.0746691f},{0.341234f,0.128099f,-0.0735399f}, -{0.257546f,0.246877f,-0.0848152f},{0.126641f,0.326243f,-0.107522f},{-0.0665829f,0.268208f,-0.265518f}, -{-0.201637f,0.246877f,-0.29431f},{-0.317741f,0.186134f,-0.317323f},{-0.391187f,0.0952246f,-0.328168f}, -{-0.408078f,-0.0120101f,-0.324621f},{-0.36797f,-0.119245f,-0.309713f},{-0.281561f,-0.210154f,-0.289619f}, -{-0.165397f,-0.270898f,-0.270117f},{-0.0379277f,-0.292228f,-0.253812f},{0.0821894f,-0.270898f,-0.239781f}, -{0.178018f,-0.210154f,-0.226133f},{0.237495f,-0.119245f,-0.213409f},{0.255139f,-0.01201f,-0.205296f}, -{0.2303f,0.0952247f,-0.205955f},{0.164496f,0.186134f,-0.217195f},{0.0619701f,0.246877f,-0.238064f}, -{-0.0811905f,0.139643f,-0.350506f},{-0.154437f,0.128099f,-0.367526f},{-0.216526f,0.0952246f,-0.381076f}, -{-0.25596f,0.0460249f,-0.38821f},{-0.2656f,-0.0120101f,-0.387748f},{-0.244385f,-0.0700451f,-0.380633f}, -{-0.196993f,-0.119245f,-0.369252f},{-0.132114f,-0.152119f,-0.356197f},{-0.0603973f,-0.163663f,-0.343273f}, -{0.00732452f,-0.152119f,-0.331343f},{0.0615615f,-0.119245f,-0.320972f},{0.0953903f,-0.070045f,-0.313197f}, -{0.104981f,-0.01201f,-0.309621f},{0.0893241f,0.046025f,-0.311711f},{0.0498191f,0.0952246f,-0.319978f}, -{-0.00948911f,0.128099f,-0.333609f},{-0.0775452f,-0.01201f,-0.377355f},{0.0662412f,0.347573f,0.213013f}, -{0.0212595f,0.408298f,0.0769026f},{-0.0451443f,0.401592f,0.0751623f},{-0.0935056f,0.382495f,0.0933802f}, -{-0.116134f,0.353914f,0.12753f},{-0.110884f,0.320201f,0.170755f},{-0.080312f,0.286488f,0.216042f}, -{-0.0293751f,0.257908f,0.258144f},{0.03577f,0.238811f,0.293126f},{0.107193f,0.232105f,0.316787f}, -{0.174518f,0.238811f,0.324478f},{0.226144f,0.257908f,0.312906f},{0.252486f,0.286488f,0.282327f}, -{0.249094f,0.320201f,0.237371f},{0.217421f,0.353914f,0.185944f},{0.163196f,0.382495f,0.13702f}, -{0.094519f,0.401592f,0.0986572f},{-0.0221509f,0.405034f,-0.0793323f},{-0.152293f,0.392643f,-0.0835134f}, -{-0.245868f,0.357357f,-0.0457555f},{-0.283508f,0.304547f,0.0260588f},{-0.265498f,0.242254f,0.112987f}, -{-0.205055f,0.17996f,0.197406f},{-0.114628f,0.12715f,0.272443f},{-0.00092518f,0.0918637f,0.336653f}, -{0.128716f,0.0794728f,0.383462f},{0.257523f,0.0918637f,0.400483f},{0.359249f,0.12715f,0.377982f}, -{0.40988f,0.17996f,0.316212f},{0.400654f,0.242254f,0.226581f},{0.339502f,0.304547f,0.127003f}, -{0.240755f,0.357357f,0.0348431f},{0.116104f,0.392644f,-0.0370932f},{-0.0601391f,0.33828f,-0.2307f}, -{-0.242846f,0.32209f,-0.243002f},{-0.375234f,0.275986f,-0.193027f},{-0.422369f,0.206987f,-0.0888319f}, -{-0.388625f,0.125596f,0.037377f},{-0.302564f,0.0442061f,0.155468f},{-0.18679f,-0.0247935f,0.257432f}, -{-0.0468511f,-0.0708974f,0.344428f},{0.116548f,-0.087087f,0.405712f},{0.28691f,-0.0708974f,0.421904f}, -{0.426097f,-0.0247934f,0.382089f},{0.495355f,0.0442061f,0.291519f},{0.482076f,0.125596f,0.169311f}, -{0.402609f,0.206987f,0.0401854f},{0.279861f,0.275986f,-0.0764741f},{0.123549f,0.32209f,-0.169952f}, -{-0.0843006f,0.218197f,-0.34676f},{-0.291441f,0.200673f,-0.367557f},{-0.445002f,0.150771f,-0.314761f}, -{-0.5f,0.0760863f,-0.194992f},{-0.460848f,-0.01201f,-0.0465844f},{-0.363663f,-0.100106f,0.0934045f}, -{-0.238408f,-0.174791f,0.213396f},{-0.0925815f,-0.224693f,0.31132f},{0.0771405f,-0.242217f,0.372066f}, -{0.258422f,-0.224693f,0.375976f},{0.411136f,-0.174791f,0.318319f},{0.49075f,-0.100106f,0.211715f}, -{0.481891f,-0.0120101f,0.0794369f},{0.402881f,0.0760863f,-0.0539284f},{0.278634f,0.150771f,-0.173653f}, -{0.115875f,0.200673f,-0.27448f} -}; -static GLfloat normals [328][3] = { -{0.14128f,0.678859f,-0.720549f},{0.141183f,0.470342f,-0.871117f},{0.0436259f,0.538027f,-0.841798f}, -{0.0679973f,0.716579f,-0.694184f},{-0.119311f,0.639257f,-0.759681f},{-0.00235058f,0.772214f,-0.635358f}, -{-0.255136f,0.759046f,-0.598962f},{-0.0474012f,0.827055f,-0.560118f},{-0.314039f,0.853304f,-0.416235f}, -{-0.0600024f,0.866637f,-0.495318f},{-0.292773f,0.915841f,-0.274809f},{-0.049072f,0.891986f,-0.449392f}, -{-0.212481f,0.95807f,-0.192231f},{-0.0178326f,0.908456f,-0.417599f},{-0.0920599f,0.982527f,-0.161757f}, -{0.0370726f,0.914058f,-0.403886f},{0.0521203f,0.982077f,-0.18113f},{0.108309f,0.902514f,-0.416819f}, -{0.201428f,0.946854f,-0.250789f},{0.179027f,0.872331f,-0.45496f},{0.331459f,0.872109f,-0.359945f}, -{0.23599f,0.827361f,-0.509688f},{0.418216f,0.768374f,-0.484455f},{0.271011f,0.775009f,-0.570888f}, -{0.450676f,0.660369f,-0.60067f},{0.28066f,0.726565f,-0.627163f},{0.433824f,0.571637f,-0.69644f}, -{0.269128f,0.691375f,-0.670501f},{0.379646f,0.512038f,-0.77051f},{0.242614f,0.670979f,-0.70066f}, -{0.296688f,0.482442f,-0.824152f},{0.20092f,0.665188f,-0.719135f},{0.111321f,0.0838976f,-0.990237f}, -{-0.029379f,0.177399f,-0.983701f},{-0.36291f,0.315654f,-0.876732f},{-0.636533f,0.537885f,-0.552726f}, -{-0.692297f,0.698565f,-0.180919f},{-0.609692f,0.790176f,0.0624294f},{-0.463645f,0.864983f,0.191929f}, -{-0.266794f,0.932768f,0.242413f},{-0.0294763f,0.976851f,0.211879f},{0.23276f,0.968844f,0.0846355f}, -{0.473096f,0.871906f,-0.126332f},{0.622688f,0.697126f,-0.355352f},{0.663374f,0.512375f,-0.54535f}, -{0.624155f,0.368076f,-0.689167f},{0.531327f,0.266649f,-0.804108f},{0.396108f,0.19478f,-0.897307f}, -{0.301284f,0.331535f,-0.894043f},{0.293635f,0.335978f,-0.894929f},{0.0262531f,-0.314782f,-0.948801f}, -{-0.145065f,-0.279238f,-0.949201f},{-0.600169f,-0.204803f,-0.773209f},{-0.94784f,0.0687263f,-0.311249f}, -{-0.931339f,0.326478f,0.161309f},{-0.775903f,0.471621f,0.418986f},{-0.595717f,0.581008f,0.554573f}, -{-0.378996f,0.685218f,0.621963f},{-0.1154f,0.782225f,0.612215f},{0.228237f,0.846899f,0.480282f}, -{0.608238f,0.775101f,0.17107f},{0.820052f,0.537806f,-0.19565f},{0.837034f,0.294875f,-0.460893f}, -{0.762505f,0.126921f,-0.634411f},{0.630338f,0.00231725f,-0.776317f},{0.436413f,-0.113109f,-0.892609f}, -{0.320267f,0.0147375f,-0.947213f},{0.348327f,-0.00790562f,-0.93734f},{-0.0276759f,-0.417145f,-0.908418f}, -{-0.141207f,-0.463983f,-0.874517f},{-0.573196f,-0.464631f,-0.674955f},{-0.943646f,-0.249543f,-0.217397f}, -{-0.961507f,0.0693531f,0.265886f},{-0.808033f,0.269491f,0.523886f},{-0.636184f,0.393708f,0.663524f}, -{-0.43775f,0.497816f,0.748702f},{-0.202579f,0.60248f,0.771997f},{0.122768f,0.708696f,0.694751f}, -{0.564416f,0.712283f,0.417239f},{0.875302f,0.482711f,-0.0289185f},{0.906907f,0.205191f,-0.367988f}, -{0.825239f,0.0254238f,-0.564212f},{0.68962f,-0.103674f,-0.716712f},{0.478163f,-0.232147f,-0.847035f}, -{0.283993f,-0.306895f,-0.908385f},{0.330854f,-0.348141f,-0.877117f},{-0.24469f,0.240557f,0.939286f}, -{-0.251704f,0.385303f,0.887799f},{-0.308507f,0.32877f,0.892599f},{-0.289709f,0.216471f,0.932314f}, -{-0.380036f,0.257873f,0.888298f},{-0.323023f,0.177913f,0.929518f},{-0.428302f,0.18168f,0.885183f}, -{-0.338313f,0.138727f,0.930752f},{-0.452208f,0.105373f,0.885666f},{-0.339696f,0.105884f,0.934556f}, -{-0.448119f,0.0223869f,0.893694f},{-0.329378f,0.0709806f,0.941526f},{-0.403498f,-0.0769257f,0.911741f}, -{-0.29726f,0.026574f,0.954427f},{-0.305208f,-0.184313f,0.934279f},{-0.23761f,-0.0127996f,0.971276f}, -{-0.164885f,-0.266084f,0.949743f},{-0.171302f,-0.0247511f,0.984908f},{-0.0181081f,-0.289546f,0.956993f}, -{-0.124133f,-0.0109379f,0.992205f},{0.104381f,-0.239271f,0.965326f},{-0.0977336f,0.0144596f,0.995108f}, -{0.181061f,-0.110489f,0.977246f},{-0.0826528f,0.0527337f,0.995182f},{0.187283f,0.0757574f,0.97938f}, -{-0.0822454f,0.112191f,0.990277f},{0.118036f,0.252508f,0.960368f},{-0.106176f,0.17836f,0.97822f}, -{0.00684446f,0.362199f,0.932075f},{-0.148821f,0.225033f,0.962919f},{-0.110459f,0.398641f,0.910431f}, -{-0.196851f,0.244267f,0.949517f},{-0.245786f,0.641112f,0.727025f},{-0.343754f,0.521981f,0.780621f}, -{-0.477819f,0.373685f,0.795015f},{-0.560849f,0.220352f,0.798056f},{-0.604243f,0.0766681f,0.793103f}, -{-0.610293f,-0.0768122f,0.788443f},{-0.549029f,-0.268252f,0.791586f},{-0.376462f,-0.476467f,0.794516f}, -{-0.114499f,-0.619894f,0.776287f},{0.154797f,-0.653379f,0.741036f},{0.39318f,-0.579683f,0.713707f}, -{0.593512f,-0.372979f,0.713183f},{0.677704f,-0.00981577f,0.735269f},{0.551652f,0.373004f,0.746021f}, -{0.301968f,0.598489f,0.742041f},{0.0536017f,0.664757f,0.745134f},{-0.100712f,0.511852f,0.85315f}, -{-0.129771f,0.495908f,0.858624f},{-0.224077f,0.885635f,0.406743f},{-0.377848f,0.760571f,0.52798f}, -{-0.594967f,0.529479f,0.604703f},{-0.714454f,0.270365f,0.645336f},{-0.764684f,0.0271108f,0.643835f}, -{-0.762621f,-0.221975f,0.607566f},{-0.664936f,-0.506592f,0.548839f},{-0.41186f,-0.772743f,0.482949f}, -{-0.051096f,-0.907492f,0.41695f},{0.296775f,-0.888489f,0.350018f},{0.596061f,-0.754371f,0.275021f}, -{0.85112f,-0.486344f,0.197646f},{0.98554f,-0.0575001f,0.159391f},{0.884713f,0.423397f,0.194983f}, -{0.588143f,0.759515f,0.277894f},{0.243699f,0.899532f,0.362565f},{0.0295394f,0.808074f,0.588339f}, -{0.00266324f,0.793476f,0.608596f},{-0.166151f,0.985993f,-0.0145344f},{-0.359567f,0.924003f,0.130114f}, -{-0.671899f,0.688429f,0.273162f},{-0.862314f,0.339548f,0.375661f},{-0.920945f,-0.0299612f,0.38854f}, -{-0.869365f,-0.38079f,0.314966f},{-0.692245f,-0.695493f,0.192579f},{-0.384078f,-0.919936f,0.0787546f}, -{-0.0074353f,-0.999946f,0.00727214f},{0.355557f,-0.933553f,-0.0453544f},{0.663383f,-0.738106f,-0.122974f}, -{0.877978f,-0.422365f,-0.225307f},{0.955101f,-0.0281345f,-0.294941f},{0.883327f,0.374643f,-0.281737f}, -{0.66969f,0.716173f,-0.196498f},{0.354359f,0.930543f,-0.0922975f},{0.141093f,0.97558f,0.168336f}, -{0.137781f,0.975371f,0.172241f},{-0.0634033f,0.902267f,-0.426491f},{-0.254884f,0.910829f,-0.324692f}, -{-0.616918f,0.75457f,-0.223688f},{-0.913479f,0.387278f,-0.12479f},{-0.991529f,-0.0944241f,-0.0891887f}, -{-0.854436f,-0.500204f,-0.140481f},{-0.601812f,-0.762834f,-0.236446f},{-0.297768f,-0.898656f,-0.322104f}, -{0.0285855f,-0.925596f,-0.377432f},{0.355549f,-0.835223f,-0.419508f},{0.633205f,-0.614776f,-0.470215f}, -{0.79464f,-0.30479f,-0.525023f},{0.829099f,0.0136054f,-0.558937f},{0.771688f,0.307959f,-0.55647f}, -{0.624717f,0.582898f,-0.519575f},{0.382273f,0.799786f,-0.462828f},{0.208037f,0.945407f,-0.250852f}, -{0.208547f,0.945131f,-0.251467f},{0.0633847f,0.652646f,-0.755007f},{-0.0776665f,0.694041f,-0.715734f}, -{-0.348809f,0.594039f,-0.724879f},{-0.609141f,0.313102f,-0.728639f},{-0.706685f,-0.109053f,-0.699073f}, -{-0.589105f,-0.460862f,-0.663748f},{-0.380198f,-0.649568f,-0.658416f},{-0.154288f,-0.721326f,-0.675192f}, -{0.0801603f,-0.709847f,-0.69978f},{0.317168f,-0.612361f,-0.724167f},{0.519448f,-0.425555f,-0.740997f}, -{0.638214f,-0.189666f,-0.74613f},{0.666605f,0.0358181f,-0.74455f},{0.628162f,0.235219f,-0.741677f}, -{0.529309f,0.420798f,-0.736723f},{0.367696f,0.579372f,-0.727412f},{0.253299f,0.765813f,-0.591076f}, -{0.239904f,0.778869f,-0.57949f},{0.155817f,0.364748f,-0.917976f},{0.0934699f,0.390725f,-0.91575f}, -{-0.0428585f,0.321547f,-0.945923f},{-0.16274f,0.162966f,-0.973118f},{-0.222045f,-0.0578604f,-0.973318f}, -{-0.196312f,-0.258955f,-0.945729f},{-0.111267f,-0.384068f,-0.916576f},{0.00190306f,-0.435736f,-0.900072f}, -{0.130312f,-0.42732f,-0.89466f},{0.263266f,-0.362605f,-0.893985f},{0.379493f,-0.249171f,-0.89101f}, -{0.455659f,-0.111402f,-0.883156f},{0.483731f,0.022104f,-0.874938f},{0.469613f,0.140137f,-0.871679f}, -{0.418676f,0.244517f,-0.874598f},{0.333936f,0.331632f,-0.88233f},{0.274051f,0.497279f,-0.823171f}, -{0.259802f,0.511801f,-0.818879f},{0.196491f,0.175512f,-0.964669f},{0.137502f,0.144211f,-0.979947f}, -{0.0851134f,0.0758425f,-0.993481f},{0.0551697f,-0.0171193f,-0.99833f},{0.0548916f,-0.101711f,-0.993298f}, -{0.0738492f,-0.156685f,-0.984884f},{0.101758f,-0.187181f,-0.977041f},{0.142158f,-0.201712f,-0.969073f}, -{0.202039f,-0.192944f,-0.960184f},{0.271485f,-0.147866f,-0.951016f},{0.324833f,-0.0743643f,-0.942843f}, -{0.347908f,0.000269599f,-0.937529f},{0.347281f,0.0599932f,-0.93584f},{0.33107f,0.108334f,-0.937367f}, -{0.299181f,0.148955f,-0.942498f},{0.252396f,0.174568f,-0.951747f},{-0.101791f,0.89554f,0.433181f}, -{-0.10134f,0.982935f,0.153519f},{-0.198237f,0.947331f,0.251529f},{-0.164187f,0.866134f,0.472075f}, -{-0.328502f,0.861858f,0.386377f},{-0.22236f,0.81515f,0.534871f},{-0.407264f,0.738985f,0.53669f}, -{-0.261475f,0.745438f,0.61315f},{-0.423584f,0.613071f,0.666874f},{-0.268118f,0.677242f,0.685169f}, -{-0.392497f,0.519335f,0.759103f},{-0.24919f,0.634149f,0.731956f},{-0.338078f,0.471162f,0.814684f}, -{-0.22364f,0.617892f,0.753787f},{-0.270615f,0.460525f,0.84539f},{-0.194833f,0.616506f,0.762863f}, -{-0.183681f,0.479089f,0.858333f},{-0.149814f,0.630977f,0.761199f},{-0.0646262f,0.532383f,0.844033f}, -{-0.0833697f,0.671555f,0.736249f},{0.0858598f,0.628864f,0.77276f},{-0.0110594f,0.735267f,0.677687f}, -{0.225661f,0.746376f,0.626099f},{0.0402802f,0.800838f,0.597525f},{0.297614f,0.844032f,0.446135f}, -{0.0578062f,0.850871f,0.522185f},{0.287181f,0.911623f,0.294058f},{0.0462129f,0.884f,0.465197f}, -{0.212292f,0.957645f,0.194545f},{0.0112676f,0.903058f,0.429371f},{0.0946535f,0.984007f,0.1509f}, -{-0.0411956f,0.907323f,0.418412f},{-0.0768357f,0.963819f,-0.255243f},{-0.231191f,0.968651f,-0.0909206f}, -{-0.478011f,0.865024f,0.152442f},{-0.613761f,0.668302f,0.420321f},{-0.621661f,0.468695f,0.627584f}, -{-0.555999f,0.333983f,0.761131f},{-0.465216f,0.269773f,0.843087f},{-0.358395f,0.248428f,0.899909f}, -{-0.215945f,0.246155f,0.944868f},{-0.00160027f,0.275933f,0.961176f},{0.307449f,0.391756f,0.867181f}, -{0.57879f,0.576987f,0.57627f},{0.658558f,0.716536f,0.229952f},{0.597679f,0.801598f,-0.0148259f}, -{0.460401f,0.872625f,-0.162965f},{0.266984f,0.934523f,-0.235344f},{0.103983f,0.993374f,-0.048947f}, -{0.105796f,0.993123f,-0.0501399f},{-0.0197862f,0.790362f,-0.61232f},{-0.242279f,0.852503f,-0.463184f}, -{-0.632416f,0.763443f,-0.131166f},{-0.817379f,0.505342f,0.276625f},{-0.788174f,0.265216f,0.555375f}, -{-0.687043f,0.131972f,0.714531f},{-0.56985f,0.0751975f,0.818301f},{-0.421735f,0.0372272f,0.905954f}, -{-0.203784f,-0.0289837f,0.978587f},{0.124815f,-0.104369f,0.986675f},{0.577569f,-0.0689256f,0.813427f}, -{0.917184f,0.152931f,0.367949f},{0.924202f,0.373489f,-0.0797226f},{0.792991f,0.508953f,-0.334863f}, -{0.620113f,0.617825f,-0.483478f},{0.394039f,0.719565f,-0.571804f},{0.224221f,0.865854f,-0.447239f}, -{0.212217f,0.873358f,-0.438418f},{0.0136589f,0.693472f,-0.720354f},{-0.145306f,0.729801f,-0.668039f}, -{-0.601517f,0.69868f,-0.387329f},{-0.891335f,0.442876f,0.0968627f},{-0.872552f,0.175056f,0.45608f}, -{-0.763231f,0.0371769f,0.645055f},{-0.642575f,-0.0180662f,0.76601f},{-0.48495f,-0.0563598f,0.872724f}, -{-0.238167f,-0.142315f,0.960741f},{0.123424f,-0.279803f,0.952091f},{0.574493f,-0.347868f,0.740908f}, -{0.939284f,-0.188771f,0.28655f},{0.979786f,0.0995065f,-0.173547f},{0.850407f,0.302179f,-0.430692f}, -{0.68788f,0.4362f,-0.580131f},{0.478047f,0.550419f,-0.684478f},{0.3163f,0.607377f,-0.72873f}, -{0.292721f,0.633415f,-0.71631f} -}; -static GLfloat textures [152][2] = { -{0.0f,1.0f},{0.0f,0.875f},{0.0625f,0.875f}, -{0.0625f,1.0f},{0.125f,0.875f},{0.125f,1.0f}, -{0.1875f,0.875f},{0.1875f,1.0f},{0.25f,0.875f}, -{0.25f,1.0f},{0.3125f,0.875f},{0.3125f,1.0f}, -{0.375f,0.875f},{0.375f,1.0f},{0.4375f,0.875f}, -{0.4375f,1.0f},{0.5f,0.875f},{0.5f,1.0f}, -{0.5625f,0.875f},{0.5625f,1.0f},{0.625f,0.875f}, -{0.625f,1.0f},{0.6875f,0.875f},{0.6875f,1.0f}, -{0.75f,0.875f},{0.75f,1.0f},{0.8125f,0.875f}, -{0.8125f,1.0f},{0.875f,0.875f},{0.875f,1.0f}, -{0.9375f,0.875f},{0.9375f,1.0f},{1.0f,0.875f}, -{0.0f,0.75f},{0.0625f,0.75f},{0.125f,0.75f}, -{0.1875f,0.75f},{0.25f,0.75f},{0.3125f,0.75f}, -{0.375f,0.75f},{0.4375f,0.75f},{0.5f,0.75f}, -{0.5625f,0.75f},{0.625f,0.75f},{0.6875f,0.75f}, -{0.75f,0.75f},{0.8125f,0.75f},{0.875f,0.75f}, -{0.9375f,0.75f},{1.0f,0.75f},{0.0f,0.625f}, -{0.0625f,0.625f},{0.125f,0.625f},{0.1875f,0.625f}, -{0.25f,0.625f},{0.3125f,0.625f},{0.375f,0.625f}, -{0.4375f,0.625f},{0.5f,0.625f},{0.5625f,0.625f}, -{0.625f,0.625f},{0.6875f,0.625f},{0.75f,0.625f}, -{0.8125f,0.625f},{0.875f,0.625f},{0.9375f,0.625f}, -{1.0f,0.625f},{0.0f,0.5f},{0.0625f,0.5f}, -{0.125f,0.5f},{0.1875f,0.5f},{0.25f,0.5f}, -{0.3125f,0.5f},{0.375f,0.5f},{0.4375f,0.5f}, -{0.5f,0.5f},{0.5625f,0.5f},{0.625f,0.5f}, -{0.6875f,0.5f},{0.75f,0.5f},{0.8125f,0.5f}, -{0.875f,0.5f},{0.9375f,0.5f},{1.0f,0.5f}, -{0.0f,0.375f},{0.0625f,0.375f},{0.125f,0.375f}, -{0.1875f,0.375f},{0.25f,0.375f},{0.3125f,0.375f}, -{0.375f,0.375f},{0.4375f,0.375f},{0.5f,0.375f}, -{0.5625f,0.375f},{0.625f,0.375f},{0.6875f,0.375f}, -{0.75f,0.375f},{0.8125f,0.375f},{0.875f,0.375f}, -{0.9375f,0.375f},{1.0f,0.375f},{0.0f,0.25f}, -{0.0625f,0.25f},{0.125f,0.25f},{0.1875f,0.25f}, -{0.25f,0.25f},{0.3125f,0.25f},{0.375f,0.25f}, -{0.4375f,0.25f},{0.5f,0.25f},{0.5625f,0.25f}, -{0.625f,0.25f},{0.6875f,0.25f},{0.75f,0.25f}, -{0.8125f,0.25f},{0.875f,0.25f},{0.9375f,0.25f}, -{1.0f,0.25f},{0.0f,0.125f},{0.0625f,0.125f}, -{0.125f,0.125f},{0.1875f,0.125f},{0.25f,0.125f}, -{0.3125f,0.125f},{0.375f,0.125f},{0.4375f,0.125f}, -{0.5f,0.125f},{0.5625f,0.125f},{0.625f,0.125f}, -{0.6875f,0.125f},{0.75f,0.125f},{0.8125f,0.125f}, -{0.875f,0.125f},{0.9375f,0.125f},{1.0f,0.125f}, -{0.0f,1.25145e-008f},{0.0625f,1.25145e-008f},{0.125f,1.25145e-008f}, -{0.1875f,1.25145e-008f},{0.25f,1.25145e-008f},{0.3125f,1.25145e-008f}, -{0.375f,1.25145e-008f},{0.4375f,1.25145e-008f},{0.5f,1.25145e-008f}, -{0.5625f,1.25145e-008f},{0.625f,1.25145e-008f},{0.6875f,1.25145e-008f}, -{0.75f,1.25145e-008f},{0.8125f,1.25145e-008f},{0.875f,1.25145e-008f}, -{0.9375f,1.25145e-008f},{1.0f,0.125f} -}; -/*Material indicies*/ -/*{material index,face count}*/ -static int material_ref [3][2] = { -{0,112}, -{1,224}, -{0,112} -}; -//comment out -/* -struct DIB2D{ - BITMAPINFOHEADER *Info; - RGBQUAD *palette; - BYTE *bits; -}; -struct GLTXTLOAD{ - GLint format; - GLint perpixel; - GLint Width; - GLint Height; - BYTE* bits; -}; -*/ - -/* -BOOL LoadDIB(char*file,DIB2D*dib) -Only trueColor and 256 color ucompressed bitmaps supported -*/ - -//comment out -/* - -BOOL LoadDIB(char*file,DIB2D*dib) - { - BOOL result=FALSE; - HANDLE hfile=CreateFile(file,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL,0); - if(hfile!=INVALID_HANDLE_VALUE) - { - DWORD readed; - int size=GetFileSize(hfile,0); - if(size>sizeof(BITMAPFILEHEADER)) - { - BITMAPFILEHEADER bmfh; - ReadFile(hfile,&bmfh,sizeof(BITMAPFILEHEADER),&readed,0); - if((readed==sizeof(BITMAPFILEHEADER)) && (bmfh.bfType==0x4d42)) - { - dib->Info=(BITMAPINFOHEADER*)(new BYTE[size-sizeof(BITMAPFILEHEADER)]); - ReadFile(hfile,dib->Info,size-sizeof(BITMAPFILEHEADER),&readed,0); - dib->bits=(BYTE*)(dib->Info+1); - - if(dib->Info->biBitCount==8) - { - dib->palette=(RGBQUAD*)dib->bits; - if(dib->Info->biClrUsed)dib->bits+=dib->Info->biClrUsed*4;else dib->bits+=1024; - }else{ - dib->palette=NULL; - } - result=TRUE; - } - } - CloseHandle(hfile); - } - return result; - }; - -long ScanBytes(int pixWidth, int bitsPixel) { - return (((long)pixWidth*bitsPixel+31) / 32) * 4; -} - -BOOL ScaleImage(DIB2D&dib,GLTXTLOAD&p) - { - GLint glMaxTexDim; // OpenGL maximum texture dimension - GLint XDMaxTexDim=512; // user maximum texture dimension - GLint minsize =2; - double xPow2, yPow2; - int ixPow2, iyPow2; - int xSize2, ySize2; - GLint m_iWidth=dib.Info->biWidth; - GLint m_iHeight=dib.Info->biHeight; - glGetIntegerv(GL_MAX_TEXTURE_SIZE, &glMaxTexDim); - - glMaxTexDim = min(XDMaxTexDim, glMaxTexDim); - - if (m_iWidth <= glMaxTexDim) - xPow2 = log((double)m_iWidth) / log(2.0); - else - xPow2 = log((double)glMaxTexDim) / log(2.0); - - if (m_iHeight <= glMaxTexDim) - yPow2 = log((double)m_iHeight) / log(2.0); - else - yPow2 = log((double)glMaxTexDim) / log(2.0); - - ixPow2 = (int)xPow2; - iyPow2 = (int)yPow2; - - if (xPow2 != (double)ixPow2) - ixPow2++; - if (yPow2 != (double)iyPow2) - iyPow2++; - - xSize2 = 1 << ixPow2; - ySize2 = 1 << iyPow2; - - if(xSize2<minsize)xSize2=minsize; - if(ySize2<minsize)ySize2=minsize; - - if(((xSize2==m_iWidth) && (ySize2==m_iHeight))) - { - if(dib.Info->biBitCount==24){ - p.format=GL_BGR_EXT; - p.perpixel=3; - return FALSE; - } - if(dib.Info->biBitCount==32) - { - p.format=GL_BGRA_EXT; - p.perpixel=4; - return FALSE; - } - } - - BYTE *bits=(BYTE *)dib.bits; - if(dib.Info->biBitCount==8){ - - // convert to TRUECOLOR - int _perline=ScanBytes(8,m_iWidth); - int perline=ScanBytes(24,m_iWidth); - bits= new BYTE[perline*m_iHeight * sizeof(BYTE)]; - for(int y=0;y<m_iHeight;y++){ - BYTE *_b=((BYTE *)dib.bits)+y*_perline; - BYTE *b=bits+y*perline; - for(int x=0;x<m_iWidth;x++){ - RGBQUAD _p=dib.palette[*_b]; - _b++; - *b=_p.rgbBlue;b++; - *b=_p.rgbGreen;b++; - *b=_p.rgbRed;b++; - } - } - } - BOOL isAlpha=(dib.Info->biBitCount==32); - int _mem_size=xSize2 * ySize2 * sizeof(BYTE); - if(isAlpha){ - _mem_size*=4; - p.perpixel=4; - p.format=GL_BGRA_EXT; - }else { - _mem_size*=3; - p.perpixel=3; - p.format=GL_BGR_EXT; - } - BYTE *pData = (BYTE*)new BYTE[_mem_size]; - if (!pData) return FALSE; - - if(isAlpha){ - gluScaleImage(GL_BGRA_EXT, m_iWidth, m_iHeight, - GL_UNSIGNED_BYTE, bits, - xSize2, ySize2, GL_UNSIGNED_BYTE, pData); - } - else - gluScaleImage(GL_RGB, m_iWidth, m_iHeight, - GL_UNSIGNED_BYTE, bits, - xSize2, ySize2, GL_UNSIGNED_BYTE, pData); - - - if(bits!=dib.bits)delete bits; -// m_pBits = pData; - m_iWidth = xSize2 ; - m_iHeight = ySize2 ; - p.Width=m_iWidth; - p.Height=m_iHeight; - p.bits=pData; - - return TRUE ; - } -void LoadTexture(char*filename) - { - DIB2D dib; - GLTXTLOAD load; - if(LoadDIB(filename,&dib)) - { - - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - - if(ScaleImage(dib,load)) - { - glTexImage2D(GL_TEXTURE_2D,0,load.perpixel, - load.Width,load.Height,0, - load.format,GL_UNSIGNED_BYTE, - load.bits); - delete load.bits; - }else{ - - glTexImage2D(GL_TEXTURE_2D,0,load.perpixel, - dib.Info->biWidth,dib.Info->biHeight, - 0,load.format,GL_UNSIGNED_BYTE,dib.bits); - } - delete dib.Info; - } - - //DeleteObject(hbitmap); - }; -*/ - -void MyMaterial(GLenum mode,GLfloat *f,GLfloat alpha) -{ - GLfloat d[4]; - d[0]=f[0]; - d[1]=f[1]; - d[2]=f[2]; - d[3]=alpha; - glMaterialfv (GL_FRONT_AND_BACK,mode,d); -} -/* - * SelectMaterial uses OpenGL commands to define facet colors. - * - * Returns: - * Nothing - */ - -void SelectMaterial(int i) -{ - // - // Define the reflective properties of the 3D Object faces. - // - glEnd(); - GLfloat alpha=materials[i].alpha; - MyMaterial (GL_AMBIENT, materials[i].ambient,alpha); - MyMaterial (GL_DIFFUSE, materials[i].diffuse,alpha); - MyMaterial (GL_SPECULAR, materials[i].specular,alpha); - MyMaterial (GL_EMISSION, materials[i].emission,alpha); - glMaterialf (GL_FRONT_AND_BACK,GL_SHININESS,materials[i].phExp); - glEnd(); - if(materials[i].texture>-1) - { - glEnable(GL_TEXTURE_2D); - glBindTexture(GL_TEXTURE_2D,texture_maps[materials[i].texture].id); - } - else - glDisable(GL_TEXTURE_2D); - glBegin(GL_TRIANGLES); - - glBegin(GL_TRIANGLES); - -}; - -GLint Gen3DObjectList() -{ - int i; - int j; - - GLuint texture_name; - -for(i=0;i<244;i++){ - vertices[i][2]-=5; -} - - glGenTextures(1,&texture_name); - texture_maps[0].id=texture_name; - glBindTexture(GL_TEXTURE_2D,texture_name); - //LoadTexture(texture_maps[0].name); - GLint lid=glGenLists(1); - int mcount=0; - int mindex=0; - glNewList(lid, GL_COMPILE); - - glBegin (GL_TRIANGLES); - for(i=0;i<sizeof(face_indicies)/sizeof(face_indicies[0]);i++) - { - if(!mcount) - { - SelectMaterial(material_ref[mindex][0]); - mcount=material_ref[mindex][1]; - mindex++; - } - mcount--; - for(j=0;j<3;j++) - { - int vi=face_indicies[i][j]; - int ni=face_indicies[i][j+3];//Normal index - int ti=face_indicies[i][j+6];//Texture index - glNormal3f (normals[ni][0],normals[ni][1],normals[ni][2]); - glTexCoord2f(textures[ti][0],textures[ti][1]); - glVertex3f (vertices[vi][0],vertices[vi][1],vertices[vi][2]); - } - } - glEnd (); - - glEndList(); - return lid; -};
--- a/plugins/crazychat/eye.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -GLint Gen3DObjectList(); \ No newline at end of file
--- a/plugins/crazychat/eyes.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,589 +0,0 @@ -/* -This file was produced by Deep Exploration Plugin: CPP Export filter. - -Deep Exploration - -Copyright (c) 1999-2003 Right Hemisphere, Inc - -WWW http://www.righthemisphere.com/dexp.htm -eMail support@righthemisphere.com -*/ -//#include <windows.h> -#include <GL/gl.h> -#include <GL/glu.h> -#include "mat_struct.h" -#include "eyes.h" -#include "lids.h" - -GLint eyes; - - -static sample_MATERIAL materials [2] = { - {{0.160784f,0.2f,0.32549f}, {0.952941f,0.964706f,1.0f}, {0.044902f,0.044902f,0.044902f}, {0.0f,0.0f,0.0f}, 1.0f,6.96441f,-1}, //Material #532 - {{0.2f,0.34902f,0.2f}, {0.0f,0.0f,0.0f}, {0.179608f,0.179608f,0.179608f}, {0.0f,0.0f,0.0f}, 1.0f,14.9285f,-1} //Material #2 -}; - -// 228 Verticies -// 152 Texture Coordinates -// 312 Normals -// 448 Triangles - -static short face_indicies[448][9] = { -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {18,2,1 ,32,2,1 ,33,2,1 }, {1,17,18 ,1,33,32 ,1,34,33 }, - {19,3,2 ,34,4,2 ,35,4,2 }, {2,18,19 ,2,32,34 ,2,33,35 }, {20,4,3 ,35,6,4 ,36,6,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {21,5,4 ,36,8,6 ,37,8,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {22,6,5 ,37,10,8 ,38,10,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {23,7,6 ,38,12,10 ,39,12,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {24,8,7 ,39,14,12 ,40,14,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {25,9,8 ,40,16,14 ,41,16,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {26,10,9 ,41,18,16 ,42,18,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {27,11,10 ,42,20,18 ,43,20,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {28,12,11 ,43,22,20 ,44,22,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {29,13,12 ,44,24,22 ,45,24,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {30,14,13 ,45,26,24 ,46,26,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {31,15,14 ,46,28,26 ,47,28,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {32,16,15 ,47,30,28 ,48,30,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {17,1,16 ,48,48,30 ,49,32,30 }, - {16,32,17 ,30,47,49 ,30,48,49 }, {34,18,17 ,50,32,33 ,50,33,34 }, - {17,33,34 ,33,51,50 ,34,51,50 }, {35,19,18 ,52,34,32 ,52,35,33 }, - {18,34,35 ,32,50,52 ,33,50,52 }, {36,20,19 ,53,35,34 ,53,36,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {37,21,20 ,54,36,35 ,54,37,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {38,22,21 ,55,37,36 ,55,38,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {39,23,22 ,56,38,37 ,56,39,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {40,24,23 ,57,39,38 ,57,40,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {41,25,24 ,58,40,39 ,58,41,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {42,26,25 ,59,41,40 ,59,42,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {43,27,26 ,60,42,41 ,60,43,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {44,28,27 ,61,43,42 ,61,44,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {45,29,28 ,62,44,43 ,62,45,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {46,30,29 ,63,45,44 ,63,46,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {47,31,30 ,64,46,45 ,64,47,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {48,32,31 ,65,47,46 ,65,48,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {33,17,32 ,66,66,47 ,66,49,48 }, - {32,48,33 ,47,65,67 ,48,65,66 }, {50,34,33 ,68,50,51 ,67,50,51 }, - {33,49,50 ,51,69,68 ,51,68,67 }, {51,35,34 ,70,52,50 ,69,52,50 }, - {34,50,51 ,50,68,70 ,50,67,69 }, {52,36,35 ,71,53,52 ,70,53,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {53,37,36 ,72,54,53 ,71,54,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {54,38,37 ,73,55,54 ,72,55,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {55,39,38 ,74,56,55 ,73,56,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {56,40,39 ,75,57,56 ,74,57,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {57,41,40 ,76,58,57 ,75,58,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {58,42,41 ,77,59,58 ,76,59,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {59,43,42 ,78,60,59 ,77,60,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {60,44,43 ,79,61,60 ,78,61,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {61,45,44 ,80,62,61 ,79,62,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {62,46,45 ,81,63,62 ,80,63,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {63,47,46 ,82,64,63 ,81,64,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {64,48,47 ,83,65,64 ,82,65,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {49,33,48 ,84,84,65 ,83,66,65 }, - {48,64,49 ,65,83,85 ,65,82,83 }, {66,50,49 ,86,68,69 ,84,67,68 }, - {49,65,66 ,69,87,86 ,68,85,84 }, {67,51,50 ,88,70,68 ,86,69,67 }, - {50,66,67 ,68,86,88 ,67,84,86 }, {68,52,51 ,89,71,70 ,87,70,69 }, - {51,67,68 ,70,88,89 ,69,86,87 }, {69,53,52 ,90,72,71 ,88,71,70 }, - {52,68,69 ,71,89,90 ,70,87,88 }, {70,54,53 ,91,73,72 ,89,72,71 }, - {53,69,70 ,72,90,91 ,71,88,89 }, {71,55,54 ,92,74,73 ,90,73,72 }, - {54,70,71 ,73,91,92 ,72,89,90 }, {72,56,55 ,93,75,74 ,91,74,73 }, - {55,71,72 ,74,92,93 ,73,90,91 }, {73,57,56 ,94,76,75 ,92,75,74 }, - {56,72,73 ,75,93,94 ,74,91,92 }, {74,58,57 ,95,77,76 ,93,76,75 }, - {57,73,74 ,76,94,95 ,75,92,93 }, {75,59,58 ,96,78,77 ,94,77,76 }, - {58,74,75 ,77,95,96 ,76,93,94 }, {76,60,59 ,97,79,78 ,95,78,77 }, - {59,75,76 ,78,96,97 ,77,94,95 }, {77,61,60 ,98,80,79 ,96,79,78 }, - {60,76,77 ,79,97,98 ,78,95,96 }, {78,62,61 ,99,81,80 ,97,80,79 }, - {61,77,78 ,80,98,99 ,79,96,97 }, {79,63,62 ,100,82,81 ,98,81,80 }, - {62,78,79 ,81,99,100 ,80,97,98 }, {80,64,63 ,101,83,82 ,99,82,81 }, - {63,79,80 ,82,100,101 ,81,98,99 }, {65,49,64 ,102,102,83 ,100,83,82 }, - {64,80,65 ,83,101,103 ,82,99,100 }, {82,66,65 ,104,86,87 ,101,84,85 }, - {65,81,82 ,87,105,104 ,85,102,101 }, {83,67,66 ,106,88,86 ,103,86,84 }, - {66,82,83 ,86,104,106 ,84,101,103 }, {84,68,67 ,107,89,88 ,104,87,86 }, - {67,83,84 ,88,106,107 ,86,103,104 }, {85,69,68 ,108,90,89 ,105,88,87 }, - {68,84,85 ,89,107,108 ,87,104,105 }, {86,70,69 ,109,91,90 ,106,89,88 }, - {69,85,86 ,90,108,109 ,88,105,106 }, {87,71,70 ,110,92,91 ,107,90,89 }, - {70,86,87 ,91,109,110 ,89,106,107 }, {88,72,71 ,111,93,92 ,108,91,90 }, - {71,87,88 ,92,110,111 ,90,107,108 }, {89,73,72 ,112,94,93 ,109,92,91 }, - {72,88,89 ,93,111,112 ,91,108,109 }, {90,74,73 ,113,95,94 ,110,93,92 }, - {73,89,90 ,94,112,113 ,92,109,110 }, {91,75,74 ,114,96,95 ,111,94,93 }, - {74,90,91 ,95,113,114 ,93,110,111 }, {92,76,75 ,115,97,96 ,112,95,94 }, - {75,91,92 ,96,114,115 ,94,111,112 }, {93,77,76 ,116,98,97 ,113,96,95 }, - {76,92,93 ,97,115,116 ,95,112,113 }, {94,78,77 ,117,99,98 ,114,97,96 }, - {77,93,94 ,98,116,117 ,96,113,114 }, {95,79,78 ,118,100,99 ,115,98,97 }, - {78,94,95 ,99,117,118 ,97,114,115 }, {96,80,79 ,119,101,100 ,116,99,98 }, - {79,95,96 ,100,118,119 ,98,115,116 }, {81,65,80 ,120,120,101 ,117,100,99 }, - {80,96,81 ,101,119,121 ,99,116,117 }, {98,82,81 ,122,104,105 ,118,101,102 }, - {81,97,98 ,105,123,122 ,102,119,118 }, {99,83,82 ,124,106,104 ,120,103,101 }, - {82,98,99 ,104,122,124 ,101,118,120 }, {100,84,83 ,125,107,106 ,121,104,103 }, - {83,99,100 ,106,124,125 ,103,120,121 }, {101,85,84 ,126,108,107 ,122,105,104 }, - {84,100,101 ,107,125,126 ,104,121,122 }, {102,86,85 ,127,109,108 ,123,106,105 }, - {85,101,102 ,108,126,127 ,105,122,123 }, {103,87,86 ,128,110,109 ,124,107,106 }, - {86,102,103 ,109,127,128 ,106,123,124 }, {104,88,87 ,129,111,110 ,125,108,107 }, - {87,103,104 ,110,128,129 ,107,124,125 }, {105,89,88 ,130,112,111 ,126,109,108 }, - {88,104,105 ,111,129,130 ,108,125,126 }, {106,90,89 ,131,113,112 ,127,110,109 }, - {89,105,106 ,112,130,131 ,109,126,127 }, {107,91,90 ,132,114,113 ,128,111,110 }, - {90,106,107 ,113,131,132 ,110,127,128 }, {108,92,91 ,133,115,114 ,129,112,111 }, - {91,107,108 ,114,132,133 ,111,128,129 }, {109,93,92 ,134,116,115 ,130,113,112 }, - {92,108,109 ,115,133,134 ,112,129,130 }, {110,94,93 ,135,117,116 ,131,114,113 }, - {93,109,110 ,116,134,135 ,113,130,131 }, {111,95,94 ,136,118,117 ,132,115,114 }, - {94,110,111 ,117,135,136 ,114,131,132 }, {112,96,95 ,137,119,118 ,133,116,115 }, - {95,111,112 ,118,136,137 ,115,132,133 }, {97,81,96 ,138,138,119 ,134,117,116 }, - {96,112,97 ,119,137,139 ,116,133,134 }, {113,98,97 ,140,122,123 ,135,118,119 }, - {113,99,98 ,141,124,122 ,136,120,118 }, {113,100,99 ,142,125,124 ,137,121,120 }, - {113,101,100 ,143,126,125 ,138,122,121 }, {113,102,101 ,144,127,126 ,139,123,122 }, - {113,103,102 ,145,128,127 ,140,124,123 }, {113,104,103 ,146,129,128 ,141,125,124 }, - {113,105,104 ,147,130,129 ,142,126,125 }, {113,106,105 ,148,131,130 ,143,127,126 }, - {113,107,106 ,149,132,131 ,144,128,127 }, {113,108,107 ,150,133,132 ,145,129,128 }, - {113,109,108 ,151,134,133 ,146,130,129 }, {113,110,109 ,152,135,134 ,147,131,130 }, - {113,111,110 ,153,136,135 ,148,132,131 }, {113,112,111 ,154,137,136 ,149,133,132 }, - {113,97,112 ,155,155,137 ,150,134,133 }, {115,114,116 ,156,157,158 ,1,0,2 }, - {116,114,117 ,158,159,160 ,2,3,4 }, {117,114,118 ,160,161,162 ,4,5,6 }, - {118,114,119 ,162,163,164 ,6,7,8 }, {119,114,120 ,164,165,166 ,8,9,10 }, - {120,114,121 ,166,167,168 ,10,11,12 }, {121,114,122 ,168,169,170 ,12,13,14 }, - {122,114,123 ,170,171,172 ,14,15,16 }, {123,114,124 ,172,173,174 ,16,17,18 }, - {124,114,125 ,174,175,176 ,18,19,20 }, {125,114,126 ,176,177,178 ,20,21,22 }, - {126,114,127 ,178,179,180 ,22,23,24 }, {127,114,128 ,180,181,182 ,24,25,26 }, - {128,114,129 ,182,183,184 ,26,27,28 }, {129,114,130 ,184,185,186 ,28,29,30 }, - {130,114,115 ,186,187,187 ,30,31,32 }, {115,116,132 ,156,158,188 ,1,2,33 }, - {132,131,115 ,188,189,156 ,33,34,1 }, {116,117,133 ,158,160,190 ,2,4,35 }, - {133,132,116 ,190,188,158 ,35,33,2 }, {117,118,134 ,160,162,191 ,4,6,36 }, - {134,133,117 ,191,190,160 ,36,35,4 }, {118,119,135 ,162,164,192 ,6,8,37 }, - {135,134,118 ,192,191,162 ,37,36,6 }, {119,120,136 ,164,166,193 ,8,10,38 }, - {136,135,119 ,193,192,164 ,38,37,8 }, {120,121,137 ,166,168,194 ,10,12,39 }, - {137,136,120 ,194,193,166 ,39,38,10 }, {121,122,138 ,168,170,195 ,12,14,40 }, - {138,137,121 ,195,194,168 ,40,39,12 }, {122,123,139 ,170,172,196 ,14,16,41 }, - {139,138,122 ,196,195,170 ,41,40,14 }, {123,124,140 ,172,174,197 ,16,18,42 }, - {140,139,123 ,197,196,172 ,42,41,16 }, {124,125,141 ,174,176,198 ,18,20,43 }, - {141,140,124 ,198,197,174 ,43,42,18 }, {125,126,142 ,176,178,199 ,20,22,44 }, - {142,141,125 ,199,198,176 ,44,43,20 }, {126,127,143 ,178,180,200 ,22,24,45 }, - {143,142,126 ,200,199,178 ,45,44,22 }, {127,128,144 ,180,182,201 ,24,26,46 }, - {144,143,127 ,201,200,180 ,46,45,24 }, {128,129,145 ,182,184,202 ,26,28,47 }, - {145,144,128 ,202,201,182 ,47,46,26 }, {129,130,146 ,184,186,203 ,28,30,48 }, - {146,145,129 ,203,202,184 ,48,47,28 }, {130,115,131 ,186,204,204 ,30,32,49 }, - {131,146,130 ,205,203,186 ,49,48,30 }, {131,132,148 ,189,188,206 ,34,33,50 }, - {148,147,131 ,206,207,189 ,50,51,34 }, {132,133,149 ,188,190,208 ,33,35,52 }, - {149,148,132 ,208,206,188 ,52,50,33 }, {133,134,150 ,190,191,209 ,35,36,53 }, - {150,149,133 ,209,208,190 ,53,52,35 }, {134,135,151 ,191,192,210 ,36,37,54 }, - {151,150,134 ,210,209,191 ,54,53,36 }, {135,136,152 ,192,193,211 ,37,38,55 }, - {152,151,135 ,211,210,192 ,55,54,37 }, {136,137,153 ,193,194,212 ,38,39,56 }, - {153,152,136 ,212,211,193 ,56,55,38 }, {137,138,154 ,194,195,213 ,39,40,57 }, - {154,153,137 ,213,212,194 ,57,56,39 }, {138,139,155 ,195,196,214 ,40,41,58 }, - {155,154,138 ,214,213,195 ,58,57,40 }, {139,140,156 ,196,197,215 ,41,42,59 }, - {156,155,139 ,215,214,196 ,59,58,41 }, {140,141,157 ,197,198,216 ,42,43,60 }, - {157,156,140 ,216,215,197 ,60,59,42 }, {141,142,158 ,198,199,217 ,43,44,61 }, - {158,157,141 ,217,216,198 ,61,60,43 }, {142,143,159 ,199,200,218 ,44,45,62 }, - {159,158,142 ,218,217,199 ,62,61,44 }, {143,144,160 ,200,201,219 ,45,46,63 }, - {160,159,143 ,219,218,200 ,63,62,45 }, {144,145,161 ,201,202,220 ,46,47,64 }, - {161,160,144 ,220,219,201 ,64,63,46 }, {145,146,162 ,202,203,221 ,47,48,65 }, - {162,161,145 ,221,220,202 ,65,64,47 }, {146,131,147 ,203,222,222 ,48,49,66 }, - {147,162,146 ,223,221,203 ,66,65,48 }, {147,148,164 ,207,206,224 ,51,50,67 }, - {164,163,147 ,224,225,207 ,67,68,51 }, {148,149,165 ,206,208,226 ,50,52,69 }, - {165,164,148 ,226,224,206 ,69,67,50 }, {149,150,166 ,208,209,227 ,52,53,70 }, - {166,165,149 ,227,226,208 ,70,69,52 }, {150,151,167 ,209,210,228 ,53,54,71 }, - {167,166,150 ,228,227,209 ,71,70,53 }, {151,152,168 ,210,211,229 ,54,55,72 }, - {168,167,151 ,229,228,210 ,72,71,54 }, {152,153,169 ,211,212,230 ,55,56,73 }, - {169,168,152 ,230,229,211 ,73,72,55 }, {153,154,170 ,212,213,231 ,56,57,74 }, - {170,169,153 ,231,230,212 ,74,73,56 }, {154,155,171 ,213,214,232 ,57,58,75 }, - {171,170,154 ,232,231,213 ,75,74,57 }, {155,156,172 ,214,215,233 ,58,59,76 }, - {172,171,155 ,233,232,214 ,76,75,58 }, {156,157,173 ,215,216,234 ,59,60,77 }, - {173,172,156 ,234,233,215 ,77,76,59 }, {157,158,174 ,216,217,235 ,60,61,78 }, - {174,173,157 ,235,234,216 ,78,77,60 }, {158,159,175 ,217,218,236 ,61,62,79 }, - {175,174,158 ,236,235,217 ,79,78,61 }, {159,160,176 ,218,219,237 ,62,63,80 }, - {176,175,159 ,237,236,218 ,80,79,62 }, {160,161,177 ,219,220,238 ,63,64,81 }, - {177,176,160 ,238,237,219 ,81,80,63 }, {161,162,178 ,220,221,239 ,64,65,82 }, - {178,177,161 ,239,238,220 ,82,81,64 }, {162,147,163 ,221,240,240 ,65,66,83 }, - {163,178,162 ,241,239,221 ,83,82,65 }, {163,164,180 ,225,224,242 ,68,67,84 }, - {180,179,163 ,242,243,225 ,84,85,68 }, {164,165,181 ,224,226,244 ,67,69,86 }, - {181,180,164 ,244,242,224 ,86,84,67 }, {165,166,182 ,226,227,245 ,69,70,87 }, - {182,181,165 ,245,244,226 ,87,86,69 }, {166,167,183 ,227,228,246 ,70,71,88 }, - {183,182,166 ,246,245,227 ,88,87,70 }, {167,168,184 ,228,229,247 ,71,72,89 }, - {184,183,167 ,247,246,228 ,89,88,71 }, {168,169,185 ,229,230,248 ,72,73,90 }, - {185,184,168 ,248,247,229 ,90,89,72 }, {169,170,186 ,230,231,249 ,73,74,91 }, - {186,185,169 ,249,248,230 ,91,90,73 }, {170,171,187 ,231,232,250 ,74,75,92 }, - {187,186,170 ,250,249,231 ,92,91,74 }, {171,172,188 ,232,233,251 ,75,76,93 }, - {188,187,171 ,251,250,232 ,93,92,75 }, {172,173,189 ,233,234,252 ,76,77,94 }, - {189,188,172 ,252,251,233 ,94,93,76 }, {173,174,190 ,234,235,253 ,77,78,95 }, - {190,189,173 ,253,252,234 ,95,94,77 }, {174,175,191 ,235,236,254 ,78,79,96 }, - {191,190,174 ,254,253,235 ,96,95,78 }, {175,176,192 ,236,237,255 ,79,80,97 }, - {192,191,175 ,255,254,236 ,97,96,79 }, {176,177,193 ,237,238,256 ,80,81,98 }, - {193,192,176 ,256,255,237 ,98,97,80 }, {177,178,194 ,238,239,257 ,81,82,99 }, - {194,193,177 ,257,256,238 ,99,98,81 }, {178,163,179 ,239,258,258 ,82,83,100 }, - {179,194,178 ,259,257,239 ,100,99,82 }, {179,180,196 ,243,242,260 ,85,84,101 }, - {196,195,179 ,260,261,243 ,101,102,85 }, {180,181,197 ,242,244,262 ,84,86,103 }, - {197,196,180 ,262,260,242 ,103,101,84 }, {181,182,198 ,244,245,263 ,86,87,104 }, - {198,197,181 ,263,262,244 ,104,103,86 }, {182,183,199 ,245,246,264 ,87,88,105 }, - {199,198,182 ,264,263,245 ,105,104,87 }, {183,184,200 ,246,247,265 ,88,89,106 }, - {200,199,183 ,265,264,246 ,106,105,88 }, {184,185,201 ,247,248,266 ,89,90,107 }, - {201,200,184 ,266,265,247 ,107,106,89 }, {185,186,202 ,248,249,267 ,90,91,108 }, - {202,201,185 ,267,266,248 ,108,107,90 }, {186,187,203 ,249,250,268 ,91,92,109 }, - {203,202,186 ,268,267,249 ,109,108,91 }, {187,188,204 ,250,251,269 ,92,93,110 }, - {204,203,187 ,269,268,250 ,110,109,92 }, {188,189,205 ,251,252,270 ,93,94,111 }, - {205,204,188 ,270,269,251 ,111,110,93 }, {189,190,206 ,252,253,271 ,94,95,112 }, - {206,205,189 ,271,270,252 ,112,111,94 }, {190,191,207 ,253,254,272 ,95,96,113 }, - {207,206,190 ,272,271,253 ,113,112,95 }, {191,192,208 ,254,255,273 ,96,97,114 }, - {208,207,191 ,273,272,254 ,114,113,96 }, {192,193,209 ,255,256,274 ,97,98,115 }, - {209,208,192 ,274,273,255 ,115,114,97 }, {193,194,210 ,256,257,275 ,98,99,116 }, - {210,209,193 ,275,274,256 ,116,115,98 }, {194,179,195 ,257,276,276 ,99,100,117 }, - {195,210,194 ,277,275,257 ,117,116,99 }, {195,196,212 ,261,260,278 ,102,101,118 }, - {212,211,195 ,278,279,261 ,118,119,102 }, {196,197,213 ,260,262,280 ,101,103,120 }, - {213,212,196 ,280,278,260 ,120,118,101 }, {197,198,214 ,262,263,281 ,103,104,121 }, - {214,213,197 ,281,280,262 ,121,120,103 }, {198,199,215 ,263,264,282 ,104,105,122 }, - {215,214,198 ,282,281,263 ,122,121,104 }, {199,200,216 ,264,265,283 ,105,106,123 }, - {216,215,199 ,283,282,264 ,123,122,105 }, {200,201,217 ,265,266,284 ,106,107,124 }, - {217,216,200 ,284,283,265 ,124,123,106 }, {201,202,218 ,266,267,285 ,107,108,125 }, - {218,217,201 ,285,284,266 ,125,124,107 }, {202,203,219 ,267,268,286 ,108,109,126 }, - {219,218,202 ,286,285,267 ,126,125,108 }, {203,204,220 ,268,269,287 ,109,110,127 }, - {220,219,203 ,287,286,268 ,127,126,109 }, {204,205,221 ,269,270,288 ,110,111,128 }, - {221,220,204 ,288,287,269 ,128,127,110 }, {205,206,222 ,270,271,289 ,111,112,129 }, - {222,221,205 ,289,288,270 ,129,128,111 }, {206,207,223 ,271,272,290 ,112,113,130 }, - {223,222,206 ,290,289,271 ,130,129,112 }, {207,208,224 ,272,273,291 ,113,114,131 }, - {224,223,207 ,291,290,272 ,131,130,113 }, {208,209,225 ,273,274,292 ,114,115,132 }, - {225,224,208 ,292,291,273 ,132,131,114 }, {209,210,226 ,274,275,293 ,115,116,133 }, - {226,225,209 ,293,292,274 ,133,132,115 }, {210,195,211 ,275,294,294 ,116,117,134 }, - {211,226,210 ,295,293,275 ,134,133,116 }, {212,227,211 ,278,296,279 ,118,135,119 }, - {213,227,212 ,280,297,278 ,120,136,118 }, {214,227,213 ,281,298,280 ,121,137,120 }, - {215,227,214 ,282,299,281 ,122,138,121 }, {216,227,215 ,283,300,282 ,123,139,122 }, - {217,227,216 ,284,301,283 ,124,140,123 }, {218,227,217 ,285,302,284 ,125,141,124 }, - {219,227,218 ,286,303,285 ,126,142,125 }, {220,227,219 ,287,304,286 ,127,143,126 }, - {221,227,220 ,288,305,287 ,128,144,127 }, {222,227,221 ,289,306,288 ,129,145,128 }, - {223,227,222 ,290,307,289 ,130,146,129 }, {224,227,223 ,291,308,290 ,131,147,130 }, - {225,227,224 ,292,309,291 ,132,148,131 }, {226,227,225 ,293,310,292 ,133,149,132 }, - {211,227,226 ,311,311,293 ,134,151,133 } -}; -static GLfloat vertices [228][3] = { -{-0.287907f,-1.86815e-008f,0.135757f},{-0.289347f,0.0556207f,0.121101f},{-0.312648f,0.0513869f,0.1159f}, -{-0.331758f,0.0393298f,0.112605f},{-0.344539f,0.0212851f,0.111531f},{-0.34981f,7.94957e-010f,0.11279f}, -{-0.347143f,-0.0212852f,0.116277f},{-0.336764f,-0.0393298f,0.121467f},{-0.319578f,-0.0513869f,0.127407f}, -{-0.297367f,-0.0556208f,0.133044f},{-0.272989f,-0.0513869f,0.137622f},{-0.250313f,-0.0393298f,0.140771f}, -{-0.233576f,-0.0212851f,0.142252f},{-0.226267f,7.94957e-010f,0.141723f},{-0.229995f,0.0212851f,0.138873f}, -{-0.243926f,0.0393298f,0.133842f},{-0.265082f,0.0513869f,0.127482f},{-0.300289f,0.102774f,0.0924289f}, -{-0.342041f,0.0949506f,0.0845643f},{-0.375065f,0.072672f,0.0798777f},{-0.396413f,0.0393298f,0.0780705f}, -{-0.404666f,7.94957e-010f,0.0793717f},{-0.399455f,-0.0393298f,0.0843554f},{-0.381285f,-0.072672f,0.0925327f}, -{-0.351389f,-0.0949506f,0.101848f},{-0.312053f,-0.102774f,0.109943f},{-0.267595f,-0.0949506f,0.115783f}, -{-0.225019f,-0.072672f,0.119839f},{-0.19297f,-0.0393298f,0.122681f},{-0.179034f,2.02714e-008f,0.123571f}, -{-0.186805f,0.0393298f,0.120751f},{-0.214382f,0.072672f,0.113343f},{-0.255124f,0.0949506f,0.102855f}, -{-0.315272f,0.13428f,0.0518029f},{-0.370101f,0.124059f,0.0432229f},{-0.413796f,0.0949505f,0.0380668f}, -{-0.441728f,0.0513869f,0.0356961f},{-0.451415f,1.03344e-008f,0.0364943f},{-0.44247f,-0.0513869f,0.0414899f}, -{-0.416425f,-0.0949506f,0.0501588f},{-0.375928f,-0.124059f,0.0597781f},{-0.324519f,-0.13428f,0.0674267f}, -{-0.267803f,-0.124059f,0.0722981f},{-0.214464f,-0.0949506f,0.0757843f},{-0.175013f,-0.0513869f,0.0792818f}, -{-0.158449f,1.03344e-008f,0.0819671f},{-0.168957f,0.0513869f,0.0809906f},{-0.204319f,0.0949506f,0.0743026f}, -{-0.25666f,0.124059f,0.0632456f},{-0.330578f,0.145344f,0.00190503f},{-0.392924f,0.13428f,-0.0077162f}, -{-0.444336f,0.102774f,-0.0143289f},{-0.47705f,0.0556207f,-0.0173406f},{-0.486706f,7.94957e-010f,-0.0161772f}, -{-0.47308f,-0.0556208f,-0.01071f},{-0.439422f,-0.102774f,-0.00237543f},{-0.390673f,-0.13428f,0.00604182f}, -{-0.332519f,-0.145344f,0.0122922f},{-0.272094f,-0.13428f,0.0162857f},{-0.218439f,-0.102774f,0.0196546f}, -{-0.180892f,-0.0556207f,0.0235965f},{-0.166384f,2.02714e-008f,0.0271024f},{-0.177718f,0.0556208f,0.0274186f}, -{-0.213249f,0.102774f,0.0224836f},{-0.267201f,0.13428f,0.0129805f},{-0.34483f,0.13428f,-0.0511393f}, -{-0.40631f,0.124059f,-0.0620485f},{-0.45857f,0.0949506f,-0.0704639f},{-0.491678f,0.0513869f,-0.0742125f}, -{-0.5f,7.94957e-010f,-0.0724902f},{-0.483529f,-0.0513869f,-0.0663162f},{-0.446732f,-0.0949506f,-0.0581115f}, -{-0.396141f,-0.124059f,-0.0504919f},{-0.338919f,-0.13428f,-0.0448254f},{-0.282899f,-0.124059f,-0.0405999f}, -{-0.236267f,-0.0949505f,-0.0364056f},{-0.205857f,-0.0513869f,-0.0318189f},{-0.195525f,1.03344e-008f,-0.0282588f}, -{-0.206257f,0.0513869f,-0.0279247f},{-0.237146f,0.0949506f,-0.0320837f},{-0.285319f,0.124059f,-0.040366f}, -{-0.356086f,0.102774f,-0.097854f},{-0.405227f,0.0949505f,-0.10804f},{-0.447411f,0.072672f,-0.116169f}, -{-0.474149f,0.0393298f,-0.120015f},{-0.480452f,-1.86815e-008f,-0.11879f},{-0.466119f,-0.0393298f,-0.113531f}, -{-0.434932f,-0.072672f,-0.106385f},{-0.392811f,-0.0949506f,-0.0993913f},{-0.346413f,-0.102774f,-0.093506f}, -{-0.302508f,-0.0949506f,-0.0884557f},{-0.26729f,-0.072672f,-0.0836092f},{-0.245251f,-0.0393298f,-0.079151f}, -{-0.238544f,1.03344e-008f,-0.0763464f},{-0.247524f,0.0393298f,-0.0766391f},{-0.271628f,0.072672f,-0.0806712f}, -{-0.309166f,0.0949505f,-0.0881082f},{-0.361659f,0.0556207f,-0.128917f},{-0.388335f,0.0513868f,-0.134934f}, -{-0.410948f,0.0393298f,-0.139725f},{-0.425343f,0.0212852f,-0.142252f},{-0.428934f,7.94957e-010f,-0.142093f}, -{-0.421321f,-0.0212851f,-0.139576f},{-0.404175f,-0.0393298f,-0.135536f},{-0.380624f,-0.0513869f,-0.130889f}, -{-0.354521f,-0.0556208f,-0.126284f},{-0.329804f,-0.0513869f,-0.122039f},{-0.309941f,-0.0393298f,-0.118368f}, -{-0.297488f,-0.0212851f,-0.115637f},{-0.293883f,1.03344e-008f,-0.114402f},{-0.299525f,0.0212852f,-0.115169f}, -{-0.313908f,0.0393298f,-0.118111f},{-0.33553f,0.0513869f,-0.12294f},{-0.36059f,-9.142e-009f,-0.138758f}, -{0.287907f,-1.86815e-008f,0.135757f},{0.289347f,0.0556207f,0.121101f},{0.312648f,0.0513869f,0.1159f}, -{0.331758f,0.0393298f,0.112605f},{0.344539f,0.0212851f,0.111531f},{0.34981f,7.94957e-010f,0.11279f}, -{0.347143f,-0.0212852f,0.116277f},{0.336763f,-0.0393298f,0.121467f},{0.319578f,-0.0513869f,0.127407f}, -{0.297367f,-0.0556208f,0.133044f},{0.272989f,-0.0513869f,0.137622f},{0.250313f,-0.0393298f,0.140771f}, -{0.233576f,-0.0212851f,0.142252f},{0.226267f,7.94957e-010f,0.141723f},{0.229996f,0.0212851f,0.138873f}, -{0.243926f,0.0393298f,0.133842f},{0.265082f,0.0513869f,0.127482f},{0.300289f,0.102774f,0.0924289f}, -{0.342041f,0.0949506f,0.0845643f},{0.375065f,0.072672f,0.0798777f},{0.396413f,0.0393298f,0.0780705f}, -{0.404666f,7.94957e-010f,0.0793717f},{0.399455f,-0.0393298f,0.0843554f},{0.381285f,-0.072672f,0.0925327f}, -{0.351389f,-0.0949506f,0.101848f},{0.312053f,-0.102774f,0.109943f},{0.267595f,-0.0949506f,0.115783f}, -{0.225019f,-0.072672f,0.119839f},{0.19297f,-0.0393298f,0.122681f},{0.179034f,2.02714e-008f,0.123571f}, -{0.186805f,0.0393298f,0.120751f},{0.214382f,0.072672f,0.113343f},{0.255124f,0.0949506f,0.102855f}, -{0.315272f,0.13428f,0.0518029f},{0.370101f,0.124059f,0.0432229f},{0.413796f,0.0949505f,0.0380668f}, -{0.441728f,0.0513869f,0.0356961f},{0.451415f,1.03344e-008f,0.0364943f},{0.44247f,-0.0513869f,0.0414899f}, -{0.416425f,-0.0949506f,0.0501588f},{0.375928f,-0.124059f,0.0597781f},{0.324519f,-0.13428f,0.0674267f}, -{0.267803f,-0.124059f,0.0722981f},{0.214464f,-0.0949506f,0.0757843f},{0.175013f,-0.0513869f,0.0792818f}, -{0.158449f,1.03344e-008f,0.0819671f},{0.168957f,0.0513869f,0.0809906f},{0.204319f,0.0949506f,0.0743026f}, -{0.25666f,0.124059f,0.0632456f},{0.330578f,0.145344f,0.00190503f},{0.392924f,0.13428f,-0.0077162f}, -{0.444336f,0.102774f,-0.0143289f},{0.47705f,0.0556207f,-0.0173406f},{0.486706f,7.94957e-010f,-0.0161772f}, -{0.47308f,-0.0556208f,-0.01071f},{0.439422f,-0.102774f,-0.00237543f},{0.390673f,-0.13428f,0.00604182f}, -{0.332519f,-0.145344f,0.0122922f},{0.272094f,-0.13428f,0.0162857f},{0.218439f,-0.102774f,0.0196546f}, -{0.180892f,-0.0556207f,0.0235965f},{0.166384f,2.02714e-008f,0.0271024f},{0.177718f,0.0556208f,0.0274186f}, -{0.213249f,0.102774f,0.0224836f},{0.267201f,0.13428f,0.0129805f},{0.34483f,0.13428f,-0.0511393f}, -{0.40631f,0.124059f,-0.0620485f},{0.45857f,0.0949506f,-0.0704639f},{0.491678f,0.0513869f,-0.0742125f}, -{0.5f,7.94957e-010f,-0.0724902f},{0.483529f,-0.0513869f,-0.0663162f},{0.446732f,-0.0949506f,-0.0581115f}, -{0.396141f,-0.124059f,-0.0504919f},{0.338919f,-0.13428f,-0.0448254f},{0.282899f,-0.124059f,-0.0405999f}, -{0.236267f,-0.0949505f,-0.0364056f},{0.205857f,-0.0513869f,-0.0318189f},{0.195525f,1.03344e-008f,-0.0282588f}, -{0.206257f,0.0513869f,-0.0279247f},{0.237146f,0.0949506f,-0.0320837f},{0.285319f,0.124059f,-0.040366f}, -{0.356086f,0.102774f,-0.097854f},{0.405227f,0.0949505f,-0.10804f},{0.447411f,0.072672f,-0.116169f}, -{0.474149f,0.0393298f,-0.120015f},{0.480452f,-1.86815e-008f,-0.11879f},{0.466119f,-0.0393298f,-0.113531f}, -{0.434932f,-0.072672f,-0.106385f},{0.392811f,-0.0949506f,-0.0993913f},{0.346413f,-0.102774f,-0.093506f}, -{0.302508f,-0.0949506f,-0.0884557f},{0.26729f,-0.072672f,-0.0836092f},{0.245251f,-0.0393298f,-0.079151f}, -{0.238544f,1.03344e-008f,-0.0763464f},{0.247524f,0.0393298f,-0.0766391f},{0.271628f,0.072672f,-0.0806712f}, -{0.309166f,0.0949505f,-0.0881082f},{0.361659f,0.0556207f,-0.128917f},{0.388335f,0.0513868f,-0.134934f}, -{0.410948f,0.0393298f,-0.139725f},{0.425343f,0.0212852f,-0.142252f},{0.428934f,7.94957e-010f,-0.142093f}, -{0.421321f,-0.0212851f,-0.139576f},{0.404175f,-0.0393298f,-0.135536f},{0.380624f,-0.0513869f,-0.130889f}, -{0.354521f,-0.0556208f,-0.126284f},{0.329804f,-0.0513869f,-0.122039f},{0.309941f,-0.0393298f,-0.118368f}, -{0.297488f,-0.0212851f,-0.115637f},{0.293883f,1.03344e-008f,-0.114402f},{0.299525f,0.0212852f,-0.115169f}, -{0.313908f,0.0393298f,-0.118111f},{0.33553f,0.0513869f,-0.12294f},{0.36059f,-9.142e-009f,-0.138758f} -}; -static GLfloat normals [312][3] = { -{-0.252871f,0.2404f,0.937157f},{-0.258307f,0.38096f,0.887777f},{-0.313991f,0.324677f,0.892185f}, -{-0.296928f,0.216441f,0.930047f},{-0.383648f,0.254797f,0.887633f},{-0.329607f,0.178289f,0.927131f}, -{-0.430851f,0.18085f,0.884116f},{-0.34441f,0.140222f,0.928289f},{-0.454555f,0.107789f,0.884173f}, -{-0.345761f,0.109338f,0.931931f},{-0.451254f,0.0285079f,0.89194f},{-0.336206f,0.076578f,0.93867f}, -{-0.408498f,-0.0677304f,0.910243f},{-0.305382f,0.0335758f,0.951638f},{-0.312714f,-0.173985f,0.933777f}, -{-0.246924f,-0.00527786f,0.969021f},{-0.174674f,-0.256876f,0.950528f},{-0.18167f,-0.0170678f,0.983211f}, -{-0.0295312f,-0.282552f,0.958797f},{-0.135737f,-0.00345962f,0.990739f},{0.091734f,-0.234033f,0.967891f}, -{-0.110558f,0.0209796f,0.993648f},{0.167189f,-0.105758f,0.980236f},{-0.0961792f,0.0576956f,0.99369f}, -{0.172186f,0.0803976f,0.981778f},{-0.0956933f,0.115643f,0.988671f},{0.102757f,0.255574f,0.961313f}, -{-0.118853f,0.180455f,0.976376f},{-0.00684392f,0.362472f,0.93197f},{-0.16015f,0.225882f,0.9609f}, -{-0.121457f,0.396353f,0.910029f},{-0.20652f,0.244312f,0.94745f},{-0.347082f,0.515074f,0.78373f}, -{-0.249506f,0.635312f,0.730839f},{-0.478643f,0.367304f,0.797489f},{-0.559961f,0.216863f,0.799634f}, -{-0.602861f,0.0780879f,0.794015f},{-0.610046f,-0.0696832f,0.789296f},{-0.551611f,-0.257101f,0.793489f}, -{-0.38207f,-0.465686f,0.798223f},{-0.121673f,-0.612952f,0.780695f},{0.146927f,-0.650919f,0.744793f}, -{0.385172f,-0.58077f,0.717181f},{0.58668f,-0.374453f,0.718047f},{0.670596f,-0.00636283f,0.741796f}, -{0.540433f,0.379137f,0.751124f},{0.289465f,0.600903f,0.745067f},{0.0436793f,0.662498f,0.747789f}, -{-0.140618f,0.490361f,0.8601f},{-0.109243f,0.507979f,0.854414f},{-0.380531f,0.755905f,0.532733f}, -{-0.225858f,0.883504f,0.410377f},{-0.59605f,0.523204f,0.609083f},{-0.713032f,0.266278f,0.6486f}, -{-0.762247f,0.0288195f,0.646645f},{-0.762093f,-0.214058f,0.61106f},{-0.668216f,-0.496763f,0.553817f}, -{-0.416626f,-0.766605f,0.48861f},{-0.0545419f,-0.90563f,0.420547f},{0.29318f,-0.889718f,0.349925f}, -{0.591552f,-0.758995f,0.272017f},{0.848551f,-0.492341f,0.193807f},{0.985865f,-0.05828f,0.157078f}, -{0.881972f,0.429135f,0.194856f},{0.581894f,0.76394f,0.278916f},{0.238697f,0.899997f,0.364733f}, -{-0.00501219f,0.789307f,0.613979f},{0.0251126f,0.806017f,0.59136f},{-0.362683f,0.922533f,0.131889f}, -{-0.167637f,0.985742f,-0.0145074f},{-0.675042f,0.684053f,0.276386f},{-0.861957f,0.33668f,0.379047f}, -{-0.919481f,-0.0263853f,0.392249f},{-0.871276f,-0.372611f,0.319436f},{-0.697519f,-0.689005f,0.196823f}, -{-0.38794f,-0.918076f,0.0814794f},{-0.00830919f,-0.999934f,0.00788595f},{0.353657f,-0.934174f,-0.0473814f}, -{0.658559f,-0.741582f,-0.127893f},{0.873379f,-0.428149f,-0.232159f},{0.952936f,-0.0310618f,-0.301577f}, -{0.881119f,0.37659f,-0.286025f},{0.666622f,0.718532f,-0.198309f},{0.352833f,0.93106f,-0.0929322f}, -{0.135999f,0.975217f,0.174515f},{0.140791f,0.975534f,0.16885f},{-0.258662f,0.909417f,-0.32566f}, -{-0.0662442f,0.901289f,-0.428124f},{-0.621608f,0.751307f,-0.221679f},{-0.914602f,0.386148f,-0.119974f}, -{-0.992511f,-0.0884879f,-0.084218f},{-0.859627f,-0.492181f,-0.137109f},{-0.607892f,-0.758345f,-0.235332f}, -{-0.300655f,-0.897575f,-0.322437f},{0.0284315f,-0.925422f,-0.37787f},{0.354203f,-0.835474f,-0.420148f}, -{0.628523f,-0.617805f,-0.47252f},{0.789277f,-0.310692f,-0.529634f},{0.825511f,0.00904431f,-0.564314f}, -{0.769059f,0.307146f,-0.560545f},{0.622245f,0.583594f,-0.521757f},{0.380717f,0.799662f,-0.464323f}, -{0.209136f,0.944539f,-0.253197f},{0.207914f,0.945204f,-0.251717f},{-0.0829051f,0.69251f,-0.716628f}, -{0.0583377f,0.651534f,-0.756373f},{-0.355182f,0.592306f,-0.723201f},{-0.614659f,0.31377f,-0.723701f}, -{-0.712098f,-0.103352f,-0.694432f},{-0.595913f,-0.454188f,-0.66227f},{-0.38585f,-0.645546f,-0.659083f}, -{-0.157323f,-0.719684f,-0.676243f},{0.0788719f,-0.709682f,-0.700093f},{0.315478f,-0.613671f,-0.723796f}, -{0.515947f,-0.42928f,-0.741294f},{0.633864f,-0.195427f,-0.748348f},{0.66279f,0.0306839f,-0.748176f}, -{0.624867f,0.232632f,-0.745267f},{0.526051f,0.42017f,-0.73941f},{0.364351f,0.57901f,-0.72938f}, -{0.238862f,0.777411f,-0.581874f},{0.250693f,0.765838f,-0.592153f},{0.0872439f,0.389795f,-0.916759f}, -{0.149617f,0.363837f,-0.919368f},{-0.0497727f,0.321156f,-0.945718f},{-0.170031f,0.164068f,-0.971685f}, -{-0.229274f,-0.0548793f,-0.971814f},{-0.203035f,-0.255423f,-0.94527f},{-0.116827f,-0.381483f,-0.916963f}, -{-0.00225283f,-0.43449f,-0.900674f},{0.127092f,-0.427409f,-0.89508f},{0.260125f,-0.364224f,-0.894246f}, -{0.375837f,-0.25252f,-0.891617f},{0.451585f,-0.11593f,-0.884664f},{0.479573f,0.0177851f,-0.877322f}, -{0.465354f,0.137133f,-0.874437f},{0.414091f,0.242881f,-0.877233f},{0.328899f,0.330658f,-0.884585f}, -{0.255655f,0.510592f,-0.820937f},{0.269217f,0.496777f,-0.825067f},{0.190196f,0.174579f,-0.966099f}, -{0.131151f,0.1438f,-0.980878f},{0.0787381f,0.0763682f,-0.993966f},{0.0487437f,-0.0156549f,-0.998689f}, -{0.0485044f,-0.100192f,-0.993785f},{0.0679649f,-0.15604f,-0.98541f},{0.0968914f,-0.187447f,-0.977484f}, -{0.138234f,-0.202344f,-0.969509f},{0.198197f,-0.193848f,-0.960802f},{0.266924f,-0.14981f,-0.952002f}, -{0.319768f,-0.0777643f,-0.944299f},{0.342966f,-0.00360353f,-0.939341f},{0.342411f,0.0569724f,-0.937821f}, -{0.325776f,0.106482f,-0.939432f},{0.293316f,0.147691f,-0.944539f},{0.246219f,0.173439f,-0.95357f}, -{0.258307f,0.38096f,0.887776f},{0.252871f,0.2404f,0.937157f},{0.313992f,0.324677f,0.892185f}, -{0.296928f,0.216441f,0.930047f},{0.383648f,0.254797f,0.887633f},{0.329608f,0.178289f,0.927131f}, -{0.430851f,0.18085f,0.884116f},{0.34441f,0.140222f,0.928288f},{0.454555f,0.107789f,0.884173f}, -{0.345761f,0.109338f,0.93193f},{0.451254f,0.028508f,0.89194f},{0.336206f,0.076578f,0.93867f}, -{0.408498f,-0.0677303f,0.910243f},{0.305382f,0.0335756f,0.951638f},{0.312714f,-0.173985f,0.933777f}, -{0.246924f,-0.00527788f,0.96902f},{0.174674f,-0.256876f,0.950528f},{0.18167f,-0.0170678f,0.983211f}, -{0.0295312f,-0.282552f,0.958797f},{0.135737f,-0.00345967f,0.990739f},{-0.0917341f,-0.234033f,0.967891f}, -{0.110558f,0.0209796f,0.993648f},{-0.167189f,-0.105758f,0.980236f},{0.0961791f,0.0576956f,0.99369f}, -{-0.172185f,0.0803977f,0.981778f},{0.0956933f,0.115643f,0.988671f},{-0.102757f,0.255574f,0.961313f}, -{0.118853f,0.180455f,0.976376f},{0.00684396f,0.362472f,0.93197f},{0.16015f,0.225882f,0.9609f}, -{0.121457f,0.396353f,0.910029f},{0.20652f,0.244312f,0.94745f},{0.347082f,0.515074f,0.78373f}, -{0.249506f,0.635311f,0.730839f},{0.478643f,0.367304f,0.797489f},{0.559961f,0.216863f,0.799634f}, -{0.602861f,0.078088f,0.794015f},{0.610046f,-0.069683f,0.789296f},{0.551611f,-0.257101f,0.793489f}, -{0.38207f,-0.465685f,0.798223f},{0.121673f,-0.612952f,0.780695f},{-0.146927f,-0.650919f,0.744793f}, -{-0.385172f,-0.58077f,0.717181f},{-0.58668f,-0.374453f,0.718047f},{-0.670595f,-0.00636265f,0.741796f}, -{-0.540432f,0.379137f,0.751124f},{-0.289466f,0.600903f,0.745067f},{-0.0436793f,0.662498f,0.747789f}, -{0.140618f,0.490361f,0.8601f},{0.109243f,0.507979f,0.854414f},{0.380531f,0.755905f,0.532733f}, -{0.225859f,0.883504f,0.410377f},{0.59605f,0.523204f,0.609083f},{0.713032f,0.266278f,0.6486f}, -{0.762247f,0.0288195f,0.646645f},{0.762093f,-0.214057f,0.61106f},{0.668216f,-0.496763f,0.553817f}, -{0.416626f,-0.766605f,0.48861f},{0.0545419f,-0.90563f,0.420547f},{-0.29318f,-0.889718f,0.349925f}, -{-0.591552f,-0.758995f,0.272017f},{-0.848551f,-0.492341f,0.193807f},{-0.985865f,-0.0582799f,0.157078f}, -{-0.881971f,0.429136f,0.194856f},{-0.581895f,0.76394f,0.278916f},{-0.238697f,0.899997f,0.364733f}, -{0.00501218f,0.789307f,0.613979f},{-0.0251125f,0.806017f,0.59136f},{0.362682f,0.922533f,0.131889f}, -{0.167637f,0.985742f,-0.0145074f},{0.675042f,0.684053f,0.276386f},{0.861957f,0.33668f,0.379047f}, -{0.919481f,-0.0263853f,0.392249f},{0.871276f,-0.372611f,0.319436f},{0.697519f,-0.689005f,0.196823f}, -{0.38794f,-0.918076f,0.0814794f},{0.00830921f,-0.999934f,0.00788592f},{-0.353657f,-0.934174f,-0.0473814f}, -{-0.658559f,-0.741582f,-0.127893f},{-0.873379f,-0.428149f,-0.232159f},{-0.952936f,-0.0310616f,-0.301577f}, -{-0.881119f,0.37659f,-0.286025f},{-0.666622f,0.718532f,-0.198309f},{-0.352833f,0.93106f,-0.0929322f}, -{-0.135999f,0.975217f,0.174515f},{-0.140791f,0.975534f,0.16885f},{0.258662f,0.909417f,-0.32566f}, -{0.0662442f,0.901289f,-0.428124f},{0.621608f,0.751307f,-0.221679f},{0.914602f,0.386148f,-0.119974f}, -{0.992511f,-0.088488f,-0.084218f},{0.859627f,-0.492181f,-0.137109f},{0.607892f,-0.758345f,-0.235333f}, -{0.300655f,-0.897575f,-0.322437f},{-0.0284315f,-0.925422f,-0.37787f},{-0.354203f,-0.835474f,-0.420148f}, -{-0.628523f,-0.617805f,-0.47252f},{-0.789277f,-0.310692f,-0.529634f},{-0.825511f,0.0090443f,-0.564314f}, -{-0.769059f,0.307146f,-0.560545f},{-0.622245f,0.583594f,-0.521756f},{-0.380717f,0.799662f,-0.464322f}, -{-0.209136f,0.944539f,-0.253197f},{-0.207913f,0.945204f,-0.251717f},{0.0829051f,0.69251f,-0.716628f}, -{-0.0583377f,0.651534f,-0.756373f},{0.355182f,0.592306f,-0.723201f},{0.614659f,0.31377f,-0.7237f}, -{0.712098f,-0.103352f,-0.694431f},{0.595913f,-0.454188f,-0.66227f},{0.38585f,-0.645546f,-0.659083f}, -{0.157323f,-0.719684f,-0.676243f},{-0.0788719f,-0.709682f,-0.700093f},{-0.315478f,-0.613671f,-0.723796f}, -{-0.515947f,-0.42928f,-0.741294f},{-0.633864f,-0.195427f,-0.748348f},{-0.66279f,0.0306839f,-0.748176f}, -{-0.624867f,0.232632f,-0.745268f},{-0.526051f,0.42017f,-0.73941f},{-0.364352f,0.57901f,-0.72938f}, -{-0.238862f,0.777411f,-0.581874f},{-0.250693f,0.765838f,-0.592153f},{-0.0872439f,0.389796f,-0.916759f}, -{-0.149617f,0.363837f,-0.919368f},{0.0497727f,0.321156f,-0.945718f},{0.170031f,0.164068f,-0.971685f}, -{0.229274f,-0.0548795f,-0.971813f},{0.203035f,-0.255423f,-0.94527f},{0.116827f,-0.381483f,-0.916964f}, -{0.00225283f,-0.43449f,-0.900674f},{-0.127092f,-0.427409f,-0.89508f},{-0.260125f,-0.364224f,-0.894246f}, -{-0.375837f,-0.25252f,-0.891617f},{-0.451585f,-0.11593f,-0.884664f},{-0.479573f,0.0177852f,-0.877322f}, -{-0.465354f,0.137133f,-0.874437f},{-0.414091f,0.242881f,-0.877233f},{-0.328899f,0.330658f,-0.884585f}, -{-0.255655f,0.510592f,-0.820937f},{-0.269217f,0.496777f,-0.825067f},{-0.190196f,0.174579f,-0.966099f}, -{-0.13115f,0.1438f,-0.980878f},{-0.0787381f,0.0763682f,-0.993966f},{-0.0487437f,-0.0156549f,-0.998689f}, -{-0.0485044f,-0.100192f,-0.993785f},{-0.0679649f,-0.15604f,-0.98541f},{-0.0968914f,-0.187447f,-0.977484f}, -{-0.138234f,-0.202344f,-0.969509f},{-0.198197f,-0.193848f,-0.960802f},{-0.266924f,-0.14981f,-0.952002f}, -{-0.319768f,-0.0777645f,-0.944299f},{-0.342966f,-0.00360326f,-0.939341f},{-0.342412f,0.0569721f,-0.937821f}, -{-0.325776f,0.106482f,-0.939432f},{-0.293316f,0.147691f,-0.944539f},{-0.246219f,0.173439f,-0.95357f} -}; -static GLfloat textures [152][2] = { -{0.0f,1.0f},{0.0f,0.875f},{0.0625f,0.875f}, -{0.0625f,1.0f},{0.125f,0.875f},{0.125f,1.0f}, -{0.1875f,0.875f},{0.1875f,1.0f},{0.25f,0.875f}, -{0.25f,1.0f},{0.3125f,0.875f},{0.3125f,1.0f}, -{0.375f,0.875f},{0.375f,1.0f},{0.4375f,0.875f}, -{0.4375f,1.0f},{0.5f,0.875f},{0.5f,1.0f}, -{0.5625f,0.875f},{0.5625f,1.0f},{0.625f,0.875f}, -{0.625f,1.0f},{0.6875f,0.875f},{0.6875f,1.0f}, -{0.75f,0.875f},{0.75f,1.0f},{0.8125f,0.875f}, -{0.8125f,1.0f},{0.875f,0.875f},{0.875f,1.0f}, -{0.9375f,0.875f},{0.9375f,1.0f},{1.0f,0.875f}, -{0.0625f,0.75f},{0.0f,0.75f},{0.125f,0.75f}, -{0.1875f,0.75f},{0.25f,0.75f},{0.3125f,0.75f}, -{0.375f,0.75f},{0.4375f,0.75f},{0.5f,0.75f}, -{0.5625f,0.75f},{0.625f,0.75f},{0.6875f,0.75f}, -{0.75f,0.75f},{0.8125f,0.75f},{0.875f,0.75f}, -{0.9375f,0.75f},{1.0f,0.75f},{0.0625f,0.625f}, -{0.0f,0.625f},{0.125f,0.625f},{0.1875f,0.625f}, -{0.25f,0.625f},{0.3125f,0.625f},{0.375f,0.625f}, -{0.4375f,0.625f},{0.5f,0.625f},{0.5625f,0.625f}, -{0.625f,0.625f},{0.6875f,0.625f},{0.75f,0.625f}, -{0.8125f,0.625f},{0.875f,0.625f},{0.9375f,0.625f}, -{1.0f,0.625f},{0.0625f,0.5f},{0.0f,0.5f}, -{0.125f,0.5f},{0.1875f,0.5f},{0.25f,0.5f}, -{0.3125f,0.5f},{0.375f,0.5f},{0.4375f,0.5f}, -{0.5f,0.5f},{0.5625f,0.5f},{0.625f,0.5f}, -{0.6875f,0.5f},{0.75f,0.5f},{0.8125f,0.5f}, -{0.875f,0.5f},{0.9375f,0.5f},{1.0f,0.5f}, -{0.0625f,0.375f},{0.0f,0.375f},{0.125f,0.375f}, -{0.1875f,0.375f},{0.25f,0.375f},{0.3125f,0.375f}, -{0.375f,0.375f},{0.4375f,0.375f},{0.5f,0.375f}, -{0.5625f,0.375f},{0.625f,0.375f},{0.6875f,0.375f}, -{0.75f,0.375f},{0.8125f,0.375f},{0.875f,0.375f}, -{0.9375f,0.375f},{1.0f,0.375f},{0.0625f,0.25f}, -{0.0f,0.25f},{0.125f,0.25f},{0.1875f,0.25f}, -{0.25f,0.25f},{0.3125f,0.25f},{0.375f,0.25f}, -{0.4375f,0.25f},{0.5f,0.25f},{0.5625f,0.25f}, -{0.625f,0.25f},{0.6875f,0.25f},{0.75f,0.25f}, -{0.8125f,0.25f},{0.875f,0.25f},{0.9375f,0.25f}, -{1.0f,0.25f},{0.0625f,0.125f},{0.0f,0.125f}, -{0.125f,0.125f},{0.1875f,0.125f},{0.25f,0.125f}, -{0.3125f,0.125f},{0.375f,0.125f},{0.4375f,0.125f}, -{0.5f,0.125f},{0.5625f,0.125f},{0.625f,0.125f}, -{0.6875f,0.125f},{0.75f,0.125f},{0.8125f,0.125f}, -{0.875f,0.125f},{0.9375f,0.125f},{1.0f,0.125f}, -{0.0f,1.25145e-008f},{0.0625f,1.25145e-008f},{0.125f,1.25145e-008f}, -{0.1875f,1.25145e-008f},{0.25f,1.25145e-008f},{0.3125f,1.25145e-008f}, -{0.375f,1.25145e-008f},{0.4375f,1.25145e-008f},{0.5f,1.25145e-008f}, -{0.5625f,1.25145e-008f},{0.625f,1.25145e-008f},{0.6875f,1.25145e-008f}, -{0.75f,1.25145e-008f},{0.8125f,1.25145e-008f},{0.875f,1.25145e-008f}, -{0.9375f,1.25145e-008f},{0.9375f,1.25145e-008f} -}; -/*Material indicies*/ -/*{material index,face count}*/ -static int material_ref [9][2] = { -{0,94}, -{1,4}, -{0,28}, -{1,4}, -{0,188}, -{1,4}, -{0,28}, -{1,4}, -{0,94} -}; -static void MyMaterial(GLenum mode,GLfloat *f,GLfloat alpha) -{ - GLfloat d[4]; - d[0]=f[0]; - d[1]=f[1]; - d[2]=f[2]; - d[3]=alpha; - glMaterialfv (GL_FRONT_AND_BACK,mode,d); -} -/* - * SelectMaterial uses OpenGL commands to define facet colors. - * - * Returns: - * Nothing - */ - -static void SelectMaterial(int i) -{ - // - // Define the reflective properties of the 3D Object faces. - // - glEnd(); - GLfloat alpha=materials[i].alpha; - MyMaterial (GL_AMBIENT, materials[i].ambient,alpha); - MyMaterial (GL_DIFFUSE, materials[i].diffuse,alpha); - MyMaterial (GL_SPECULAR, materials[i].specular,alpha); - MyMaterial (GL_EMISSION, materials[i].emission,alpha); - glMaterialf (GL_FRONT_AND_BACK,GL_SHININESS,materials[i].phExp); - glBegin(GL_TRIANGLES); - -}; - -static GLint Gen3DObjectList() -{ - int i; - int j; - - GLint lid=glGenLists(1); - int mcount=0; - int mindex=0; - glNewList(lid, GL_COMPILE); - - glBegin (GL_TRIANGLES); - for(i=0;i<sizeof(face_indicies)/sizeof(face_indicies[0]);i++) - { - if(!mcount) - { - SelectMaterial(material_ref[mindex][0]); - mcount=material_ref[mindex][1]; - mindex++; - } - mcount--; - for(j=0;j<3;j++) - { - int vi=face_indicies[i][j]; - int ni=face_indicies[i][j+3];//Normal index - int ti=face_indicies[i][j+6];//Texture index - glNormal3f (normals[ni][0],normals[ni][1],normals[ni][2]); - glTexCoord2f(textures[ti][0],textures[ti][1]); - glVertex3f (vertices[vi][0],vertices[vi][1],vertices[vi][2]); - } - } - glEnd (); - - glEndList(); - return lid; -}; - -void initEyes(){ - initLids(); - eyes = Gen3DObjectList(); -} - -void drawEyes(GLfloat angle, GLfloat yangle){ - glPushMatrix(); - glTranslatef(0, 0, .8); - glTranslatef(0,.35,0); - glRotatef(-90, 1.0, 0.0, 0.0); - glRotatef(yangle, 0.0, 0.0, -1.0); - glRotatef(angle, 0, 1.0, 0.0); - drawLids(5); - glCallList(eyes); - - glPopMatrix(); -}; \ No newline at end of file
--- a/plugins/crazychat/eyes.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -void initEyes(); - -void drawEyes(GLfloat angle, GLfloat yangle); \ No newline at end of file
--- a/plugins/crazychat/face.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -#include "face.h" -#include "sharky.h" -#include "doggy.h" -#include <assert.h> - -FACE init_face(KIND kind) -{ - FACE face; - face = (FACE)malloc(sizeof(*face)); - - switch(kind){ - case DOG: - init_dog(face); - break; - case SHARK: - init_shark(face); - break; - default: - printf("default face\n"); - init_dog(face); - break; - } - return face; -} - -void draw_face(FACE face, GLfloat zrot, GLfloat yrot, BOOL left_eye, BOOL right_eye, GLfloat mouth_open, DIRECTION dir, OUTPUT_MODE mode){ - face->draw_func(face, zrot, yrot, left_eye, right_eye, mouth_open, dir, mode); -} - -void change_materials(FACE f, int* mats, int num_change){ - int i; - assert(!(num_change<0 || num_change>NUM_PARTS)); - for(i=0;i<num_change;i++){ - f->mat_indeces[i]=mats[i]; - } -} - -void free_face(FACE f){}
--- a/plugins/crazychat/face.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -#ifndef __FACE_H__ -#define __FACE_H__ - -#include <GL/gl.h> -#include <GL/glu.h> -#include "glm.h" - -#define NUM_PARTS 10 -#define DOG_SHARK_CHANGE 5 -#define CRAZY_COUNT 12 -#define MAX_EYE_POP 1.3 -#define EYE_TIME 120 -#define MAX_FILE_LEN 64 -#define ANGLE_INC 60 - -typedef enum {DOG, SHARK} KIND; -typedef int BOOL; -typedef enum {UP, DOWN, CONST} DIRECTION; -typedef enum {NORMAL, CRAZY1, CRAZY2, CRAZY3} OUTPUT_MODE; - -struct face_struct { - char* name; - KIND my_kind; - void* char_struct; - GLint* mat_indeces; - GLMmat_str* materials; - OUTPUT_MODE my_mode; - int eye_count, crazy_count; - void (*draw_func)(struct face_struct*, GLfloat, GLfloat, BOOL, BOOL, GLfloat, DIRECTION, OUTPUT_MODE); - float curr_z_angle, curr_eye_pop; -}; - -typedef struct face_struct* FACE; -typedef enum {APPENDAGE, HEAD, LIDS, LEFT_IRIS, RIGHT_IRIS, EYES, PUPIL, EXTRA1, EXTRA2, EXTRA3} PART; - -FACE init_face(KIND kind); - -FACE copy_face(FACE f); - -void draw_face(FACE face, GLfloat zrot, GLfloat yrot, BOOL left_eye, BOOL right_eye, GLfloat mouth_open, DIRECTION dir, OUTPUT_MODE mode); - -void change_materials(FACE face, int* mats, int num_change); - -#endif
--- a/plugins/crazychat/filter.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -#include "cc_interface.h" -#include "filter.h" -#include "stdio.h" - -#define coef_0 .0022 -#define coef_1 .0174 -#define coef_2 .0737 -#define coef_3 .1662 -#define coef_4 .2405 - -filter_bank* Filter_Initialize (void) -{ - filter_bank* new_filter; - new_filter=(filter_bank*)malloc(sizeof(filter_bank)); - memset(new_filter,0,sizeof(filter_bank)); -// fprintf(stderr,"RESETTING FILTER BANK *******************\n"); - return new_filter; -} - -void Filter_Destroy (filter_bank *f) -{ - free(f); -} - -void filter(struct cc_features *features, filter_bank *f) -{ - -f->head_size[9]=f->head_size[8]; -f->head_size[8]=f->head_size[7]; -f->head_size[7]=f->head_size[6]; -f->head_size[6]=f->head_size[5]; -f->head_size[5]=f->head_size[4]; -f->head_size[4]=f->head_size[3]; -f->head_size[3]=f->head_size[2]; -f->head_size[2]=f->head_size[1]; -f->head_size[1]=f->head_size[0]; -f->head_size[0]=features->head_size; - -features->head_size=(guint8) ( (coef_0*(f->head_size[0]+f->head_size[9]))+(coef_1*(f->head_size[1]+f->head_size[8])) + - (coef_2*(f->head_size[2]+f->head_size[7])) + (coef_3*(f->head_size[3]+f->head_size[6])) - + (coef_4*(f->head_size[4]+f->head_size[5]))); - - - -f->head_z_rot[9]=f->head_z_rot[8]; -f->head_z_rot[8]=f->head_z_rot[7]; -f->head_z_rot[7]=f->head_z_rot[6]; -f->head_z_rot[6]=f->head_z_rot[5]; -f->head_z_rot[5]=f->head_z_rot[4]; -f->head_z_rot[4]=f->head_z_rot[3]; -f->head_z_rot[3]=f->head_z_rot[2]; -f->head_z_rot[2]=f->head_z_rot[1]; -f->head_z_rot[1]=f->head_z_rot[0]; -f->head_z_rot[0]=features->head_z_rot; - -features->head_z_rot=(guint8) ( (coef_0*(f->head_z_rot[0]+f->head_z_rot[9]))+(coef_1*(f->head_z_rot[1]+f->head_z_rot[8])) + - (coef_2*(f->head_z_rot[2]+f->head_z_rot[7])) + (coef_3*(f->head_z_rot[3]+f->head_z_rot[6])) - + (coef_4*(f->head_z_rot[4]+f->head_z_rot[5]))); - - -f->head_y_rot[9]=f->head_y_rot[8]; -f->head_y_rot[8]=f->head_y_rot[7]; -f->head_y_rot[7]=f->head_y_rot[6]; -f->head_y_rot[6]=f->head_y_rot[5]; -f->head_y_rot[5]=f->head_y_rot[4]; -f->head_y_rot[4]=f->head_y_rot[3]; -f->head_y_rot[3]=f->head_y_rot[2]; -f->head_y_rot[2]=f->head_y_rot[1]; -f->head_y_rot[1]=f->head_y_rot[0]; -f->head_y_rot[0]=features->head_y_rot; - -features->head_y_rot=(guint8) ( (coef_0*(f->head_y_rot[0]+f->head_y_rot[9]))+(coef_1*(f->head_y_rot[1]+f->head_y_rot[8])) + - (coef_2*(f->head_y_rot[2]+f->head_y_rot[7])) + (coef_3*(f->head_y_rot[3]+f->head_y_rot[6])) - + (coef_4*(f->head_y_rot[4]+f->head_y_rot[5]))); - - -f->xfilt[9]=f->xfilt[8]; -f->xfilt[8]=f->xfilt[7]; -f->xfilt[7]=f->xfilt[6]; -f->xfilt[6]=f->xfilt[5]; -f->xfilt[5]=f->xfilt[4]; -f->xfilt[4]=f->xfilt[3]; -f->xfilt[3]=f->xfilt[2]; -f->xfilt[2]=f->xfilt[1]; -f->xfilt[1]=f->xfilt[0]; -f->xfilt[0]=features->x; - -features->x=(guint8) ( (coef_0*(f->xfilt[0]+f->xfilt[9]))+(coef_1*(f->xfilt[1]+f->xfilt[8])) + - (coef_2*(f->xfilt[2]+f->xfilt[7])) + (coef_3*(f->xfilt[3]+f->xfilt[6])) - + (coef_4*(f->xfilt[4]+f->xfilt[5]))); - - -f->yfilt[9]=f->yfilt[8]; -f->yfilt[8]=f->yfilt[7]; -f->yfilt[7]=f->yfilt[6]; -f->yfilt[6]=f->yfilt[5]; -f->yfilt[5]=f->yfilt[4]; -f->yfilt[4]=f->yfilt[3]; -f->yfilt[3]=f->yfilt[2]; -f->yfilt[2]=f->yfilt[1]; -f->yfilt[1]=f->yfilt[0]; -f->yfilt[0]=features->y; - -features->y=(guint8) ( (coef_0*(f->yfilt[0]+f->yfilt[9]))+(coef_1*(f->yfilt[1]+f->yfilt[8])) + - (coef_2*(f->yfilt[2]+f->yfilt[7])) + (coef_3*(f->yfilt[3]+f->yfilt[6])) - + (coef_4*(f->yfilt[4]+f->yfilt[5]))); - - -f->mouth_open[9]=f->mouth_open[8]; -f->mouth_open[8]=f->mouth_open[7]; -f->mouth_open[7]=f->mouth_open[6]; -f->mouth_open[6]=f->mouth_open[5]; -f->mouth_open[5]=f->mouth_open[4]; -f->mouth_open[4]=f->mouth_open[3]; -f->mouth_open[3]=f->mouth_open[2]; -f->mouth_open[2]=f->mouth_open[1]; -f->mouth_open[1]=f->mouth_open[0]; -f->mouth_open[0]=features->mouth_open; - -features->mouth_open=(guint8) ( (coef_0*(f->mouth_open[0]+f->mouth_open[9]))+(coef_1*(f->mouth_open[1]+f->mouth_open[8])) + - (coef_2*(f->mouth_open[2]+f->mouth_open[7])) + (coef_3*(f->mouth_open[3]+f->mouth_open[6])) - + (coef_4*(f->mouth_open[4]+f->mouth_open[5]))); - -}
--- a/plugins/crazychat/filter.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -#ifndef __FILTER_H__ -#define __FILTER_H__ - -struct cc_features; - -typedef struct filter_bank { - float head_size[10]; - float head_z_rot[10]; - float head_y_rot[10]; - float mouth_open[10]; - float xfilt[10]; - float yfilt[10]; -} filter_bank; - -filter_bank* Filter_Initialize (void); -void Filter_Destroy (filter_bank *f); -void filter(struct cc_features *instance, filter_bank *f); - -#endif /* __FILTER_H__ */
--- a/plugins/crazychat/glm.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1971 +0,0 @@ -/* - glm.c - Nate Robins, 1997 - ndr@pobox.com, http://www.pobox.com/~ndr/ - - Wavefront OBJ model file format reader/writer/manipulator. - - Includes routines for generating smooth normals with - preservation of edges, welding redundant vertices & texture - coordinate generation (spheremap and planar projections) + more. - - */ - - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> -#include "glm.h" - - -#define T(x) (model->triangles[(x)]) - - -/* _GLMnode: general purpose node - */ -typedef struct _GLMnode { - GLuint index; - GLboolean averaged; - struct _GLMnode* next; -} GLMnode; - - -/* glmMax: returns the maximum of two floats */ -static GLfloat -glmMax(GLfloat a, GLfloat b) -{ - if (b > a) - return b; - return a; -} - -/* glmAbs: returns the absolute value of a float */ -static GLfloat -glmAbs(GLfloat f) -{ - if (f < 0) - return -f; - return f; -} - -/* glmDot: compute the dot product of two vectors - * - * u - array of 3 GLfloats (GLfloat u[3]) - * v - array of 3 GLfloats (GLfloat v[3]) - */ -static GLfloat -glmDot(GLfloat* u, GLfloat* v) -{ - assert(u); assert(v); - - return u[0]*v[0] + u[1]*v[1] + u[2]*v[2]; -} - -/* glmCross: compute the cross product of two vectors - * - * u - array of 3 GLfloats (GLfloat u[3]) - * v - array of 3 GLfloats (GLfloat v[3]) - * n - array of 3 GLfloats (GLfloat n[3]) to return the cross product in - */ -static GLvoid -glmCross(GLfloat* u, GLfloat* v, GLfloat* n) -{ - assert(u); assert(v); assert(n); - - n[0] = u[1]*v[2] - u[2]*v[1]; - n[1] = u[2]*v[0] - u[0]*v[2]; - n[2] = u[0]*v[1] - u[1]*v[0]; -} - -/* glmNormalize: normalize a vector - * - * v - array of 3 GLfloats (GLfloat v[3]) to be normalized - */ -static GLvoid -glmNormalize(GLfloat* v) -{ - GLfloat l; - - assert(v); - - l = (GLfloat)sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]); - v[0] /= l; - v[1] /= l; - v[2] /= l; -} - -/* glmEqual: compares two vectors and returns GL_TRUE if they are - * equal (within a certain threshold) or GL_FALSE if not. An epsilon - * that works fairly well is 0.000001. - * - * u - array of 3 GLfloats (GLfloat u[3]) - * v - array of 3 GLfloats (GLfloat v[3]) - */ -static GLboolean -glmEqual(GLfloat* u, GLfloat* v, GLfloat epsilon) -{ - if (glmAbs(u[0] - v[0]) < epsilon && - glmAbs(u[1] - v[1]) < epsilon && - glmAbs(u[2] - v[2]) < epsilon) - { - return GL_TRUE; - } - return GL_FALSE; -} - -/* glmWeldVectors: eliminate (weld) vectors that are within an - * epsilon of each other. - * - * vectors - array of GLfloat[3]'s to be welded - * numvectors - number of GLfloat[3]'s in vectors - * epsilon - maximum difference between vectors - * - */ -GLfloat* -glmWeldVectors(GLfloat* vectors, GLuint* numvectors, GLfloat epsilon) -{ - GLfloat* copies; - GLuint copied; - GLuint i, j; - - copies = (GLfloat*)malloc(sizeof(GLfloat) * 3 * (*numvectors + 1)); - memcpy(copies, vectors, (sizeof(GLfloat) * 3 * (*numvectors + 1))); - - copied = 1; - for (i = 1; i <= *numvectors; i++) { - for (j = 1; j <= copied; j++) { - if (glmEqual(&vectors[3 * i], &copies[3 * j], epsilon)) { - goto duplicate; - } - } - - /* must not be any duplicates -- add to the copies array */ - copies[3 * copied + 0] = vectors[3 * i + 0]; - copies[3 * copied + 1] = vectors[3 * i + 1]; - copies[3 * copied + 2] = vectors[3 * i + 2]; - j = copied; /* pass this along for below */ - copied++; - - duplicate: - /* set the first component of this vector to point at the correct - index into the new copies array */ - vectors[3 * i + 0] = (GLfloat)j; - } - - *numvectors = copied-1; - return copies; -} - -/* glmFindGroup: Find a group in the model - */ -GLMgroup* -glmFindGroup(GLMmodel* model, char* name) -{ - GLMgroup* group; - - assert(model); - - group = model->groups; - while(group) { - if (!strcmp(name, group->name)) - break; - group = group->next; - } - - return group; -} - -/* glmAddGroup: Add a group to the model - */ -GLMgroup* -glmAddGroup(GLMmodel* model, char* name) -{ - GLMgroup* group; - - group = glmFindGroup(model, name); - if (!group) { - group = (GLMgroup*)malloc(sizeof(GLMgroup)); - group->name = strdup(name); - group->material = 0; - group->numtriangles = 0; - group->triangles = NULL; - group->next = model->groups; - model->groups = group; - model->numgroups++; - } - - return group; -} - -/* glmFindGroup: Find a material in the model - */ -GLuint -glmFindMaterial(GLMmodel* model, char* name) -{ - GLuint i; - - /* XXX doing a linear search on a string key'd list is pretty lame, - but it works and is fast enough for now. */ - for (i = 0; i < model->nummaterials; i++) { - if (!strcmp(model->materials[i].name, name)) - goto found; - } - - /* didn't find the name, so print a warning and return the default - material (0). */ - //fprintf(stderr, "glmFindMaterial(): can't find material \"%s\".\n", name); - i = 0; - -found: - return i; -} - - -/* glmDirName: return the directory given a path - * - * path - filesystem path - * - * NOTE: the return value should be free'd. - */ -static char* -glmDirName(char* path) -{ - char* dir; - char* s; - - dir = strdup(path); - - s = strrchr(dir, '/'); - if (s) - s[1] = '\0'; - else - dir[0] = '\0'; - - return dir; -} - - -void glmSetMat(GLMmat_str* mats, GLint index){ - GLMmaterial* material; - assert(!(index<0 || index >=mats->num_materials)); - material = &mats->materials[index]; - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, material->ambient); - glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material->diffuse); - glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material->specular); - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, material->shininess); -} - - -GLMmat_str* glmMTL(char* name){ - FILE* file; - char* dir; - char* filename; - char buf[128]; - GLuint nummaterials, i; - GLMmat_str* ret; - - file = fopen(name, "r"); - if (!file) { - fprintf(stderr, "glmReadMTL() failed: can't open material file \"%s\".\n", - name); - exit(1); - } - - /* count the number of materials in the file */ - nummaterials = 1; - while(fscanf(file, "%s", buf) != EOF) { - switch(buf[0]) { - case '#': /* comment */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - case 'n': /* newmtl */ - fgets(buf, sizeof(buf), file); - nummaterials++; - sscanf(buf, "%s %s", buf, buf); - break; - default: - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - } - } - - rewind(file); - - ret = (GLMmat_str*)malloc(sizeof(GLMmat_str)); - ret->materials = (GLMmaterial*)malloc(sizeof(GLMmaterial) * nummaterials); - ret->num_materials = nummaterials; - - /* set the default material */ - for (i = 0; i < nummaterials; i++) { - ret->materials[i].name = NULL; - ret->materials[i].shininess = 65.0; - ret->materials[i].diffuse[0] = 0.8; - ret->materials[i].diffuse[1] = 0.1; - ret->materials[i].diffuse[2] = 0.1; - ret->materials[i].diffuse[3] = 1.0; - ret->materials[i].ambient[0] = 0.2; - ret->materials[i].ambient[1] = 0.2; - ret->materials[i].ambient[2] = 0.2; - ret->materials[i].ambient[3] = 1.0; - ret->materials[i].specular[0] = 0.0; - ret->materials[i].specular[1] = 0.0; - ret->materials[i].specular[2] = 0.0; - ret->materials[i].specular[3] = 1.0; - } - ret->materials[0].name = strdup("default"); - - /* now, read in the data */ - nummaterials = 0; - while(fscanf(file, "%s", buf) != EOF) { - switch(buf[0]) { - case '#': /* comment */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - case 'n': /* newmtl */ - fgets(buf, sizeof(buf), file); - sscanf(buf, "%s %s", buf, buf); - nummaterials++; - ret->materials[nummaterials].name = strdup(buf); - break; - case 'N': - fscanf(file, "%f", &ret->materials[nummaterials].shininess); - /* wavefront shininess is from [0, 1000], so scale for OpenGL */ - ret->materials[nummaterials].shininess /= 1000.0; - ret->materials[nummaterials].shininess *= 128.0; - break; - case 'K': - switch(buf[1]) { - case 'd': - fscanf(file, "%f %f %f", - &ret->materials[nummaterials].diffuse[0], - &ret->materials[nummaterials].diffuse[1], - &ret->materials[nummaterials].diffuse[2]); - break; - case 's': - fscanf(file, "%f %f %f", - &ret->materials[nummaterials].specular[0], - &ret->materials[nummaterials].specular[1], - &ret->materials[nummaterials].specular[2]); - break; - case 'a': - fscanf(file, "%f %f %f", - &ret->materials[nummaterials].ambient[0], - &ret->materials[nummaterials].ambient[1], - &ret->materials[nummaterials].ambient[2]); - break; - default: - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - } - break; - default: - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - } - } - return ret; -} - -//^^^^charlie^^^^^ - -/* glmReadMTL: read a wavefront material library file - * - * model - properly initialized GLMmodel structure - * name - name of the material library - */ -static GLvoid -glmReadMTL(GLMmodel* model, char* name) -{ - FILE* file; - char* dir; - char* filename; - char buf[128]; - GLuint nummaterials, i; - - dir = glmDirName(model->pathname); - filename = (char*)malloc(sizeof(char) * (strlen(dir) + strlen(name) + 1)); - strcpy(filename, dir); - strcat(filename, name); - free(dir); - - file = fopen(filename, "r"); - if (!file) { - fprintf(stderr, "glmReadMTL() failed: can't open material file \"%s\".\n", - filename); - exit(1); - } - free(filename); - - /* count the number of materials in the file */ - nummaterials = 1; - while(fscanf(file, "%s", buf) != EOF) { - switch(buf[0]) { - case '#': /* comment */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - case 'n': /* newmtl */ - fgets(buf, sizeof(buf), file); - nummaterials++; - sscanf(buf, "%s %s", buf, buf); - break; - default: - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - } - } - - rewind(file); - model->materials = (GLMmaterial*)malloc(sizeof(GLMmaterial) * nummaterials); - model->nummaterials = nummaterials; - - /* set the default material */ - for (i = 0; i < nummaterials; i++) { - model->materials[i].name = NULL; - model->materials[i].shininess = 65.0; - model->materials[i].diffuse[0] = 0.8; - model->materials[i].diffuse[1] = 0.1; - model->materials[i].diffuse[2] = 0.1; - model->materials[i].diffuse[3] = 1.0; - model->materials[i].ambient[0] = 0.2; - model->materials[i].ambient[1] = 0.2; - model->materials[i].ambient[2] = 0.2; - model->materials[i].ambient[3] = 1.0; - model->materials[i].specular[0] = 0.0; - model->materials[i].specular[1] = 0.0; - model->materials[i].specular[2] = 0.0; - model->materials[i].specular[3] = 1.0; - } - model->materials[0].name = strdup("default"); - - /* now, read in the data */ - nummaterials = 0; - while(fscanf(file, "%s", buf) != EOF) { - switch(buf[0]) { - case '#': /* comment */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - case 'n': /* newmtl */ - fgets(buf, sizeof(buf), file); - sscanf(buf, "%s %s", buf, buf); - nummaterials++; - model->materials[nummaterials].name = strdup(buf); - break; - case 'N': - fscanf(file, "%f", &model->materials[nummaterials].shininess); - /* wavefront shininess is from [0, 1000], so scale for OpenGL */ - model->materials[nummaterials].shininess /= 1000.0; - model->materials[nummaterials].shininess *= 128.0; - break; - case 'K': - switch(buf[1]) { - case 'd': - fscanf(file, "%f %f %f", - &model->materials[nummaterials].diffuse[0], - &model->materials[nummaterials].diffuse[1], - &model->materials[nummaterials].diffuse[2]); - break; - case 's': - fscanf(file, "%f %f %f", - &model->materials[nummaterials].specular[0], - &model->materials[nummaterials].specular[1], - &model->materials[nummaterials].specular[2]); - break; - case 'a': - fscanf(file, "%f %f %f", - &model->materials[nummaterials].ambient[0], - &model->materials[nummaterials].ambient[1], - &model->materials[nummaterials].ambient[2]); - break; - default: - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - } - break; - default: - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - } - } -} - -/* glmWriteMTL: write a wavefront material library file - * - * model - properly initialized GLMmodel structure - * modelpath - pathname of the model being written - * mtllibname - name of the material library to be written - */ -static GLvoid -glmWriteMTL(GLMmodel* model, char* modelpath, char* mtllibname) -{ - FILE* file; - char* dir; - char* filename; - GLMmaterial* material; - GLuint i; - - dir = glmDirName(modelpath); - filename = (char*)malloc(sizeof(char) * (strlen(dir)+strlen(mtllibname))); - strcpy(filename, dir); - strcat(filename, mtllibname); - free(dir); - - /* open the file */ - file = fopen(filename, "w"); - if (!file) { - fprintf(stderr, "glmWriteMTL() failed: can't open file \"%s\".\n", - filename); - exit(1); - } - free(filename); - - /* spit out a header */ - fprintf(file, "# \n"); - fprintf(file, "# Wavefront MTL generated by GLM library\n"); - fprintf(file, "# \n"); - fprintf(file, "# GLM library\n"); - fprintf(file, "# Nate Robins\n"); - fprintf(file, "# ndr@pobox.com\n"); - fprintf(file, "# http://www.pobox.com/~ndr\n"); - fprintf(file, "# \n\n"); - - for (i = 0; i < model->nummaterials; i++) { - material = &model->materials[i]; - fprintf(file, "newmtl %s\n", material->name); - fprintf(file, "Ka %f %f %f\n", - material->ambient[0], material->ambient[1], material->ambient[2]); - fprintf(file, "Kd %f %f %f\n", - material->diffuse[0], material->diffuse[1], material->diffuse[2]); - fprintf(file, "Ks %f %f %f\n", - material->specular[0],material->specular[1],material->specular[2]); - fprintf(file, "Ns %f\n", material->shininess / 128.0 * 1000.0); - fprintf(file, "\n"); - } -} - - -/* glmFirstPass: first pass at a Wavefront OBJ file that gets all the - * statistics of the model (such as #vertices, #normals, etc) - * - * model - properly initialized GLMmodel structure - * file - (fopen'd) file descriptor - */ -static GLvoid -glmFirstPass(GLMmodel* model, FILE* file) -{ - GLuint numvertices; /* number of vertices in model */ - GLuint numnormals; /* number of normals in model */ - GLuint numtexcoords; /* number of texcoords in model */ - GLuint numtriangles; /* number of triangles in model */ - GLMgroup* group; /* current group */ - unsigned v, n, t; - char buf[128]; - - /* make a default group */ - group = glmAddGroup(model, "default"); - - numvertices = numnormals = numtexcoords = numtriangles = 0; - while(fscanf(file, "%s", buf) != EOF) { - switch(buf[0]) { - case '#': /* comment */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - case 'v': /* v, vn, vt */ - switch(buf[1]) { - case '\0': /* vertex */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - numvertices++; - break; - case 'n': /* normal */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - numnormals++; - break; - case 't': /* texcoord */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - numtexcoords++; - break; - default: - printf("glmFirstPass(): Unknown token \"%s\".\n", buf); - exit(1); - break; - } - break; - case 'm': - fgets(buf, sizeof(buf), file); - sscanf(buf, "%s %s", buf, buf); - model->mtllibname = strdup(buf); - //glmReadMTL(model, buf); - break; - case 'u': - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - case 'g': /* group */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); -#if SINGLE_STRING_GROUP_NAMES - sscanf(buf, "%s", buf); -#else - buf[strlen(buf)-1] = '\0'; /* nuke '\n' */ -#endif - group = glmAddGroup(model, buf); - break; - case 'f': /* face */ - v = n = t = 0; - fscanf(file, "%s", buf); - /* can be one of %d, %d//%d, %d/%d, %d/%d/%d %d//%d */ - if (strstr(buf, "//")) { - /* v//n */ - sscanf(buf, "%d//%d", &v, &n); - fscanf(file, "%d//%d", &v, &n); - fscanf(file, "%d//%d", &v, &n); - numtriangles++; - group->numtriangles++; - while(fscanf(file, "%d//%d", &v, &n) > 0) { - numtriangles++; - group->numtriangles++; - } - } else if (sscanf(buf, "%d/%d/%d", &v, &t, &n) == 3) { - /* v/t/n */ - fscanf(file, "%d/%d/%d", &v, &t, &n); - fscanf(file, "%d/%d/%d", &v, &t, &n); - numtriangles++; - group->numtriangles++; - while(fscanf(file, "%d/%d/%d", &v, &t, &n) > 0) { - numtriangles++; - group->numtriangles++; - } - } else if (sscanf(buf, "%d/%d", &v, &t) == 2) { - /* v/t */ - fscanf(file, "%d/%d", &v, &t); - fscanf(file, "%d/%d", &v, &t); - numtriangles++; - group->numtriangles++; - while(fscanf(file, "%d/%d", &v, &t) > 0) { - numtriangles++; - group->numtriangles++; - } - } else { - /* v */ - fscanf(file, "%d", &v); - fscanf(file, "%d", &v); - numtriangles++; - group->numtriangles++; - while(fscanf(file, "%d", &v) > 0) { - numtriangles++; - group->numtriangles++; - } - } - break; - - default: - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - } - } - - /* set the stats in the model structure */ - model->numvertices = numvertices; - model->numnormals = numnormals; - model->numtexcoords = numtexcoords; - model->numtriangles = numtriangles; - - /* allocate memory for the triangles in each group */ - group = model->groups; - while(group) { - group->triangles = (GLuint*)malloc(sizeof(GLuint) * group->numtriangles); - group->numtriangles = 0; - group = group->next; - } -} - -/* glmSecondPass: second pass at a Wavefront OBJ file that gets all - * the data. - * - * model - properly initialized GLMmodel structure - * file - (fopen'd) file descriptor - */ -static GLvoid -glmSecondPass(GLMmodel* model, FILE* file) -{ - GLuint numvertices; /* number of vertices in model */ - GLuint numnormals; /* number of normals in model */ - GLuint numtexcoords; /* number of texcoords in model */ - GLuint numtriangles; /* number of triangles in model */ - GLfloat* vertices; /* array of vertices */ - GLfloat* normals; /* array of normals */ - GLfloat* texcoords; /* array of texture coordinates */ - GLMgroup* group; /* current group pointer */ - GLuint material; /* current material */ - GLuint v, n, t; - char buf[128]; - - /* set the pointer shortcuts */ - vertices = model->vertices; - normals = model->normals; - texcoords = model->texcoords; - group = model->groups; - - /* on the second pass through the file, read all the data into the - allocated arrays */ - numvertices = numnormals = numtexcoords = 1; - numtriangles = 0; - material = 0; - while(fscanf(file, "%s", buf) != EOF) { - switch(buf[0]) { - case '#': /* comment */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - case 'v': /* v, vn, vt */ - switch(buf[1]) { - case '\0': /* vertex */ - fscanf(file, "%f %f %f", - &vertices[3 * numvertices + 0], - &vertices[3 * numvertices + 1], - &vertices[3 * numvertices + 2]); - numvertices++; - break; - case 'n': /* normal */ - fscanf(file, "%f %f %f", - &normals[3 * numnormals + 0], - &normals[3 * numnormals + 1], - &normals[3 * numnormals + 2]); - numnormals++; - break; - case 't': /* texcoord */ - fscanf(file, "%f %f", - &texcoords[2 * numtexcoords + 0], - &texcoords[2 * numtexcoords + 1]); - numtexcoords++; - break; - } - break; - case 'u': - fgets(buf, sizeof(buf), file); - sscanf(buf, "%s %s", buf, buf); - group->material = material = glmFindMaterial(model, buf); - break; - case 'g': /* group */ - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); -#if SINGLE_STRING_GROUP_NAMES - sscanf(buf, "%s", buf); -#else - buf[strlen(buf)-1] = '\0'; /* nuke '\n' */ -#endif - group = glmFindGroup(model, buf); - group->material = material; - break; - case 'f': /* face */ - v = n = t = 0; - fscanf(file, "%s", buf); - /* can be one of %d, %d//%d, %d/%d, %d/%d/%d %d//%d */ - if (strstr(buf, "//")) { - /* v//n */ - sscanf(buf, "%d//%d", &v, &n); - T(numtriangles).vindices[0] = v; - T(numtriangles).nindices[0] = n; - fscanf(file, "%d//%d", &v, &n); - T(numtriangles).vindices[1] = v; - T(numtriangles).nindices[1] = n; - fscanf(file, "%d//%d", &v, &n); - T(numtriangles).vindices[2] = v; - T(numtriangles).nindices[2] = n; - group->triangles[group->numtriangles++] = numtriangles; - numtriangles++; - while(fscanf(file, "%d//%d", &v, &n) > 0) { - T(numtriangles).vindices[0] = T(numtriangles-1).vindices[0]; - T(numtriangles).nindices[0] = T(numtriangles-1).nindices[0]; - T(numtriangles).vindices[1] = T(numtriangles-1).vindices[2]; - T(numtriangles).nindices[1] = T(numtriangles-1).nindices[2]; - T(numtriangles).vindices[2] = v; - T(numtriangles).nindices[2] = n; - group->triangles[group->numtriangles++] = numtriangles; - numtriangles++; - } - } else if (sscanf(buf, "%d/%d/%d", &v, &t, &n) == 3) { - /* v/t/n */ - T(numtriangles).vindices[0] = v; - T(numtriangles).tindices[0] = t; - T(numtriangles).nindices[0] = n; - fscanf(file, "%d/%d/%d", &v, &t, &n); - T(numtriangles).vindices[1] = v; - T(numtriangles).tindices[1] = t; - T(numtriangles).nindices[1] = n; - fscanf(file, "%d/%d/%d", &v, &t, &n); - T(numtriangles).vindices[2] = v; - T(numtriangles).tindices[2] = t; - T(numtriangles).nindices[2] = n; - group->triangles[group->numtriangles++] = numtriangles; - numtriangles++; - while(fscanf(file, "%d/%d/%d", &v, &t, &n) > 0) { - T(numtriangles).vindices[0] = T(numtriangles-1).vindices[0]; - T(numtriangles).tindices[0] = T(numtriangles-1).tindices[0]; - T(numtriangles).nindices[0] = T(numtriangles-1).nindices[0]; - T(numtriangles).vindices[1] = T(numtriangles-1).vindices[2]; - T(numtriangles).tindices[1] = T(numtriangles-1).tindices[2]; - T(numtriangles).nindices[1] = T(numtriangles-1).nindices[2]; - T(numtriangles).vindices[2] = v; - T(numtriangles).tindices[2] = t; - T(numtriangles).nindices[2] = n; - group->triangles[group->numtriangles++] = numtriangles; - numtriangles++; - } - } else if (sscanf(buf, "%d/%d", &v, &t) == 2) { - /* v/t */ - T(numtriangles).vindices[0] = v; - T(numtriangles).tindices[0] = t; - fscanf(file, "%d/%d", &v, &t); - T(numtriangles).vindices[1] = v; - T(numtriangles).tindices[1] = t; - fscanf(file, "%d/%d", &v, &t); - T(numtriangles).vindices[2] = v; - T(numtriangles).tindices[2] = t; - group->triangles[group->numtriangles++] = numtriangles; - numtriangles++; - while(fscanf(file, "%d/%d", &v, &t) > 0) { - T(numtriangles).vindices[0] = T(numtriangles-1).vindices[0]; - T(numtriangles).tindices[0] = T(numtriangles-1).tindices[0]; - T(numtriangles).vindices[1] = T(numtriangles-1).vindices[2]; - T(numtriangles).tindices[1] = T(numtriangles-1).tindices[2]; - T(numtriangles).vindices[2] = v; - T(numtriangles).tindices[2] = t; - group->triangles[group->numtriangles++] = numtriangles; - numtriangles++; - } - } else { - /* v */ - sscanf(buf, "%d", &v); - T(numtriangles).vindices[0] = v; - fscanf(file, "%d", &v); - T(numtriangles).vindices[1] = v; - fscanf(file, "%d", &v); - T(numtriangles).vindices[2] = v; - group->triangles[group->numtriangles++] = numtriangles; - numtriangles++; - while(fscanf(file, "%d", &v) > 0) { - T(numtriangles).vindices[0] = T(numtriangles-1).vindices[0]; - T(numtriangles).vindices[1] = T(numtriangles-1).vindices[2]; - T(numtriangles).vindices[2] = v; - group->triangles[group->numtriangles++] = numtriangles; - numtriangles++; - } - } - break; - - default: - /* eat up rest of line */ - fgets(buf, sizeof(buf), file); - break; - } - } - -#if 0 - /* announce the memory requirements */ - printf(" Memory: %d bytes\n", - numvertices * 3*sizeof(GLfloat) + - numnormals * 3*sizeof(GLfloat) * (numnormals ? 1 : 0) + - numtexcoords * 3*sizeof(GLfloat) * (numtexcoords ? 1 : 0) + - numtriangles * sizeof(GLMtriangle)); -#endif -} - - -/* public functions */ - - -/* glmUnitize: "unitize" a model by translating it to the origin and - * scaling it to fit in a unit cube around the origin. Modelurns the - * scalefactor used. - * - * model - properly initialized GLMmodel structure - */ -GLfloat -glmUnitize(GLMmodel* model) -{ - GLuint i; - GLfloat maxx, minx, maxy, miny, maxz, minz; - GLfloat cx, cy, cz, w, h, d; - GLfloat scale; - - assert(model); - assert(model->vertices); - - /* get the max/mins */ - maxx = minx = model->vertices[3 + 0]; - maxy = miny = model->vertices[3 + 1]; - maxz = minz = model->vertices[3 + 2]; - for (i = 1; i <= model->numvertices; i++) { - if (maxx < model->vertices[3 * i + 0]) - maxx = model->vertices[3 * i + 0]; - if (minx > model->vertices[3 * i + 0]) - minx = model->vertices[3 * i + 0]; - - if (maxy < model->vertices[3 * i + 1]) - maxy = model->vertices[3 * i + 1]; - if (miny > model->vertices[3 * i + 1]) - miny = model->vertices[3 * i + 1]; - - if (maxz < model->vertices[3 * i + 2]) - maxz = model->vertices[3 * i + 2]; - if (minz > model->vertices[3 * i + 2]) - minz = model->vertices[3 * i + 2]; - } - - /* calculate model width, height, and depth */ - w = glmAbs(maxx) + glmAbs(minx); - h = glmAbs(maxy) + glmAbs(miny); - d = glmAbs(maxz) + glmAbs(minz); - - /* calculate center of the model */ - cx = (maxx + minx) / 2.0; - cy = (maxy + miny) / 2.0; - cz = (maxz + minz) / 2.0; - - /* calculate unitizing scale factor */ - scale = 2.0 / glmMax(glmMax(w, h), d); - - /* translate around center then scale */ - for (i = 1; i <= model->numvertices; i++) { - model->vertices[3 * i + 0] -= cx; - model->vertices[3 * i + 1] -= cy; - model->vertices[3 * i + 2] -= cz; - //charlie, i took this out, i just want to center -/* - model->vertices[3 * i + 0] *= scale; - model->vertices[3 * i + 1] *= scale; - model->vertices[3 * i + 2] *= scale; -*/ - } - - return scale; -} - -/* glmDimensions: Calculates the dimensions (width, height, depth) of - * a model. - * - * model - initialized GLMmodel structure - * dimensions - array of 3 GLfloats (GLfloat dimensions[3]) - */ -GLvoid -glmDimensions(GLMmodel* model, GLfloat* dimensions) -{ - GLuint i; - GLfloat maxx, minx, maxy, miny, maxz, minz; - - assert(model); - assert(model->vertices); - assert(dimensions); - - /* get the max/mins */ - maxx = minx = model->vertices[3 + 0]; - maxy = miny = model->vertices[3 + 1]; - maxz = minz = model->vertices[3 + 2]; - for (i = 1; i <= model->numvertices; i++) { - if (maxx < model->vertices[3 * i + 0]) - maxx = model->vertices[3 * i + 0]; - if (minx > model->vertices[3 * i + 0]) - minx = model->vertices[3 * i + 0]; - - if (maxy < model->vertices[3 * i + 1]) - maxy = model->vertices[3 * i + 1]; - if (miny > model->vertices[3 * i + 1]) - miny = model->vertices[3 * i + 1]; - - if (maxz < model->vertices[3 * i + 2]) - maxz = model->vertices[3 * i + 2]; - if (minz > model->vertices[3 * i + 2]) - minz = model->vertices[3 * i + 2]; - } - - /* calculate model width, height, and depth */ - dimensions[0] = glmAbs(maxx) + glmAbs(minx); - dimensions[1] = glmAbs(maxy) + glmAbs(miny); - dimensions[2] = glmAbs(maxz) + glmAbs(minz); -} - -/* glmScale: Scales a model by a given amount. - * - * model - properly initialized GLMmodel structure - * scale - scalefactor (0.5 = half as large, 2.0 = twice as large) - */ -GLvoid -glmScale(GLMmodel* model, GLfloat scale) -{ - GLuint i; - - for (i = 1; i <= model->numvertices; i++) { - model->vertices[3 * i + 0] *= scale; - model->vertices[3 * i + 1] *= scale; - model->vertices[3 * i + 2] *= scale; - } -} - -/* glmReverseWinding: Reverse the polygon winding for all polygons in - * this model. Default winding is counter-clockwise. Also changes - * the direction of the normals. - * - * model - properly initialized GLMmodel structure - */ -GLvoid -glmReverseWinding(GLMmodel* model) -{ - GLuint i, swap; - - assert(model); - - for (i = 0; i < model->numtriangles; i++) { - swap = T(i).vindices[0]; - T(i).vindices[0] = T(i).vindices[2]; - T(i).vindices[2] = swap; - - if (model->numnormals) { - swap = T(i).nindices[0]; - T(i).nindices[0] = T(i).nindices[2]; - T(i).nindices[2] = swap; - } - - if (model->numtexcoords) { - swap = T(i).tindices[0]; - T(i).tindices[0] = T(i).tindices[2]; - T(i).tindices[2] = swap; - } - } - - /* reverse facet normals */ - for (i = 1; i <= model->numfacetnorms; i++) { - model->facetnorms[3 * i + 0] = -model->facetnorms[3 * i + 0]; - model->facetnorms[3 * i + 1] = -model->facetnorms[3 * i + 1]; - model->facetnorms[3 * i + 2] = -model->facetnorms[3 * i + 2]; - } - - /* reverse vertex normals */ - for (i = 1; i <= model->numnormals; i++) { - model->normals[3 * i + 0] = -model->normals[3 * i + 0]; - model->normals[3 * i + 1] = -model->normals[3 * i + 1]; - model->normals[3 * i + 2] = -model->normals[3 * i + 2]; - } -} - -/* glmFacetNormals: Generates facet normals for a model (by taking the - * cross product of the two vectors derived from the sides of each - * triangle). Assumes a counter-clockwise winding. - * - * model - initialized GLMmodel structure - */ -GLvoid -glmFacetNormals(GLMmodel* model) -{ - GLuint i; - GLfloat u[3]; - GLfloat v[3]; - - assert(model); - assert(model->vertices); - - /* clobber any old facetnormals */ - if (model->facetnorms) - free(model->facetnorms); - - /* allocate memory for the new facet normals */ - model->numfacetnorms = model->numtriangles; - model->facetnorms = (GLfloat*)malloc(sizeof(GLfloat) * - 3 * (model->numfacetnorms + 1)); - - for (i = 0; i < model->numtriangles; i++) { - model->triangles[i].findex = i+1; - - u[0] = model->vertices[3 * T(i).vindices[1] + 0] - - model->vertices[3 * T(i).vindices[0] + 0]; - u[1] = model->vertices[3 * T(i).vindices[1] + 1] - - model->vertices[3 * T(i).vindices[0] + 1]; - u[2] = model->vertices[3 * T(i).vindices[1] + 2] - - model->vertices[3 * T(i).vindices[0] + 2]; - - v[0] = model->vertices[3 * T(i).vindices[2] + 0] - - model->vertices[3 * T(i).vindices[0] + 0]; - v[1] = model->vertices[3 * T(i).vindices[2] + 1] - - model->vertices[3 * T(i).vindices[0] + 1]; - v[2] = model->vertices[3 * T(i).vindices[2] + 2] - - model->vertices[3 * T(i).vindices[0] + 2]; - - glmCross(u, v, &model->facetnorms[3 * (i+1)]); - glmNormalize(&model->facetnorms[3 * (i+1)]); - } -} - -/* glmVertexNormals: Generates smooth vertex normals for a model. - * First builds a list of all the triangles each vertex is in. Then - * loops through each vertex in the the list averaging all the facet - * normals of the triangles each vertex is in. Finally, sets the - * normal index in the triangle for the vertex to the generated smooth - * normal. If the dot product of a facet normal and the facet normal - * associated with the first triangle in the list of triangles the - * current vertex is in is greater than the cosine of the angle - * parameter to the function, that facet normal is not added into the - * average normal calculation and the corresponding vertex is given - * the facet normal. This tends to preserve hard edges. The angle to - * use depends on the model, but 90 degrees is usually a good start. - * - * model - initialized GLMmodel structure - * angle - maximum angle (in degrees) to smooth across - */ -GLvoid -glmVertexNormals(GLMmodel* model, GLfloat angle) -{ - GLMnode* node; - GLMnode* tail; - GLMnode** members; - GLfloat* normals; - GLuint numnormals; - GLfloat average[3]; - GLfloat dot, cos_angle; - GLuint i, avg; - - assert(model); - assert(model->facetnorms); - - /* calculate the cosine of the angle (in degrees) */ - cos_angle = cos(angle * M_PI / 180.0); - - /* nuke any previous normals */ - if (model->normals) - free(model->normals); - - /* allocate space for new normals */ - model->numnormals = model->numtriangles * 3; /* 3 normals per triangle */ - model->normals = (GLfloat*)malloc(sizeof(GLfloat)* 3* (model->numnormals+1)); - - /* allocate a structure that will hold a linked list of triangle - indices for each vertex */ - members = (GLMnode**)malloc(sizeof(GLMnode*) * (model->numvertices + 1)); - for (i = 1; i <= model->numvertices; i++) - members[i] = NULL; - - /* for every triangle, create a node for each vertex in it */ - for (i = 0; i < model->numtriangles; i++) { - node = (GLMnode*)malloc(sizeof(GLMnode)); - node->index = i; - node->next = members[T(i).vindices[0]]; - members[T(i).vindices[0]] = node; - - node = (GLMnode*)malloc(sizeof(GLMnode)); - node->index = i; - node->next = members[T(i).vindices[1]]; - members[T(i).vindices[1]] = node; - - node = (GLMnode*)malloc(sizeof(GLMnode)); - node->index = i; - node->next = members[T(i).vindices[2]]; - members[T(i).vindices[2]] = node; - } - - /* calculate the average normal for each vertex */ - numnormals = 1; - for (i = 1; i <= model->numvertices; i++) { - /* calculate an average normal for this vertex by averaging the - facet normal of every triangle this vertex is in */ - node = members[i]; - if (!node) - fprintf(stderr, "glmVertexNormals(): vertex w/o a triangle\n"); - average[0] = 0.0; average[1] = 0.0; average[2] = 0.0; - avg = 0; - while (node) { - /* only average if the dot product of the angle between the two - facet normals is greater than the cosine of the threshold - angle -- or, said another way, the angle between the two - facet normals is less than (or equal to) the threshold angle */ - dot = glmDot(&model->facetnorms[3 * T(node->index).findex], - &model->facetnorms[3 * T(members[i]->index).findex]); - if (dot > cos_angle) { - node->averaged = GL_TRUE; - average[0] += model->facetnorms[3 * T(node->index).findex + 0]; - average[1] += model->facetnorms[3 * T(node->index).findex + 1]; - average[2] += model->facetnorms[3 * T(node->index).findex + 2]; - avg = 1; /* we averaged at least one normal! */ - } else { - node->averaged = GL_FALSE; - } - node = node->next; - } - - if (avg) { - /* normalize the averaged normal */ - glmNormalize(average); - - /* add the normal to the vertex normals list */ - model->normals[3 * numnormals + 0] = average[0]; - model->normals[3 * numnormals + 1] = average[1]; - model->normals[3 * numnormals + 2] = average[2]; - avg = numnormals; - numnormals++; - } - - /* set the normal of this vertex in each triangle it is in */ - node = members[i]; - while (node) { - if (node->averaged) { - /* if this node was averaged, use the average normal */ - if (T(node->index).vindices[0] == i) - T(node->index).nindices[0] = avg; - else if (T(node->index).vindices[1] == i) - T(node->index).nindices[1] = avg; - else if (T(node->index).vindices[2] == i) - T(node->index).nindices[2] = avg; - } else { - /* if this node wasn't averaged, use the facet normal */ - model->normals[3 * numnormals + 0] = - model->facetnorms[3 * T(node->index).findex + 0]; - model->normals[3 * numnormals + 1] = - model->facetnorms[3 * T(node->index).findex + 1]; - model->normals[3 * numnormals + 2] = - model->facetnorms[3 * T(node->index).findex + 2]; - if (T(node->index).vindices[0] == i) - T(node->index).nindices[0] = numnormals; - else if (T(node->index).vindices[1] == i) - T(node->index).nindices[1] = numnormals; - else if (T(node->index).vindices[2] == i) - T(node->index).nindices[2] = numnormals; - numnormals++; - } - node = node->next; - } - } - - model->numnormals = numnormals - 1; - - /* free the member information */ - for (i = 1; i <= model->numvertices; i++) { - node = members[i]; - while (node) { - tail = node; - node = node->next; - free(tail); - } - } - free(members); - - /* pack the normals array (we previously allocated the maximum - number of normals that could possibly be created (numtriangles * - 3), so get rid of some of them (usually alot unless none of the - facet normals were averaged)) */ - normals = model->normals; - model->normals = (GLfloat*)malloc(sizeof(GLfloat)* 3* (model->numnormals+1)); - for (i = 1; i <= model->numnormals; i++) { - model->normals[3 * i + 0] = normals[3 * i + 0]; - model->normals[3 * i + 1] = normals[3 * i + 1]; - model->normals[3 * i + 2] = normals[3 * i + 2]; - } - free(normals); -} - - -/* glmLinearTexture: Generates texture coordinates according to a - * linear projection of the texture map. It generates these by - * linearly mapping the vertices onto a square. - * - * model - pointer to initialized GLMmodel structure - */ -GLvoid -glmLinearTexture(GLMmodel* model) -{ - GLMgroup *group; - GLfloat dimensions[3]; - GLfloat x, y, scalefactor; - GLuint i; - - assert(model); - - if (model->texcoords) - free(model->texcoords); - model->numtexcoords = model->numvertices; - model->texcoords=(GLfloat*)malloc(sizeof(GLfloat)*2*(model->numtexcoords+1)); - - glmDimensions(model, dimensions); - scalefactor = 2.0 / - glmAbs(glmMax(glmMax(dimensions[0], dimensions[1]), dimensions[2])); - - /* do the calculations */ - for(i = 1; i <= model->numvertices; i++) { - x = model->vertices[3 * i + 0] * scalefactor; - y = model->vertices[3 * i + 2] * scalefactor; - model->texcoords[2 * i + 0] = (x + 1.0) / 2.0; - model->texcoords[2 * i + 1] = (y + 1.0) / 2.0; - } - - /* go through and put texture coordinate indices in all the triangles */ - group = model->groups; - while(group) { - for(i = 0; i < group->numtriangles; i++) { - T(group->triangles[i]).tindices[0] = T(group->triangles[i]).vindices[0]; - T(group->triangles[i]).tindices[1] = T(group->triangles[i]).vindices[1]; - T(group->triangles[i]).tindices[2] = T(group->triangles[i]).vindices[2]; - } - group = group->next; - } - -#if 0 - printf("glmLinearTexture(): generated %d linear texture coordinates\n", - model->numtexcoords); -#endif -} - -/* glmSpheremapTexture: Generates texture coordinates according to a - * spherical projection of the texture map. Sometimes referred to as - * spheremap, or reflection map texture coordinates. It generates - * these by using the normal to calculate where that vertex would map - * onto a sphere. Since it is impossible to map something flat - * perfectly onto something spherical, there is distortion at the - * poles. This particular implementation causes the poles along the X - * axis to be distorted. - * - * model - pointer to initialized GLMmodel structure - */ -GLvoid -glmSpheremapTexture(GLMmodel* model) -{ - GLMgroup* group; - GLfloat theta, phi, rho, x, y, z, r; - GLuint i; - - assert(model); - assert(model->normals); - - if (model->texcoords) - free(model->texcoords); - model->numtexcoords = model->numnormals; - model->texcoords=(GLfloat*)malloc(sizeof(GLfloat)*2*(model->numtexcoords+1)); - - for (i = 1; i <= model->numnormals; i++) { - z = model->normals[3 * i + 0]; /* re-arrange for pole distortion */ - y = model->normals[3 * i + 1]; - x = model->normals[3 * i + 2]; - r = sqrt((x * x) + (y * y)); - rho = sqrt((r * r) + (z * z)); - - if(r == 0.0) { - theta = 0.0; - phi = 0.0; - } else { - if(z == 0.0) - phi = 3.14159265 / 2.0; - else - phi = acos(z / rho); - - if(y == 0.0) - theta = 3.141592365 / 2.0; - else - theta = asin(y / r) + (3.14159265 / 2.0); - } - - model->texcoords[2 * i + 0] = theta / 3.14159265; - model->texcoords[2 * i + 1] = phi / 3.14159265; - } - - /* go through and put texcoord indices in all the triangles */ - group = model->groups; - while(group) { - for (i = 0; i < group->numtriangles; i++) { - T(group->triangles[i]).tindices[0] = T(group->triangles[i]).nindices[0]; - T(group->triangles[i]).tindices[1] = T(group->triangles[i]).nindices[1]; - T(group->triangles[i]).tindices[2] = T(group->triangles[i]).nindices[2]; - } - group = group->next; - } -} - -/* glmDelete: Deletes a GLMmodel structure. - * - * model - initialized GLMmodel structure - */ -GLvoid -glmDelete(GLMmodel* model) -{ - GLMgroup* group; - GLuint i; - - assert(model); - - if (model->pathname) free(model->pathname); - if (model->mtllibname) free(model->mtllibname); - if (model->vertices) free(model->vertices); - if (model->normals) free(model->normals); - if (model->texcoords) free(model->texcoords); - if (model->facetnorms) free(model->facetnorms); - if (model->triangles) free(model->triangles); - if (model->materials) { - for (i = 0; i < model->nummaterials; i++) - free(model->materials[i].name); - } - free(model->materials); - while(model->groups) { - group = model->groups; - model->groups = model->groups->next; - free(group->name); - free(group->triangles); - free(group); - } - - free(model); -} - -/* glmReadOBJ: Reads a model description from a Wavefront .OBJ file. - * Modelurns a pointer to the created object which should be free'd with - * glmDelete(). - * - * filename - name of the file containing the Wavefront .OBJ format data. - */ -GLMmodel* -glmReadOBJ(char* filename) -{ - GLMmodel* model; - FILE* file; -printf("*"); -fflush(NULL); - - /* open the file */ - file = fopen(filename, "r"); - if (!file) { - fprintf(stderr, "glmReadOBJ() failed: can't open data file \"%s\".\n", - filename); - exit(1); - } - - /* allocate a new model */ - model = (GLMmodel*)malloc(sizeof(GLMmodel)); - model->pathname = strdup(filename); - model->mtllibname = NULL; - model->numvertices = 0; - model->vertices = NULL; - model->numnormals = 0; - model->normals = NULL; - model->numtexcoords = 0; - model->texcoords = NULL; - model->numfacetnorms = 0; - model->facetnorms = NULL; - model->numtriangles = 0; - model->triangles = NULL; - model->nummaterials = 0; - model->materials = NULL; - model->numgroups = 0; - model->groups = NULL; - model->position[0] = 0.0; - model->position[1] = 0.0; - model->position[2] = 0.0; - - /* make a first pass through the file to get a count of the number - of vertices, normals, texcoords & triangles */ - glmFirstPass(model, file); - - /* allocate memory */ - model->vertices = (GLfloat*)malloc(sizeof(GLfloat) * - 3 * (model->numvertices + 1)); - model->triangles = (GLMtriangle*)malloc(sizeof(GLMtriangle) * - model->numtriangles); - if (model->numnormals) { - model->normals = (GLfloat*)malloc(sizeof(GLfloat) * - 3 * (model->numnormals + 1)); - } - if (model->numtexcoords) { - model->texcoords = (GLfloat*)malloc(sizeof(GLfloat) * - 2 * (model->numtexcoords + 1)); - } - - /* rewind to beginning of file and read in the data this pass */ - rewind(file); - - glmSecondPass(model, file); - - /* close the file */ - fclose(file); - - return model; -} - -/* glmWriteOBJ: Writes a model description in Wavefront .OBJ format to - * a file. - * - * model - initialized GLMmodel structure - * filename - name of the file to write the Wavefront .OBJ format data to - * mode - a bitwise or of values describing what is written to the file - * GLM_NONE - render with only vertices - * GLM_FLAT - render with facet normals - * GLM_SMOOTH - render with vertex normals - * GLM_TEXTURE - render with texture coords - * GLM_COLOR - render with colors (color material) - * GLM_MATERIAL - render with materials - * GLM_COLOR and GLM_MATERIAL should not both be specified. - * GLM_FLAT and GLM_SMOOTH should not both be specified. - */ -GLvoid -glmWriteOBJ(GLMmodel* model, char* filename, GLuint mode) -{ - GLuint i; - FILE* file; - GLMgroup* group; - - assert(model); - - /* do a bit of warning */ - if (mode & GLM_FLAT && !model->facetnorms) { - printf("glmWriteOBJ() warning: flat normal output requested " - "with no facet normals defined.\n"); - mode &= ~GLM_FLAT; - } - if (mode & GLM_SMOOTH && !model->normals) { - printf("glmWriteOBJ() warning: smooth normal output requested " - "with no normals defined.\n"); - mode &= ~GLM_SMOOTH; - } - if (mode & GLM_TEXTURE && !model->texcoords) { - printf("glmWriteOBJ() warning: texture coordinate output requested " - "with no texture coordinates defined.\n"); - mode &= ~GLM_TEXTURE; - } - if (mode & GLM_FLAT && mode & GLM_SMOOTH) { - printf("glmWriteOBJ() warning: flat normal output requested " - "and smooth normal output requested (using smooth).\n"); - mode &= ~GLM_FLAT; - } - if (mode & GLM_COLOR && !model->materials) { - printf("glmWriteOBJ() warning: color output requested " - "with no colors (materials) defined.\n"); - mode &= ~GLM_COLOR; - } - if (mode & GLM_MATERIAL && !model->materials) { - printf("glmWriteOBJ() warning: material output requested " - "with no materials defined.\n"); - mode &= ~GLM_MATERIAL; - } - if (mode & GLM_COLOR && mode & GLM_MATERIAL) { - printf("glmWriteOBJ() warning: color and material output requested " - "outputting only materials.\n"); - mode &= ~GLM_COLOR; - } - - - /* open the file */ - file = fopen(filename, "w"); - if (!file) { - fprintf(stderr, "glmWriteOBJ() failed: can't open file \"%s\" to write.\n", - filename); - exit(1); - } - - /* spit out a header */ - fprintf(file, "# \n"); - fprintf(file, "# Wavefront OBJ generated by GLM library\n"); - fprintf(file, "# \n"); - fprintf(file, "# GLM library\n"); - fprintf(file, "# Nate Robins\n"); - fprintf(file, "# ndr@pobox.com\n"); - fprintf(file, "# http://www.pobox.com/~ndr\n"); - fprintf(file, "# \n"); - - if (mode & GLM_MATERIAL && model->mtllibname) { - fprintf(file, "\nmtllib %s\n\n", model->mtllibname); - glmWriteMTL(model, filename, model->mtllibname); - } - - /* spit out the vertices */ - fprintf(file, "\n"); - fprintf(file, "# %d vertices\n", model->numvertices); - for (i = 1; i <= model->numvertices; i++) { - fprintf(file, "v %f %f %f\n", - model->vertices[3 * i + 0], - model->vertices[3 * i + 1], - model->vertices[3 * i + 2]); - } - - /* spit out the smooth/flat normals */ - if (mode & GLM_SMOOTH) { - fprintf(file, "\n"); - fprintf(file, "# %d normals\n", model->numnormals); - for (i = 1; i <= model->numnormals; i++) { - fprintf(file, "vn %f %f %f\n", - model->normals[3 * i + 0], - model->normals[3 * i + 1], - model->normals[3 * i + 2]); - } - } else if (mode & GLM_FLAT) { - fprintf(file, "\n"); - fprintf(file, "# %d normals\n", model->numfacetnorms); - for (i = 1; i <= model->numnormals; i++) { - fprintf(file, "vn %f %f %f\n", - model->facetnorms[3 * i + 0], - model->facetnorms[3 * i + 1], - model->facetnorms[3 * i + 2]); - } - } - - /* spit out the texture coordinates */ - if (mode & GLM_TEXTURE) { - fprintf(file, "\n"); - fprintf(file, "# %d texcoords\n", model->texcoords); - for (i = 1; i <= model->numtexcoords; i++) { - fprintf(file, "vt %f %f\n", - model->texcoords[2 * i + 0], - model->texcoords[2 * i + 1]); - } - } - - fprintf(file, "\n"); - fprintf(file, "# %d groups\n", model->numgroups); - fprintf(file, "# %d faces (triangles)\n", model->numtriangles); - fprintf(file, "\n"); - - group = model->groups; - while(group) { - fprintf(file, "g %s\n", group->name); - if (mode & GLM_MATERIAL) - fprintf(file, "usemtl %s\n", model->materials[group->material].name); - for (i = 0; i < group->numtriangles; i++) { - if (mode & GLM_SMOOTH && mode & GLM_TEXTURE) { - fprintf(file, "f %d/%d/%d %d/%d/%d %d/%d/%d\n", - T(group->triangles[i]).vindices[0], - T(group->triangles[i]).nindices[0], - T(group->triangles[i]).tindices[0], - T(group->triangles[i]).vindices[1], - T(group->triangles[i]).nindices[1], - T(group->triangles[i]).tindices[1], - T(group->triangles[i]).vindices[2], - T(group->triangles[i]).nindices[2], - T(group->triangles[i]).tindices[2]); - } else if (mode & GLM_FLAT && mode & GLM_TEXTURE) { - fprintf(file, "f %d/%d %d/%d %d/%d\n", - T(group->triangles[i]).vindices[0], - T(group->triangles[i]).findex, - T(group->triangles[i]).vindices[1], - T(group->triangles[i]).findex, - T(group->triangles[i]).vindices[2], - T(group->triangles[i]).findex); - } else if (mode & GLM_TEXTURE) { - fprintf(file, "f %d/%d %d/%d %d/%d\n", - T(group->triangles[i]).vindices[0], - T(group->triangles[i]).tindices[0], - T(group->triangles[i]).vindices[1], - T(group->triangles[i]).tindices[1], - T(group->triangles[i]).vindices[2], - T(group->triangles[i]).tindices[2]); - } else if (mode & GLM_SMOOTH) { - fprintf(file, "f %d//%d %d//%d %d//%d\n", - T(group->triangles[i]).vindices[0], - T(group->triangles[i]).nindices[0], - T(group->triangles[i]).vindices[1], - T(group->triangles[i]).nindices[1], - T(group->triangles[i]).vindices[2], - T(group->triangles[i]).nindices[2]); - } else if (mode & GLM_FLAT) { - fprintf(file, "f %d//%d %d//%d %d//%d\n", - T(group->triangles[i]).vindices[0], - T(group->triangles[i]).findex, - T(group->triangles[i]).vindices[1], - T(group->triangles[i]).findex, - T(group->triangles[i]).vindices[2], - T(group->triangles[i]).findex); - } else { - fprintf(file, "f %d %d %d\n", - T(group->triangles[i]).vindices[0], - T(group->triangles[i]).vindices[1], - T(group->triangles[i]).vindices[2]); - } - } - fprintf(file, "\n"); - group = group->next; - } - - fclose(file); -} - -/* glmDraw: Renders the model to the current OpenGL context using the - * mode specified. - * - * model - initialized GLMmodel structure - * mode - a bitwise OR of values describing what is to be rendered. - * GLM_NONE - render with only vertices - * GLM_FLAT - render with facet normals - * GLM_SMOOTH - render with vertex normals - * GLM_TEXTURE - render with texture coords - * GLM_COLOR - render with colors (color material) - * GLM_MATERIAL - render with materials - * GLM_COLOR and GLM_MATERIAL should not both be specified. - * GLM_FLAT and GLM_SMOOTH should not both be specified. - */ -GLvoid -glmDraw(GLMmodel* model, GLuint mode) -{ - static GLuint i; - static GLMgroup* group; - static GLMtriangle* triangle; - static GLMmaterial* material; - - assert(model); - assert(model->vertices); - - /* do a bit of warning */ - if (mode & GLM_FLAT && !model->facetnorms) { - printf("glmDraw() warning: flat render mode requested " - "with no facet normals defined.\n"); - mode &= ~GLM_FLAT; - } - if (mode & GLM_SMOOTH && !model->normals) { - printf("glmDraw() warning: smooth render mode requested " - "with no normals defined.\n"); - mode &= ~GLM_SMOOTH; - } - if (mode & GLM_TEXTURE && !model->texcoords) { - printf("glmDraw() warning: texture render mode requested " - "with no texture coordinates defined.\n"); - mode &= ~GLM_TEXTURE; - } - if (mode & GLM_FLAT && mode & GLM_SMOOTH) { - printf("glmDraw() warning: flat render mode requested " - "and smooth render mode requested (using smooth).\n"); - mode &= ~GLM_FLAT; - } - if (mode & GLM_COLOR && !model->materials) { - printf("glmDraw() warning: color render mode requested " - "with no materials defined.\n"); - mode &= ~GLM_COLOR; - } - if (mode & GLM_MATERIAL && !model->materials) { - printf("glmDraw() warning: material render mode requested " - "with no materials defined.\n"); - mode &= ~GLM_MATERIAL; - } - if (mode & GLM_COLOR && mode & GLM_MATERIAL) { - printf("glmDraw() warning: color and material render mode requested " - "using only material mode.\n"); - mode &= ~GLM_COLOR; - } - if (mode & GLM_COLOR) - glEnable(GL_COLOR_MATERIAL); - else if (mode & GLM_MATERIAL) - glDisable(GL_COLOR_MATERIAL); - - /* perhaps this loop should be unrolled into material, color, flat, - smooth, etc. loops? since most cpu's have good branch prediction - schemes (and these branches will always go one way), probably - wouldn't gain too much? */ - - group = model->groups; - while (group) { - if (mode & GLM_MATERIAL) { - material = &model->materials[group->material]; - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, material->ambient); - glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material->diffuse); - glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material->specular); - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, material->shininess); - } - - if (mode & GLM_COLOR) { - glColor3fv(material->diffuse); - } - - glBegin(GL_TRIANGLES); - for (i = 0; i < group->numtriangles; i++) { - triangle = &T(group->triangles[i]); - - if (mode & GLM_FLAT) - glNormal3fv(&model->facetnorms[3 * triangle->findex]); - - if (mode & GLM_SMOOTH) - glNormal3fv(&model->normals[3 * triangle->nindices[0]]); - if (mode & GLM_TEXTURE) - glTexCoord2fv(&model->texcoords[2 * triangle->tindices[0]]); - glVertex3fv(&model->vertices[3 * triangle->vindices[0]]); - - if (mode & GLM_SMOOTH) - glNormal3fv(&model->normals[3 * triangle->nindices[1]]); - if (mode & GLM_TEXTURE) - glTexCoord2fv(&model->texcoords[2 * triangle->tindices[1]]); - glVertex3fv(&model->vertices[3 * triangle->vindices[1]]); - - if (mode & GLM_SMOOTH) - glNormal3fv(&model->normals[3 * triangle->nindices[2]]); - if (mode & GLM_TEXTURE) - glTexCoord2fv(&model->texcoords[2 * triangle->tindices[2]]); - glVertex3fv(&model->vertices[3 * triangle->vindices[2]]); - - } - glEnd(); - - group = group->next; - } -} - -/* glmList: Generates and modelurns a display list for the model using - * the mode specified. - * - * model - initialized GLMmodel structure - * mode - a bitwise OR of values describing what is to be rendered. - * GLM_NONE - render with only vertices - * GLM_FLAT - render with facet normals - * GLM_SMOOTH - render with vertex normals - * GLM_TEXTURE - render with texture coords - * GLM_COLOR - render with colors (color material) - * GLM_MATERIAL - render with materials - * GLM_COLOR and GLM_MATERIAL should not both be specified. - * GLM_FLAT and GLM_SMOOTH should not both be specified. */ -GLuint -glmList(GLMmodel* model, GLuint mode) -{ - GLuint list; - - list = glGenLists(1); - glNewList(list, GL_COMPILE); - glmDraw(model, mode); - glEndList(); - - return list; -} - -/* glmWeld: eliminate (weld) vectors that are within an epsilon of - * each other. - * - * model - initialized GLMmodel structure - * epsilon - maximum difference between vertices - * ( 0.00001 is a good start for a unitized model) - * - */ -GLvoid -glmWeld(GLMmodel* model, GLfloat epsilon) -{ - GLfloat* vectors; - GLfloat* copies; - GLuint numvectors; - GLuint i; - - /* vertices */ - numvectors = model->numvertices; - vectors = model->vertices; - copies = glmWeldVectors(vectors, &numvectors, epsilon); - -#if 0 - printf("glmWeld(): %d redundant vertices.\n", - model->numvertices - numvectors - 1); -#endif - - for (i = 0; i < model->numtriangles; i++) { - T(i).vindices[0] = (GLuint)vectors[3 * T(i).vindices[0] + 0]; - T(i).vindices[1] = (GLuint)vectors[3 * T(i).vindices[1] + 0]; - T(i).vindices[2] = (GLuint)vectors[3 * T(i).vindices[2] + 0]; - } - - /* free space for old vertices */ - free(vectors); - - /* allocate space for the new vertices */ - model->numvertices = numvectors; - model->vertices = (GLfloat*)malloc(sizeof(GLfloat) * - 3 * (model->numvertices + 1)); - - /* copy the optimized vertices into the actual vertex list */ - for (i = 1; i <= model->numvertices; i++) { - model->vertices[3 * i + 0] = copies[3 * i + 0]; - model->vertices[3 * i + 1] = copies[3 * i + 1]; - model->vertices[3 * i + 2] = copies[3 * i + 2]; - } - - free(copies); -} - - -#if 0 - /* normals */ - if (model->numnormals) { - numvectors = model->numnormals; - vectors = model->normals; - copies = glmOptimizeVectors(vectors, &numvectors); - - printf("glmOptimize(): %d redundant normals.\n", - model->numnormals - numvectors); - - for (i = 0; i < model->numtriangles; i++) { - T(i).nindices[0] = (GLuint)vectors[3 * T(i).nindices[0] + 0]; - T(i).nindices[1] = (GLuint)vectors[3 * T(i).nindices[1] + 0]; - T(i).nindices[2] = (GLuint)vectors[3 * T(i).nindices[2] + 0]; - } - - /* free space for old normals */ - free(vectors); - - /* allocate space for the new normals */ - model->numnormals = numvectors; - model->normals = (GLfloat*)malloc(sizeof(GLfloat) * - 3 * (model->numnormals + 1)); - - /* copy the optimized vertices into the actual vertex list */ - for (i = 1; i <= model->numnormals; i++) { - model->normals[3 * i + 0] = copies[3 * i + 0]; - model->normals[3 * i + 1] = copies[3 * i + 1]; - model->normals[3 * i + 2] = copies[3 * i + 2]; - } - - free(copies); - } - - /* texcoords */ - if (model->numtexcoords) { - numvectors = model->numtexcoords; - vectors = model->texcoords; - copies = glmOptimizeVectors(vectors, &numvectors); - - printf("glmOptimize(): %d redundant texcoords.\n", - model->numtexcoords - numvectors); - - for (i = 0; i < model->numtriangles; i++) { - for (j = 0; j < 3; j++) { - T(i).tindices[j] = (GLuint)vectors[3 * T(i).tindices[j] + 0]; - } - } - - /* free space for old texcoords */ - free(vectors); - - /* allocate space for the new texcoords */ - model->numtexcoords = numvectors; - model->texcoords = (GLfloat*)malloc(sizeof(GLfloat) * - 2 * (model->numtexcoords + 1)); - - /* copy the optimized vertices into the actual vertex list */ - for (i = 1; i <= model->numtexcoords; i++) { - model->texcoords[2 * i + 0] = copies[2 * i + 0]; - model->texcoords[2 * i + 1] = copies[2 * i + 1]; - } - - free(copies); - } - -#endif - -#if 0 - /* look for unused vertices */ - /* look for unused normals */ - /* look for unused texcoords */ - for (i = 1; i <= model->numvertices; i++) { - for (j = 0; j < model->numtriangles; i++) { - if (T(j).vindices[0] == i || - T(j).vindices[1] == i || - T(j).vindices[1] == i) - break; - } - } -#endif
--- a/plugins/crazychat/glm.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,277 +0,0 @@ -#ifndef __GLM__H__ -#define __GLM__H__ - -/* - glm.h - Nate Robins, 1997 - ndr@pobox.com, http://www.pobox.com/~ndr/ - - Wavefront OBJ model file format reader/writer/manipulator. - - Includes routines for generating smooth normals with - preservation of edges, welding redundant vertices & texture - coordinate generation (spheremap and planar projections) + more. - - */ - - -#if defined(WIN32) -#include "glut.h" -#else -//#include <GL/glut.h> -#endif - -#include<GL/glu.h> - -#ifndef M_PI -#define M_PI 3.14159265 -#endif - -#define GLM_NONE (0) /* render with only vertices */ -#define GLM_FLAT (1 << 0) /* render with facet normals */ -#define GLM_SMOOTH (1 << 1) /* render with vertex normals */ -#define GLM_TEXTURE (1 << 2) /* render with texture coords */ -#define GLM_COLOR (1 << 3) /* render with colors */ -#define GLM_MATERIAL (1 << 4) /* render with materials */ - - -/* GLMmaterial: Structure that defines a material in a model. - */ -typedef struct _GLMmaterial -{ - char* name; /* name of material */ - GLfloat diffuse[4]; /* diffuse component */ - GLfloat ambient[4]; /* ambient component */ - GLfloat specular[4]; /* specular component */ - GLfloat emmissive[4]; /* emmissive component */ - GLfloat shininess; /* specular exponent */ -} GLMmaterial; - -typedef struct _GLMmat_str{ - GLint num_materials; - GLMmaterial* materials; -} GLMmat_str; - - -/* GLMtriangle: Structure that defines a triangle in a model. - */ -typedef struct _GLMtriangle { - GLuint vindices[3]; /* array of triangle vertex indices */ - GLuint nindices[3]; /* array of triangle normal indices */ - GLuint tindices[3]; /* array of triangle texcoord indices*/ - GLuint findex; /* index of triangle facet normal */ -} GLMtriangle; - -/* GLMgroup: Structure that defines a group in a model. - */ -typedef struct _GLMgroup { - char* name; /* name of this group */ - GLuint numtriangles; /* number of triangles in this group */ - GLuint* triangles; /* array of triangle indices */ - GLuint material; /* index to material for group */ - struct _GLMgroup* next; /* pointer to next group in model */ -} GLMgroup; - -/* GLMmodel: Structure that defines a model. - */ -typedef struct _GLMmodel { - char* pathname; /* path to this model */ - char* mtllibname; /* name of the material library */ - - GLuint numvertices; /* number of vertices in model */ - GLfloat* vertices; /* array of vertices */ - - GLuint numnormals; /* number of normals in model */ - GLfloat* normals; /* array of normals */ - - GLuint numtexcoords; /* number of texcoords in model */ - GLfloat* texcoords; /* array of texture coordinates */ - - GLuint numfacetnorms; /* number of facetnorms in model */ - GLfloat* facetnorms; /* array of facetnorms */ - - GLuint numtriangles; /* number of triangles in model */ - GLMtriangle* triangles; /* array of triangles */ - - GLuint nummaterials; /* number of materials in model */ - GLMmaterial* materials; /* array of materials */ - - GLuint numgroups; /* number of groups in model */ - GLMgroup* groups; /* linked list of groups */ - - GLfloat position[3]; /* position of the model */ - -} GLMmodel; - -# ifdef __cplusplus -extern "C" { -# endif /* __cplusplus */ - -/* glmUnitize: "unitize" a model by translating it to the origin and - * scaling it to fit in a unit cube around the origin. Returns the - * scalefactor used. - * - * model - properly initialized GLMmodel structure - */ -GLfloat -glmUnitize(GLMmodel* model); - -/* glmDimensions: Calculates the dimensions (width, height, depth) of - * a model. - * - * model - initialized GLMmodel structure - * dimensions - array of 3 GLfloats (GLfloat dimensions[3]) - */ -GLvoid -glmDimensions(GLMmodel* model, GLfloat* dimensions); - -/* glmScale: Scales a model by a given amount. - * - * model - properly initialized GLMmodel structure - * scale - scalefactor (0.5 = half as large, 2.0 = twice as large) - */ -GLvoid -glmScale(GLMmodel* model, GLfloat scale); - -/* glmReverseWinding: Reverse the polygon winding for all polygons in - * this model. Default winding is counter-clockwise. Also changes - * the direction of the normals. - * - * model - properly initialized GLMmodel structure - */ -GLvoid -glmReverseWinding(GLMmodel* model); - -/* glmFacetNormals: Generates facet normals for a model (by taking the - * cross product of the two vectors derived from the sides of each - * triangle). Assumes a counter-clockwise winding. - * - * model - initialized GLMmodel structure - */ -GLvoid -glmFacetNormals(GLMmodel* model); - -/* glmVertexNormals: Generates smooth vertex normals for a model. - * First builds a list of all the triangles each vertex is in. Then - * loops through each vertex in the the list averaging all the facet - * normals of the triangles each vertex is in. Finally, sets the - * normal index in the triangle for the vertex to the generated smooth - * normal. If the dot product of a facet normal and the facet normal - * associated with the first triangle in the list of triangles the - * current vertex is in is greater than the cosine of the angle - * parameter to the function, that facet normal is not added into the - * average normal calculation and the corresponding vertex is given - * the facet normal. This tends to preserve hard edges. The angle to - * use depends on the model, but 90 degrees is usually a good start. - * - * model - initialized GLMmodel structure - * angle - maximum angle (in degrees) to smooth across - */ -GLvoid -glmVertexNormals(GLMmodel* model, GLfloat angle); - -/* glmLinearTexture: Generates texture coordinates according to a - * linear projection of the texture map. It generates these by - * linearly mapping the vertices onto a square. - * - * model - pointer to initialized GLMmodel structure - */ -GLvoid -glmLinearTexture(GLMmodel* model); - -/* glmSpheremapTexture: Generates texture coordinates according to a - * spherical projection of the texture map. Sometimes referred to as - * spheremap, or reflection map texture coordinates. It generates - * these by using the normal to calculate where that vertex would map - * onto a sphere. Since it is impossible to map something flat - * perfectly onto something spherical, there is distortion at the - * poles. This particular implementation causes the poles along the X - * axis to be distorted. - * - * model - pointer to initialized GLMmodel structure - */ -GLvoid -glmSpheremapTexture(GLMmodel* model); - -/* glmDelete: Deletes a GLMmodel structure. - * - * model - initialized GLMmodel structure - */ -GLvoid -glmDelete(GLMmodel* model); - -/* glmReadOBJ: Reads a model description from a Wavefront .OBJ file. - * Returns a pointer to the created object which should be free'd with - * glmDelete(). - * - * filename - name of the file containing the Wavefront .OBJ format data. - */ -GLMmodel* -glmReadOBJ(char* filename); - -/* glmWriteOBJ: Writes a model description in Wavefront .OBJ format to - * a file. - * - * model - initialized GLMmodel structure - * filename - name of the file to write the Wavefront .OBJ format data to - * mode - a bitwise or of values describing what is written to the file - * GLM_NONE - write only vertices - * GLM_FLAT - write facet normals - * GLM_SMOOTH - write vertex normals - * GLM_TEXTURE - write texture coords - * GLM_FLAT and GLM_SMOOTH should not both be specified. - */ -GLvoid -glmWriteOBJ(GLMmodel* model, char* filename, GLuint mode); - -/* glmDraw: Renders the model to the current OpenGL context using the - * mode specified. - * - * model - initialized GLMmodel structure - * mode - a bitwise OR of values describing what is to be rendered. - * GLM_NONE - render with only vertices - * GLM_FLAT - render with facet normals - * GLM_SMOOTH - render with vertex normals - * GLM_TEXTURE - render with texture coords - * GLM_FLAT and GLM_SMOOTH should not both be specified. - */ -GLvoid -glmDraw(GLMmodel* model, GLuint mode); - -/* glmList: Generates and returns a display list for the model using - * the mode specified. - * - * model - initialized GLMmodel structure - * mode - a bitwise OR of values describing what is to be rendered. - * GLM_NONE - render with only vertices - * GLM_FLAT - render with facet normals - * GLM_SMOOTH - render with vertex normals - * GLM_TEXTURE - render with texture coords - * GLM_FLAT and GLM_SMOOTH should not both be specified. - */ -GLuint -glmList(GLMmodel* model, GLuint mode); - -/* glmWeld: eliminate (weld) vectors that are within an epsilon of - * each other. - * - * model - initialized GLMmodel structure - * epsilon - maximum difference between vertices - * ( 0.00001 is a good start for a unitized model) - * - */ -GLvoid -glmWeld(GLMmodel* model, GLfloat epsilon); - -GLMmat_str* -glmMTL(char* name); - -void -glmSetMat(GLMmat_str* mats, GLint index); - -# ifdef __cplusplus -} -# endif /* __cplusplus */ - - -#endif
--- a/plugins/crazychat/lids.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4080 +0,0 @@ - -#include "lids.h" -#include "mat_struct.h" -#include <GL/gl.h> -#include <GL/glu.h> - - -#define NUM_LIDS 9 - -GLint lidLists[NUM_LIDS]; - -/* -typedef struct sample_MATERIAL{ - GLfloat ambient[3]; - GLfloat diffuse[3]; - GLfloat specular[3]; - GLfloat emission[3]; - GLfloat alpha; - GLfloat phExp; - int texture; -}sample_MATERIAL;*/ - -static sample_MATERIAL materials [1] = { - {{0.215686f,0.117647f,0.0627451f}, {0.847059f,0.713726f,0.639216f}, {0.044902f,0.044902f,0.044902f}, {0.0f,0.0f,0.0f}, 1.0f,11.3137f,-1} //Material #519 -}; - -static short face_indicies[NUM_LIDS][448][9] = { - -//lid 10 -{ -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }, - {66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 }, - {69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 }, - {71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 }, - {73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 }, - {75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 }, - {77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 }, - {79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 }, - {81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 }, - {83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 }, - {84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 }, - {85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 }, - {86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 }, - {87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 }, - {88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 }, - {89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 }, - {90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 }, - {91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 }, - {92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 }, - {93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 }, - {94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 }, - {95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 }, - {96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 }, - {97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 }, - {82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 }, - {99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 }, - {100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 }, - {101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 }, - {102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 }, - {103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 }, - {104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 }, - {105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 }, - {106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 }, - {107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 }, - {108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 }, - {109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 }, - {110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 }, - {111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 }, - {112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 }, - {113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 }, - {98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 }, - {115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 }, - {116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 }, - {117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 }, - {118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 }, - {119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 }, - {120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 }, - {121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 }, - {122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 }, - {123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 }, - {124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 }, - {125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 }, - {126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 }, - {127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 }, - {128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 }, - {129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 }, - {114,113,98 ,171,151,171 ,83,65,66 } -// Object #-1 - , {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 }, - {130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 }, - {130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 }, - {130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 }, - {130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 }, - {130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 }, - {130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 }, - {130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 }, - {131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 }, - {132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 }, - {133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 }, - {134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 }, - {135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 }, - {136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 }, - {137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 }, - {138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 }, - {139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 }, - {140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 }, - {141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 }, - {142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 }, - {143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 }, - {144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 }, - {145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 }, - {146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 }, - {147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 }, - {148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 }, - {149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 }, - {150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 }, - {151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 }, - {152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 }, - {153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 }, - {154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 }, - {155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 }, - {156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 }, - {157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 }, - {158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 }, - {159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 }, - {160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 }, - {161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 }, - {162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 }, - {163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 }, - {164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 }, - {165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 }, - {166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 }, - {167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 }, - {168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 }, - {169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 }, - {170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 }, - {171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 }, - {172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 }, - {173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 }, - {174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 }, - {175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 }, - {176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 }, - {177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 }, - {178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 }, - {196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 }, - {198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 }, - {200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 }, - {202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 }, - {204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 }, - {206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 }, - {208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 }, - {210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 }, - {212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 }, - {213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 }, - {214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 }, - {215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 }, - {216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 }, - {217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 }, - {218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 }, - {219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 }, - {220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 }, - {221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 }, - {222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 }, - {223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 }, - {224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 }, - {225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 }, - {226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 }, - {227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 }, - {228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 }, - {229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 }, - {230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 }, - {231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 }, - {232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 }, - {233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 }, - {234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 }, - {235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 }, - {236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 }, - {237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 }, - {238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 }, - {239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 }, - {240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 }, - {241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 }, - {242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 }, - {243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 }, - {244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 }, - {245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 }, - {246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 }, - {247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 }, - {248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 }, - {249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 }, - {250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 }, - {251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 }, - {252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 }, - {253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 }, - {254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 }, - {255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 }, - {256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 }, - {257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 }, - {258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 }, - {259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 } -}, - -//lid 9 -{ -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }, - {66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 }, - {69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 }, - {71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 }, - {73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 }, - {75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 }, - {77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 }, - {79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 }, - {81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 }, - {83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 }, - {84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 }, - {85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 }, - {86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 }, - {87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 }, - {88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 }, - {89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 }, - {90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 }, - {91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 }, - {92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 }, - {93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 }, - {94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 }, - {95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 }, - {96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 }, - {97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 }, - {82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 }, - {99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 }, - {100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 }, - {101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 }, - {102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 }, - {103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 }, - {104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 }, - {105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 }, - {106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 }, - {107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 }, - {108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 }, - {109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 }, - {110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 }, - {111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 }, - {112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 }, - {113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 }, - {98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 }, - {115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 }, - {116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 }, - {117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 }, - {118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 }, - {119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 }, - {120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 }, - {121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 }, - {122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 }, - {123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 }, - {124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 }, - {125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 }, - {126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 }, - {127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 }, - {128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 }, - {129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 }, - {114,113,98 ,171,151,171 ,83,65,66 } -// Object #-1 - , {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 }, - {130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 }, - {130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 }, - {130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 }, - {130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 }, - {130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 }, - {130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 }, - {130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 }, - {131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 }, - {132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 }, - {133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 }, - {134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 }, - {135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 }, - {136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 }, - {137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 }, - {138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 }, - {139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 }, - {140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 }, - {141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 }, - {142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 }, - {143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 }, - {144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 }, - {145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 }, - {146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 }, - {147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 }, - {148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 }, - {149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 }, - {150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 }, - {151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 }, - {152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 }, - {153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 }, - {154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 }, - {155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 }, - {156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 }, - {157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 }, - {158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 }, - {159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 }, - {160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 }, - {161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 }, - {162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 }, - {163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 }, - {164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 }, - {165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 }, - {166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 }, - {167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 }, - {168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 }, - {169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 }, - {170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 }, - {171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 }, - {172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 }, - {173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 }, - {174,190,61 ,233,251,252 ,61,78,79 }, {174,61,175 ,233,252,234 ,61,79,62 }, - {175,61,191 ,234,252,253 ,62,79,80 }, {175,191,176 ,234,253,235 ,62,80,63 }, - {176,191,192 ,235,253,254 ,63,80,81 }, {176,192,177 ,235,254,236 ,63,81,64 }, - {177,192,193 ,236,254,255 ,64,81,82 }, {177,193,178 ,236,255,237 ,64,82,65 }, - {178,193,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 }, - {195,194,196 ,258,259,260 ,1,0,2 }, {196,194,197 ,260,261,262 ,2,3,4 }, - {197,194,198 ,262,263,264 ,4,5,6 }, {198,194,199 ,264,265,266 ,6,7,8 }, - {199,194,200 ,266,267,268 ,8,9,10 }, {200,194,201 ,268,269,270 ,10,11,12 }, - {201,194,202 ,270,271,272 ,12,13,14 }, {202,194,203 ,272,273,274 ,14,15,16 }, - {203,194,204 ,274,275,276 ,16,17,18 }, {204,194,205 ,276,277,278 ,18,19,20 }, - {205,194,206 ,278,279,280 ,20,21,22 }, {206,194,207 ,280,281,282 ,22,23,24 }, - {207,194,208 ,282,283,284 ,24,25,26 }, {208,194,209 ,284,285,286 ,26,27,28 }, - {209,194,210 ,286,287,288 ,28,29,30 }, {210,194,195 ,288,289,289 ,30,31,32 }, - {211,195,212 ,290,258,291 ,33,1,34 }, {212,195,196 ,291,258,260 ,34,1,2 }, - {212,196,213 ,291,260,292 ,34,2,35 }, {213,196,197 ,292,260,262 ,35,2,4 }, - {213,197,214 ,292,262,293 ,35,4,36 }, {214,197,198 ,293,262,264 ,36,4,6 }, - {214,198,215 ,293,264,294 ,36,6,37 }, {215,198,199 ,294,264,266 ,37,6,8 }, - {215,199,216 ,294,266,295 ,37,8,38 }, {216,199,200 ,295,266,268 ,38,8,10 }, - {216,200,217 ,295,268,296 ,38,10,39 }, {217,200,201 ,296,268,270 ,39,10,12 }, - {217,201,218 ,296,270,297 ,39,12,40 }, {218,201,202 ,297,270,272 ,40,12,14 }, - {218,202,219 ,297,272,298 ,40,14,41 }, {219,202,203 ,298,272,274 ,41,14,16 }, - {219,203,220 ,298,274,299 ,41,16,42 }, {220,203,204 ,299,274,276 ,42,16,18 }, - {220,204,221 ,299,276,300 ,42,18,43 }, {221,204,205 ,300,276,278 ,43,18,20 }, - {221,205,222 ,300,278,301 ,43,20,44 }, {222,205,206 ,301,278,280 ,44,20,22 }, - {222,206,223 ,301,280,302 ,44,22,45 }, {223,206,207 ,302,280,282 ,45,22,24 }, - {223,207,224 ,302,282,303 ,45,24,46 }, {224,207,208 ,303,282,284 ,46,24,26 }, - {224,208,225 ,303,284,304 ,46,26,47 }, {225,208,209 ,304,284,286 ,47,26,28 }, - {225,209,226 ,304,286,305 ,47,28,48 }, {226,209,210 ,305,286,288 ,48,28,30 }, - {226,210,211 ,305,288,306 ,48,30,49 }, {211,210,195 ,307,288,307 ,49,30,32 }, - {227,211,228 ,308,290,309 ,50,33,51 }, {228,211,212 ,309,290,291 ,51,33,34 }, - {228,212,229 ,309,291,310 ,51,34,52 }, {229,212,213 ,310,291,292 ,52,34,35 }, - {229,213,230 ,310,292,311 ,52,35,53 }, {230,213,214 ,311,292,293 ,53,35,36 }, - {230,214,231 ,311,293,312 ,53,36,54 }, {231,214,215 ,312,293,294 ,54,36,37 }, - {231,215,232 ,312,294,313 ,54,37,55 }, {232,215,216 ,313,294,295 ,55,37,38 }, - {232,216,233 ,313,295,314 ,55,38,56 }, {233,216,217 ,314,295,296 ,56,38,39 }, - {233,217,234 ,314,296,315 ,56,39,57 }, {234,217,218 ,315,296,297 ,57,39,40 }, - {234,218,235 ,315,297,316 ,57,40,58 }, {235,218,219 ,316,297,298 ,58,40,41 }, - {235,219,236 ,316,298,317 ,58,41,59 }, {236,219,220 ,317,298,299 ,59,41,42 }, - {236,220,237 ,317,299,318 ,59,42,60 }, {237,220,221 ,318,299,300 ,60,42,43 }, - {237,221,238 ,318,300,319 ,60,43,61 }, {238,221,222 ,319,300,301 ,61,43,44 }, - {238,222,239 ,319,301,320 ,61,44,62 }, {239,222,223 ,320,301,302 ,62,44,45 }, - {239,223,240 ,320,302,321 ,62,45,63 }, {240,223,224 ,321,302,303 ,63,45,46 }, - {240,224,241 ,321,303,322 ,63,46,64 }, {241,224,225 ,322,303,304 ,64,46,47 }, - {241,225,242 ,322,304,323 ,64,47,65 }, {242,225,226 ,323,304,305 ,65,47,48 }, - {242,226,227 ,323,305,324 ,65,48,66 }, {227,226,211 ,325,305,325 ,66,48,49 }, - {243,227,244 ,326,308,327 ,67,50,68 }, {244,227,228 ,327,308,309 ,68,50,51 }, - {244,228,245 ,327,309,328 ,68,51,69 }, {245,228,229 ,328,309,310 ,69,51,52 }, - {245,229,246 ,328,310,329 ,69,52,70 }, {246,229,230 ,329,310,311 ,70,52,53 }, - {246,230,247 ,329,311,330 ,70,53,71 }, {247,230,231 ,330,311,312 ,71,53,54 }, - {247,231,248 ,330,312,331 ,71,54,72 }, {248,231,232 ,331,312,313 ,72,54,55 }, - {248,232,249 ,331,313,332 ,72,55,73 }, {249,232,233 ,332,313,314 ,73,55,56 }, - {249,233,250 ,332,314,333 ,73,56,74 }, {250,233,234 ,333,314,315 ,74,56,57 }, - {250,234,251 ,333,315,334 ,74,57,75 }, {251,234,235 ,334,315,316 ,75,57,58 }, - {251,235,252 ,334,316,335 ,75,58,76 }, {252,235,236 ,335,316,317 ,76,58,59 }, - {252,236,253 ,335,317,336 ,76,59,77 }, {253,236,237 ,336,317,318 ,77,59,60 }, - {253,237,254 ,336,318,337 ,77,60,78 }, {254,237,238 ,337,318,319 ,78,60,61 }, - {254,238,126 ,337,319,338 ,78,61,79 }, {126,238,239 ,338,319,320 ,79,61,62 }, - {126,239,255 ,338,320,339 ,79,62,80 }, {255,239,240 ,339,320,321 ,80,62,63 }, - {255,240,256 ,339,321,340 ,80,63,81 }, {256,240,241 ,340,321,322 ,81,63,64 }, - {256,241,257 ,340,322,341 ,81,64,82 }, {257,241,242 ,341,322,323 ,82,64,65 }, - {257,242,243 ,341,323,342 ,82,65,83 }, {243,242,227 ,343,323,343 ,83,65,66 } -}, - -//lid 8 -{ -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }, - {66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 }, - {69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 }, - {71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 }, - {73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 }, - {75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 }, - {77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 }, - {79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 }, - {81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 }, - {83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 }, - {84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 }, - {85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 }, - {86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 }, - {87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 }, - {88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 }, - {89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 }, - {90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 }, - {91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 }, - {92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 }, - {93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 }, - {94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 }, - {95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 }, - {96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 }, - {97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 }, - {82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 }, - {99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 }, - {100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 }, - {101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 }, - {102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 }, - {103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 }, - {104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 }, - {105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 }, - {106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 }, - {107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 }, - {108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 }, - {109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 }, - {110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 }, - {111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 }, - {112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 }, - {113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 }, - {98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 }, - {115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 }, - {116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 }, - {117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 }, - {118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 }, - {119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 }, - {120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 }, - {121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 }, - {122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 }, - {123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 }, - {124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 }, - {125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 }, - {126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 }, - {127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 }, - {128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 }, - {129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 }, - {114,113,98 ,171,151,171 ,83,65,66 } -// Object #-1 - , {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 }, - {130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 }, - {130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 }, - {130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 }, - {130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 }, - {130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 }, - {130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 }, - {130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 }, - {131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 }, - {132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 }, - {133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 }, - {134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 }, - {135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 }, - {136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 }, - {137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 }, - {138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 }, - {139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 }, - {140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 }, - {141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 }, - {142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 }, - {143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 }, - {144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 }, - {145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 }, - {146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 }, - {147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 }, - {148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 }, - {149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 }, - {150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 }, - {151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 }, - {152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 }, - {153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 }, - {154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 }, - {155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 }, - {156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 }, - {157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 }, - {158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 }, - {159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 }, - {160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 }, - {161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 }, - {162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 }, - {163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 }, - {164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 }, - {165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 }, - {166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 }, - {167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 }, - {168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 }, - {169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 }, - {170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 }, - {171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 }, - {172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 }, - {173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 }, - {174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 }, - {175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 }, - {176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 }, - {177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 }, - {178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 }, - {196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 }, - {198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 }, - {200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 }, - {202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 }, - {204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 }, - {206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 }, - {208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 }, - {210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 }, - {212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 }, - {213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 }, - {214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 }, - {215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 }, - {216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 }, - {217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 }, - {218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 }, - {219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 }, - {220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 }, - {221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 }, - {222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 }, - {223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 }, - {224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 }, - {225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 }, - {226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 }, - {227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 }, - {228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 }, - {229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 }, - {230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 }, - {231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 }, - {232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 }, - {233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 }, - {234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 }, - {235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 }, - {236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 }, - {237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 }, - {238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 }, - {239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 }, - {240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 }, - {241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 }, - {242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 }, - {243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 }, - {244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 }, - {245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 }, - {246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 }, - {247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 }, - {248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 }, - {249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 }, - {250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 }, - {251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 }, - {252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 }, - {253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 }, - {254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 }, - {255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 }, - {256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 }, - {257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 }, - {258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 }, - {259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 } -}, - -//lid 6 -{ -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }, - {66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 }, - {69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 }, - {71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 }, - {73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 }, - {75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 }, - {77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 }, - {79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 }, - {81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 }, - {83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 }, - {84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 }, - {85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 }, - {86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 }, - {87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 }, - {88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 }, - {89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 }, - {90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 }, - {91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 }, - {92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 }, - {93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 }, - {94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 }, - {95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 }, - {96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 }, - {97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 }, - {82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 }, - {99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 }, - {100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 }, - {101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 }, - {102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 }, - {103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 }, - {104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 }, - {105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 }, - {106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 }, - {107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 }, - {108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 }, - {109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 }, - {110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 }, - {111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 }, - {112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 }, - {113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 }, - {98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 }, - {115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 }, - {116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 }, - {117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 }, - {118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 }, - {119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 }, - {120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 }, - {121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 }, - {122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 }, - {123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 }, - {124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 }, - {125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 }, - {126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 }, - {127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 }, - {128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 }, - {129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 }, - {114,113,98 ,171,151,171 ,83,65,66 } -// Object #-1 - , {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 }, - {130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 }, - {130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 }, - {130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 }, - {130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 }, - {130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 }, - {130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 }, - {130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 }, - {131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 }, - {132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 }, - {133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 }, - {134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 }, - {135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 }, - {136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 }, - {137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 }, - {138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 }, - {139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 }, - {140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 }, - {141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 }, - {142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 }, - {143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 }, - {144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 }, - {145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 }, - {146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 }, - {147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 }, - {148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 }, - {149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 }, - {150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 }, - {151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 }, - {152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 }, - {153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 }, - {154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 }, - {155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 }, - {156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 }, - {157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 }, - {158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 }, - {159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 }, - {160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 }, - {161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 }, - {162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 }, - {163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 }, - {164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 }, - {165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 }, - {166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 }, - {167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 }, - {168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 }, - {169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 }, - {170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 }, - {171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 }, - {172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 }, - {173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 }, - {174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 }, - {175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 }, - {176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 }, - {177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 }, - {178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 }, - {196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 }, - {198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 }, - {200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 }, - {202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 }, - {204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 }, - {206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 }, - {208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 }, - {210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 }, - {212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 }, - {213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 }, - {214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 }, - {215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 }, - {216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 }, - {217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 }, - {218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 }, - {219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 }, - {220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 }, - {221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 }, - {222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 }, - {223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 }, - {224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 }, - {225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 }, - {226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 }, - {227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 }, - {228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 }, - {229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 }, - {230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 }, - {231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 }, - {232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 }, - {233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 }, - {234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 }, - {235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 }, - {236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 }, - {237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 }, - {238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 }, - {239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 }, - {240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 }, - {241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 }, - {242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 }, - {243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 }, - {244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 }, - {245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 }, - {246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 }, - {247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 }, - {248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 }, - {249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 }, - {250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 }, - {251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 }, - {252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 }, - {253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 }, - {254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 }, - {255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 }, - {256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 }, - {257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 }, - {258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 }, - {259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 } -}, - -//lid 5 -{ -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }, - {66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 }, - {69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 }, - {71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 }, - {73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 }, - {75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 }, - {77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 }, - {79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 }, - {81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 }, - {83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 }, - {84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 }, - {85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 }, - {86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 }, - {87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 }, - {88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 }, - {89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 }, - {90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 }, - {91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 }, - {92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 }, - {93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 }, - {94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 }, - {95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 }, - {96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 }, - {97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 }, - {82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 }, - {99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 }, - {100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 }, - {101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 }, - {102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 }, - {103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 }, - {104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 }, - {105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 }, - {106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 }, - {107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 }, - {108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 }, - {109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 }, - {110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 }, - {111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 }, - {112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 }, - {113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 }, - {98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 }, - {115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 }, - {116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 }, - {117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 }, - {118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 }, - {119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 }, - {120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 }, - {121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 }, - {122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 }, - {123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 }, - {124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 }, - {125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 }, - {126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 }, - {127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 }, - {128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 }, - {129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 }, - {114,113,98 ,171,151,171 ,83,65,66 } -// Object #-1 - , {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 }, - {130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 }, - {130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 }, - {130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 }, - {130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 }, - {130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 }, - {130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 }, - {130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 }, - {131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 }, - {132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 }, - {133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 }, - {134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 }, - {135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 }, - {136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 }, - {137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 }, - {138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 }, - {139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 }, - {140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 }, - {141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 }, - {142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 }, - {143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 }, - {144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 }, - {145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 }, - {146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 }, - {147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 }, - {148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 }, - {149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 }, - {150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 }, - {151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 }, - {152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 }, - {153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 }, - {154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 }, - {155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 }, - {156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 }, - {157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 }, - {158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 }, - {159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 }, - {160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 }, - {161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 }, - {162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 }, - {163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 }, - {164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 }, - {165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 }, - {166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 }, - {167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 }, - {168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 }, - {169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 }, - {170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 }, - {171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 }, - {172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 }, - {173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 }, - {174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 }, - {175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 }, - {176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 }, - {177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 }, - {178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 }, - {196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 }, - {198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 }, - {200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 }, - {202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 }, - {204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 }, - {206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 }, - {208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 }, - {210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 }, - {212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 }, - {213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 }, - {214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 }, - {215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 }, - {216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 }, - {217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 }, - {218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 }, - {219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 }, - {220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 }, - {221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 }, - {222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 }, - {223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 }, - {224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 }, - {225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 }, - {226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 }, - {227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 }, - {228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 }, - {229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 }, - {230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 }, - {231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 }, - {232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 }, - {233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 }, - {234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 }, - {235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 }, - {236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 }, - {237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 }, - {238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 }, - {239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 }, - {240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 }, - {241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 }, - {242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 }, - {243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 }, - {244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 }, - {245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 }, - {246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 }, - {247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 }, - {248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 }, - {249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 }, - {250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 }, - {251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 }, - {252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 }, - {253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 }, - {254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 }, - {255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 }, - {256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 }, - {257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 }, - {258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 }, - {259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 } -}, - -//lid 4 -{ -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }, - {66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 }, - {69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 }, - {71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 }, - {73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 }, - {75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 }, - {77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 }, - {79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 }, - {81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 }, - {83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 }, - {84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 }, - {85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 }, - {86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 }, - {87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 }, - {88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 }, - {89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 }, - {90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 }, - {91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 }, - {92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 }, - {93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 }, - {94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 }, - {95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 }, - {96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 }, - {97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 }, - {82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 }, - {99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 }, - {100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 }, - {101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 }, - {102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 }, - {103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 }, - {104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 }, - {105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 }, - {106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 }, - {107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 }, - {108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 }, - {109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 }, - {110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 }, - {111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 }, - {112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 }, - {113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 }, - {98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 }, - {115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 }, - {116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 }, - {117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 }, - {118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 }, - {119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 }, - {120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 }, - {121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 }, - {122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 }, - {123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 }, - {124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 }, - {125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 }, - {126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 }, - {127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 }, - {128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 }, - {129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 }, - {114,113,98 ,171,151,171 ,83,65,66 } -// Object #-1 - , {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 }, - {130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 }, - {130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 }, - {130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 }, - {130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 }, - {130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 }, - {130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 }, - {130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 }, - {131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 }, - {132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 }, - {133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 }, - {134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 }, - {135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 }, - {136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 }, - {137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 }, - {138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 }, - {139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 }, - {140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 }, - {141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 }, - {142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 }, - {143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 }, - {144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 }, - {145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 }, - {146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 }, - {147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 }, - {148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 }, - {149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 }, - {150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 }, - {151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 }, - {152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 }, - {153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 }, - {154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 }, - {155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 }, - {156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 }, - {157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 }, - {158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 }, - {159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 }, - {160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 }, - {161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 }, - {162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 }, - {163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 }, - {164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 }, - {165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 }, - {166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 }, - {167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 }, - {168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 }, - {169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 }, - {170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 }, - {171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 }, - {172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 }, - {173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 }, - {174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 }, - {175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 }, - {176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 }, - {177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 }, - {178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 }, - {196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 }, - {198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 }, - {200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 }, - {202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 }, - {204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 }, - {206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 }, - {208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 }, - {210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 }, - {212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 }, - {213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 }, - {214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 }, - {215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 }, - {216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 }, - {217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 }, - {218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 }, - {219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 }, - {220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 }, - {221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 }, - {222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 }, - {223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 }, - {224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 }, - {225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 }, - {226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 }, - {227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 }, - {228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 }, - {229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 }, - {230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 }, - {231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 }, - {232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 }, - {233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 }, - {234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 }, - {235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 }, - {236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 }, - {237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 }, - {238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 }, - {239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 }, - {240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 }, - {241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 }, - {242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 }, - {243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 }, - {244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 }, - {245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 }, - {246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 }, - {247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 }, - {248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 }, - {249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 }, - {250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 }, - {251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 }, - {252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 }, - {253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 }, - {254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 }, - {255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 }, - {256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 }, - {257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 }, - {258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 }, - {259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 } -}, -//lid 3 -{ -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }, - {66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 }, - {69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 }, - {71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 }, - {73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 }, - {75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 }, - {77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 }, - {79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 }, - {81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 }, - {83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 }, - {84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 }, - {85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 }, - {86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 }, - {87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 }, - {88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 }, - {89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 }, - {90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 }, - {91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 }, - {92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 }, - {93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 }, - {94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 }, - {95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 }, - {96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 }, - {97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 }, - {82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 }, - {99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 }, - {100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 }, - {101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 }, - {102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 }, - {103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 }, - {104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 }, - {105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 }, - {106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 }, - {107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 }, - {108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 }, - {109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 }, - {110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 }, - {111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 }, - {112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 }, - {113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 }, - {98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 }, - {115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 }, - {116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 }, - {117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 }, - {118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 }, - {119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 }, - {120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 }, - {121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 }, - {122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 }, - {123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 }, - {124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 }, - {125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 }, - {126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 }, - {127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 }, - {128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 }, - {129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 }, - {114,113,98 ,171,151,171 ,83,65,66 } -// Object #-1 - , {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 }, - {130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 }, - {130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 }, - {130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 }, - {130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 }, - {130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 }, - {130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 }, - {130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 }, - {131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 }, - {132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 }, - {133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 }, - {134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 }, - {135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 }, - {136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 }, - {137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 }, - {138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 }, - {139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 }, - {140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 }, - {141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 }, - {142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 }, - {143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 }, - {144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 }, - {145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 }, - {146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 }, - {147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 }, - {148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 }, - {149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 }, - {150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 }, - {151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 }, - {152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 }, - {153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 }, - {154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 }, - {155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 }, - {156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 }, - {157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 }, - {158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 }, - {159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 }, - {160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 }, - {161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 }, - {162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 }, - {163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 }, - {164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 }, - {165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 }, - {166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 }, - {167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 }, - {168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 }, - {169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 }, - {170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 }, - {171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 }, - {172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 }, - {173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 }, - {174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 }, - {175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 }, - {176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 }, - {177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 }, - {178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 }, - {196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 }, - {198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 }, - {200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 }, - {202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 }, - {204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 }, - {206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 }, - {208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 }, - {210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 }, - {212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 }, - {213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 }, - {214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 }, - {215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 }, - {216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 }, - {217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 }, - {218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 }, - {219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 }, - {220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 }, - {221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 }, - {222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 }, - {223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 }, - {224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 }, - {225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 }, - {226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 }, - {227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 }, - {228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 }, - {229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 }, - {230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 }, - {231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 }, - {232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 }, - {233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 }, - {234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 }, - {235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 }, - {236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 }, - {237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 }, - {238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 }, - {239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 }, - {240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 }, - {241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 }, - {242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 }, - {243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 }, - {244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 }, - {245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 }, - {246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 }, - {247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 }, - {248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 }, - {249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 }, - {250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 }, - {251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 }, - {252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 }, - {253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 }, - {254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 }, - {255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 }, - {256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 }, - {257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 }, - {258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 }, - {259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 } -}, - -//lid 2 -{ -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }, - {66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 }, - {69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 }, - {71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 }, - {73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 }, - {75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 }, - {77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 }, - {79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 }, - {81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 }, - {83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 }, - {84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 }, - {85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 }, - {86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 }, - {87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 }, - {88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 }, - {89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 }, - {90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 }, - {91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 }, - {92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 }, - {93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 }, - {94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 }, - {95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 }, - {96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 }, - {97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 }, - {82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 }, - {99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 }, - {100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 }, - {101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 }, - {102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 }, - {103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 }, - {104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 }, - {105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 }, - {106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 }, - {107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 }, - {108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 }, - {109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 }, - {110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 }, - {111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 }, - {112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 }, - {113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 }, - {98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 }, - {115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 }, - {116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 }, - {117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 }, - {118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 }, - {119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 }, - {120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 }, - {121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 }, - {122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 }, - {123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 }, - {124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 }, - {125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 }, - {126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 }, - {127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 }, - {128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 }, - {129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 }, - {114,113,98 ,171,151,171 ,83,65,66 } -// Object #-1 - , {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 }, - {130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 }, - {130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 }, - {130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 }, - {130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 }, - {130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 }, - {130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 }, - {130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 }, - {131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 }, - {132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 }, - {133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 }, - {134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 }, - {135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 }, - {136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 }, - {137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 }, - {138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 }, - {139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 }, - {140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 }, - {141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 }, - {142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 }, - {143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 }, - {144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 }, - {145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 }, - {146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 }, - {147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 }, - {148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 }, - {149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 }, - {150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 }, - {151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 }, - {152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 }, - {153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 }, - {154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 }, - {155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 }, - {156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 }, - {157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 }, - {158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 }, - {159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 }, - {160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 }, - {161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 }, - {162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 }, - {163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 }, - {164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 }, - {165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 }, - {166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 }, - {167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 }, - {168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 }, - {169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 }, - {170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 }, - {171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 }, - {172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 }, - {173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 }, - {174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 }, - {175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 }, - {176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 }, - {177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 }, - {178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 }, - {196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 }, - {198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 }, - {200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 }, - {202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 }, - {204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 }, - {206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 }, - {208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 }, - {210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 }, - {212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 }, - {213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 }, - {214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 }, - {215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 }, - {216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 }, - {217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 }, - {218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 }, - {219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 }, - {220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 }, - {221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 }, - {222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 }, - {223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 }, - {224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 }, - {225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 }, - {226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 }, - {227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 }, - {228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 }, - {229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 }, - {230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 }, - {231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 }, - {232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 }, - {233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 }, - {234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 }, - {235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 }, - {236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 }, - {237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 }, - {238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 }, - {239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 }, - {240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 }, - {241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 }, - {242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 }, - {243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 }, - {244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 }, - {245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 }, - {246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 }, - {247,231,118 ,329,311,330 ,70,53,71 }, {118,231,232 ,330,311,312 ,71,53,54 }, - {118,232,248 ,330,312,331 ,71,54,72 }, {248,232,233 ,331,312,313 ,72,54,55 }, - {248,233,249 ,331,313,332 ,72,55,73 }, {249,233,234 ,332,313,314 ,73,55,56 }, - {249,234,250 ,332,314,333 ,73,56,74 }, {250,234,235 ,333,314,315 ,74,56,57 }, - {250,235,251 ,333,315,334 ,74,57,75 }, {251,235,236 ,334,315,316 ,75,57,58 }, - {251,236,252 ,334,316,335 ,75,58,76 }, {252,236,237 ,335,316,317 ,76,58,59 }, - {252,237,253 ,335,317,336 ,76,59,77 }, {253,237,238 ,336,317,318 ,77,59,60 }, - {253,238,254 ,336,318,337 ,77,60,78 }, {254,238,239 ,337,318,319 ,78,60,61 }, - {254,239,126 ,337,319,338 ,78,61,79 }, {126,239,240 ,338,319,320 ,79,61,62 }, - {126,240,255 ,338,320,339 ,79,62,80 }, {255,240,241 ,339,320,321 ,80,62,63 }, - {255,241,256 ,339,321,340 ,80,63,81 }, {256,241,242 ,340,321,322 ,81,63,64 }, - {256,242,257 ,340,322,341 ,81,64,82 }, {257,242,243 ,341,322,323 ,82,64,65 }, - {257,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 } -}, - -//lid 1 - -{ -// Object #-1 - {0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 }, - {0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 }, - {0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 }, - {0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 }, - {0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 }, - {0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 }, - {0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 }, - {1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 }, - {3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 }, - {4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 }, - {6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 }, - {7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 }, - {8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 }, - {9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 }, - {10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 }, - {11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 }, - {12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 }, - {13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 }, - {14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 }, - {15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 }, - {16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 }, - {17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 }, - {18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 }, - {19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 }, - {20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 }, - {21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 }, - {22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 }, - {23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 }, - {24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 }, - {25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 }, - {26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 }, - {27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 }, - {28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 }, - {29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 }, - {30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 }, - {31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 }, - {32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 }, - {33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 }, - {34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 }, - {35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 }, - {36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 }, - {37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 }, - {38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 }, - {39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 }, - {40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 }, - {41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 }, - {42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 }, - {43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 }, - {44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 }, - {45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 }, - {46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 }, - {47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 }, - {48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }, - {66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 }, - {69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 }, - {71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 }, - {73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 }, - {75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 }, - {77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 }, - {79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 }, - {81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 }, - {83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 }, - {84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 }, - {85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 }, - {86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 }, - {87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 }, - {88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 }, - {89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 }, - {90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 }, - {91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 }, - {92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 }, - {93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 }, - {94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 }, - {95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 }, - {96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 }, - {97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 }, - {82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 }, - {99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 }, - {100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 }, - {101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 }, - {102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 }, - {103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 }, - {104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 }, - {105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 }, - {106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 }, - {107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 }, - {108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 }, - {109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 }, - {110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 }, - {111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 }, - {112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 }, - {113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 }, - {98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 }, - {115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 }, - {116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 }, - {117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 }, - {118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 }, - {119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 }, - {120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 }, - {121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 }, - {122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 }, - {123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 }, - {124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 }, - {125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 }, - {126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 }, - {127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 }, - {128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 }, - {129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 }, - {114,113,98 ,171,151,171 ,83,65,66 } -// Object #-1 - , {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 }, - {130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 }, - {130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 }, - {130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 }, - {130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 }, - {130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 }, - {130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 }, - {130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 }, - {131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 }, - {132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 }, - {133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 }, - {134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 }, - {135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 }, - {136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 }, - {137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 }, - {138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 }, - {139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 }, - {140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 }, - {141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 }, - {142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 }, - {143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 }, - {144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 }, - {145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 }, - {146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 }, - {147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 }, - {148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 }, - {149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 }, - {150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 }, - {151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 }, - {152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 }, - {153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 }, - {154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 }, - {155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 }, - {156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 }, - {157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 }, - {158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 }, - {159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 }, - {160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 }, - {161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 }, - {162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 }, - {163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 }, - {164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 }, - {165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 }, - {166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 }, - {167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 }, - {168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 }, - {169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 }, - {170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 }, - {171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 }, - {172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 }, - {173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 }, - {174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 }, - {175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 }, - {176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 }, - {177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 }, - {178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 }, - {196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 }, - {198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 }, - {200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 }, - {202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 }, - {204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 }, - {206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 }, - {208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 }, - {210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 }, - {212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 }, - {213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 }, - {214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 }, - {215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 }, - {216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 }, - {217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 }, - {218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 }, - {219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 }, - {220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 }, - {221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 }, - {222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 }, - {223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 }, - {224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 }, - {225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 }, - {226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 }, - {227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 }, - {228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 }, - {229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 }, - {230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 }, - {231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 }, - {232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 }, - {233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 }, - {234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 }, - {235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 }, - {236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 }, - {237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 }, - {238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 }, - {239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 }, - {240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 }, - {241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 }, - {242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 }, - {243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 }, - {244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 }, - {245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 }, - {246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 }, - {247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 }, - {248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 }, - {249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 }, - {250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 }, - {251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 }, - {252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 }, - {253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 }, - {254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 }, - {255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 }, - {256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 }, - {257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 }, - {258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 }, - {259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 } -} - -}; - - -static GLfloat vertices [NUM_LIDS][260][3] = { - -//lid 10 -{ -{-0.343683f,0.0932276f,-0.0808442f},{-0.352388f,0.0509511f,-0.122382f},{-0.380222f,0.053445f,-0.125489f}, -{-0.402561f,0.0605469f,-0.120347f},{-0.41485f,0.0711757f,-0.107383f},{-0.414844f,0.0837132f,-0.0888708f}, -{-0.403224f,0.0962507f,-0.0683421f},{-0.382806f,0.10688f,-0.0494748f},{-0.357221f,0.113981f,-0.0351177f}, -{-0.330137f,0.116475f,-0.0269877f},{-0.305195f,0.113981f,-0.0259064f},{-0.285916f,0.10688f,-0.0319369f}, -{-0.27509f,0.0962508f,-0.0441779f},{-0.274086f,0.0837133f,-0.0607215f},{-0.282788f,0.0711757f,-0.0791407f}, -{-0.300108f,0.0605469f,-0.0970521f},{-0.324256f,0.053445f,-0.112215f},{-0.353956f,-0.00391801f,-0.143495f}, -{-0.406556f,0.000690078f,-0.149706f},{-0.44962f,0.0138127f,-0.140053f},{-0.472019f,0.0334522f,-0.114869f}, -{-0.469142f,0.0566185f,-0.0792073f},{-0.444738f,0.0797848f,-0.0411625f},{-0.406781f,0.0994242f,-0.0083254f}, -{-0.361986f,0.112547f,0.0151765f},{-0.314714f,0.117155f,0.0283778f},{-0.269974f,0.112547f,0.0305063f}, -{-0.235063f,0.0994242f,0.0199389f},{-0.216662f,0.0797847f,-0.00294113f},{-0.2168f,0.0566185f,-0.0337662f}, -{-0.233011f,0.0334521f,-0.0667812f},{-0.262346f,0.0138127f,-0.0980229f},{-0.303477f,0.000690076f,-0.124775f}, -{-0.349115f,-0.0630264f,-0.141198f},{-0.416647f,-0.0570057f,-0.146593f},{-0.471994f,-0.0398601f,-0.131983f}, -{-0.499332f,-0.0142f,-0.098174f},{-0.492887f,0.0160683f,-0.0523413f},{-0.459889f,0.0463366f,-0.00548934f}, -{-0.412508f,0.0719967f,0.0330037f},{-0.358013f,0.0891423f,0.0598819f},{-0.298752f,0.095163f,0.0764664f}, -{-0.239999f,0.0891423f,0.0816282f},{-0.193576f,0.0719967f,0.0698183f},{-0.171052f,0.0463365f,0.0391026f}, -{-0.174628f,0.0160682f,-0.00326448f},{-0.197804f,-0.0142f,-0.0471786f},{-0.234863f,-0.0398601f,-0.0869477f}, -{-0.285586f,-0.0570057f,-0.119624f},{-0.340812f,-0.117375f,-0.116494f},{-0.410435f,-0.110859f,-0.117365f}, -{-0.466555f,-0.0923004f,-0.0986838f},{-0.493515f,-0.064526f,-0.0625363f},{-0.486108f,-0.0317639f,-0.0165297f}, -{-0.452382f,0.000998166f,0.0289768f},{-0.404425f,0.0287725f,0.0661753f},{-0.348021f,0.0473308f,0.0935464f}, -{-0.284297f,0.0538476f,0.113032f},{-0.219522f,0.0473308f,0.121693f},{-0.16847f,0.0287725f,0.110644f}, -{-0.145166f,0.000998132f,0.0764654f},{-0.151592f,-0.031764f,0.0281869f},{-0.178972f,-0.0645261f,-0.0214156f}, -{-0.219936f,-0.0923004f,-0.0648312f},{-0.274181f,-0.110859f,-0.0978641f},{0.343683f,0.0932276f,-0.0808442f}, -{0.352388f,0.0509511f,-0.122382f},{0.380222f,0.053445f,-0.125489f},{0.402561f,0.0605469f,-0.120347f}, -{0.41485f,0.0711757f,-0.107383f},{0.414844f,0.0837132f,-0.0888707f},{0.403224f,0.0962508f,-0.0683421f}, -{0.382806f,0.10688f,-0.0494748f},{0.357221f,0.113981f,-0.0351177f},{0.330137f,0.116475f,-0.0269877f}, -{0.305195f,0.113981f,-0.0259064f},{0.285916f,0.10688f,-0.0319369f},{0.27509f,0.0962508f,-0.0441779f}, -{0.274086f,0.0837133f,-0.0607215f},{0.282788f,0.0711757f,-0.0791407f},{0.300108f,0.0605469f,-0.0970521f}, -{0.324257f,0.053445f,-0.112215f},{0.353956f,-0.003918f,-0.143495f},{0.406556f,0.000690089f,-0.149706f}, -{0.44962f,0.0138127f,-0.140053f},{0.472019f,0.0334522f,-0.114869f},{0.469142f,0.0566185f,-0.0792073f}, -{0.444738f,0.0797848f,-0.0411625f},{0.406781f,0.0994242f,-0.0083254f},{0.361986f,0.112547f,0.0151765f}, -{0.314714f,0.117155f,0.0283778f},{0.269974f,0.112547f,0.0305063f},{0.235063f,0.0994242f,0.0199389f}, -{0.216662f,0.0797848f,-0.00294113f},{0.2168f,0.0566185f,-0.0337662f},{0.233011f,0.0334521f,-0.0667812f}, -{0.262346f,0.0138127f,-0.0980229f},{0.303477f,0.000690081f,-0.124775f},{0.349115f,-0.0630264f,-0.141198f}, -{0.416647f,-0.0570057f,-0.146593f},{0.471994f,-0.0398601f,-0.131983f},{0.499332f,-0.0142f,-0.098174f}, -{0.492887f,0.0160683f,-0.0523413f},{0.45989f,0.0463366f,-0.00548934f},{0.412508f,0.0719967f,0.0330037f}, -{0.358013f,0.0891423f,0.0598819f},{0.298752f,0.095163f,0.0764664f},{0.239999f,0.0891423f,0.0816282f}, -{0.193576f,0.0719967f,0.0698183f},{0.171052f,0.0463365f,0.0391026f},{0.174629f,0.0160683f,-0.00326448f}, -{0.197804f,-0.0141999f,-0.0471786f},{0.234863f,-0.0398601f,-0.0869477f},{0.285586f,-0.0570057f,-0.119624f}, -{0.340812f,-0.117375f,-0.116494f},{0.410435f,-0.110859f,-0.117365f},{0.466555f,-0.0923004f,-0.0986838f}, -{0.493515f,-0.064526f,-0.0625363f},{0.486108f,-0.0317639f,-0.0165297f},{0.452382f,0.000998165f,0.0289768f}, -{0.404425f,0.0287725f,0.0661753f},{0.348021f,0.0473308f,0.0935464f},{0.284297f,0.0538476f,0.113032f}, -{0.219522f,0.0473308f,0.121693f},{0.16847f,0.0287725f,0.110644f},{0.145166f,0.000998129f,0.0764654f}, -{0.151592f,-0.031764f,0.0281869f},{0.178973f,-0.0645261f,-0.0214156f},{0.219936f,-0.0923004f,-0.0648312f}, -{0.274181f,-0.110859f,-0.0978641f},{-0.299079f,0.0958282f,0.075584f},{-0.31504f,0.117375f,0.0272876f}, -{-0.338602f,0.114996f,0.0266701f},{-0.355762f,0.10822f,0.0331344f},{-0.363792f,0.0980784f,0.0452518f}, -{-0.361929f,0.0861159f,0.0605897f},{-0.351081f,0.0741534f,0.0766588f},{-0.333006f,0.0640121f,0.0915983f}, -{-0.309891f,0.0572358f,0.104011f},{-0.284547f,0.0548563f,0.112407f},{-0.260658f,0.0572358f,0.115136f}, -{-0.24234f,0.064012f,0.111029f},{-0.232993f,0.0741534f,0.100179f},{-0.234196f,0.0861159f,0.0842273f}, -{-0.245435f,0.0980784f,0.0659791f},{-0.264676f,0.10822f,0.0486193f},{-0.289045f,0.114996f,0.0350069f}, -{-0.330443f,0.116217f,-0.0281498f},{-0.376622f,0.111821f,-0.0296334f},{-0.409825f,0.0992999f,-0.0162356f}, -{-0.423182f,0.0805612f,0.00924655f},{-0.416791f,0.0584573f,0.0400915f},{-0.395343f,0.0363535f,0.0700464f}, -{-0.363257f,0.0176148f,0.0966719f},{-0.322911f,0.00509398f,0.119456f},{-0.27691f,0.000697269f,0.136065f}, -{-0.231205f,0.00509398f,0.142105f},{-0.19511f,0.0176148f,0.134121f},{-0.177144f,0.0363535f,0.112203f}, -{-0.180418f,0.0584574f,0.0803985f},{-0.202116f,0.0805612f,0.0450649f},{-0.237155f,0.0992999f,0.0123635f}, -{-0.281386f,0.111821f,-0.0131619f},{-0.343923f,0.0925307f,-0.0818601f},{-0.408753f,0.0867861f,-0.0862252f}, -{-0.455729f,0.0704268f,-0.0684926f},{-0.472454f,0.0459435f,-0.0315206f},{-0.46048f,0.0170635f,0.0132626f}, -{-0.429943f,-0.0118166f,0.0551654f},{-0.388862f,-0.0362999f,0.0913457f},{-0.339208f,-0.0526592f,0.122215f}, -{-0.281228f,-0.0584037f,0.14396f},{-0.220778f,-0.0526591f,0.149706f},{-0.17139f,-0.0362999f,0.135578f}, -{-0.146815f,-0.0118166f,0.103441f},{-0.151526f,0.0170635f,0.0600771f},{-0.179724f,0.0459436f,0.0142591f}, -{-0.223279f,0.0704269f,-0.0271356f},{-0.278744f,0.0867861f,-0.0603045f},{-0.352496f,0.0499212f,-0.123042f}, -{-0.425996f,0.0437033f,-0.130422f},{-0.480485f,0.0259961f,-0.111688f},{-0.5f,-0.000504367f,-0.0691896f}, -{-0.486108f,-0.0317639f,-0.0165297f},{-0.451623f,-0.0630235f,0.0331431f},{-0.407178f,-0.0895241f,0.0757201f}, -{-0.355434f,-0.107231f,0.110467f},{-0.295211f,-0.113449f,0.132021f},{-0.230886f,-0.107231f,0.133409f}, -{-0.176698f,-0.089524f,0.11295f},{-0.148448f,-0.0630235f,0.0751234f},{-0.151592f,-0.0317639f,0.0281869f}, -{-0.179627f,-0.000504385f,-0.0191356f},{-0.223715f,0.0259962f,-0.061618f},{-0.281467f,0.0437033f,-0.0973949f}, -{0.299079f,0.0958282f,0.075584f},{0.31504f,0.117375f,0.0272877f},{0.338602f,0.114996f,0.0266701f}, -{0.355762f,0.10822f,0.0331344f},{0.363792f,0.0980784f,0.0452518f},{0.361929f,0.0861159f,0.0605897f}, -{0.351081f,0.0741534f,0.0766588f},{0.333006f,0.0640121f,0.0915983f},{0.309891f,0.0572358f,0.104011f}, -{0.284547f,0.0548563f,0.112407f},{0.260658f,0.0572358f,0.115136f},{0.24234f,0.064012f,0.111029f}, -{0.232993f,0.0741534f,0.100179f},{0.234196f,0.0861159f,0.0842273f},{0.245435f,0.0980784f,0.0659791f}, -{0.264676f,0.10822f,0.0486193f},{0.289045f,0.114996f,0.0350069f},{0.330443f,0.116217f,-0.0281497f}, -{0.376622f,0.111821f,-0.0296334f},{0.409825f,0.0992999f,-0.0162356f},{0.423182f,0.0805612f,0.00924655f}, -{0.416791f,0.0584573f,0.0400915f},{0.395343f,0.0363535f,0.0700464f},{0.363257f,0.0176148f,0.0966719f}, -{0.322912f,0.00509398f,0.119456f},{0.27691f,0.000697269f,0.136065f},{0.231205f,0.00509397f,0.142105f}, -{0.19511f,0.0176148f,0.134121f},{0.177144f,0.0363535f,0.112203f},{0.180418f,0.0584574f,0.0803985f}, -{0.202116f,0.0805612f,0.0450649f},{0.237155f,0.0992999f,0.0123635f},{0.281386f,0.111821f,-0.0131619f}, -{0.343923f,0.0925307f,-0.0818601f},{0.408753f,0.0867861f,-0.0862252f},{0.455729f,0.0704268f,-0.0684926f}, -{0.472454f,0.0459435f,-0.0315206f},{0.46048f,0.0170635f,0.0132626f},{0.429943f,-0.0118166f,0.0551654f}, -{0.388862f,-0.0362999f,0.0913457f},{0.339208f,-0.0526592f,0.122215f},{0.281228f,-0.0584037f,0.14396f}, -{0.220778f,-0.0526591f,0.149706f},{0.17139f,-0.0362999f,0.135578f},{0.146815f,-0.0118166f,0.103441f}, -{0.151526f,0.0170635f,0.0600771f},{0.179724f,0.0459436f,0.0142591f},{0.223279f,0.0704269f,-0.0271356f}, -{0.278744f,0.0867861f,-0.0603045f},{0.352496f,0.0499212f,-0.123042f},{0.425996f,0.0437033f,-0.130422f}, -{0.480485f,0.0259961f,-0.111688f},{0.5f,-0.000504367f,-0.0691896f},{0.486108f,-0.0317639f,-0.0165297f}, -{0.451623f,-0.0630235f,0.0331431f},{0.407178f,-0.0895241f,0.0757201f},{0.355434f,-0.107231f,0.110467f}, -{0.295211f,-0.113449f,0.132021f},{0.230887f,-0.107231f,0.133409f},{0.176698f,-0.089524f,0.11295f}, -{0.148448f,-0.0630235f,0.0751234f},{0.151592f,-0.0317639f,0.0281869f},{0.179627f,-0.000504385f,-0.0191356f}, -{0.223715f,0.0259962f,-0.061618f},{0.281467f,0.0437033f,-0.0973949f} -}, - -//lid 9 -{ -{-0.3488f,0.0865926f,-0.0971807f},{-0.355149f,0.0384448f,-0.131394f},{-0.383397f,0.0414699f,-0.135249f}, -{-0.406599f,0.050085f,-0.131759f},{-0.420077f,0.0629783f,-0.121066f},{-0.421253f,0.078187f,-0.104942f}, -{-0.410423f,0.0933956f,-0.0864117f},{-0.390209f,0.106289f,-0.0688549f},{-0.364329f,0.114904f,-0.0550734f}, -{-0.336691f,0.117929f,-0.0468607f},{-0.311134f,0.114904f,-0.045088f},{-0.29125f,0.106289f,-0.0498234f}, -{-0.279811f,0.0933956f,-0.0602377f},{-0.278177f,0.078187f,-0.0746586f},{-0.286279f,0.0629783f,-0.0910166f}, -{-0.303118f,0.050085f,-0.107269f},{-0.326994f,0.04147f,-0.12142f},{-0.354272f,-0.0191842f,-0.143262f}, -{-0.406923f,-0.0135943f,-0.150064f},{-0.45107f,0.00232414f,-0.143143f},{-0.475731f,0.0261478f,-0.122366f}, -{-0.475481f,0.0542498f,-0.0914424f},{-0.452868f,0.0823518f,-0.0571111f},{-0.415338f,0.106175f,-0.0264407f}, -{-0.370037f,0.122094f,-0.00389177f},{-0.322023f,0.127684f,0.00912666f},{-0.276588f,0.122094f,0.0118882f}, -{-0.240895f,0.106175f,0.00314799f},{-0.22145f,0.0823517f,-0.0166116f},{-0.220325f,0.0542497f,-0.0435621f}, -{-0.235311f,0.0261478f,-0.0728357f},{-0.26371f,0.00232414f,-0.101058f},{-0.304208f,-0.0135943f,-0.125642f}, -{-0.347807f,-0.0775208f,-0.131687f},{-0.414577f,-0.0702173f,-0.13703f},{-0.470347f,-0.0494188f,-0.125525f}, -{-0.5f,-0.0182916f,-0.0974381f},{-0.496833f,0.0184253f,-0.0578607f},{-0.466347f,0.0551422f,-0.0157821f}, -{-0.420001f,0.0862694f,0.0198636f},{-0.365715f,0.107068f,0.0450127f},{-0.306476f,0.114371f,0.0605497f}, -{-0.247349f,0.107068f,0.0659861f},{-0.19973f,0.0862694f,0.056531f},{-0.175301f,0.0551422f,0.0300508f}, -{-0.176868f,0.0184253f,-0.00730101f},{-0.198555f,-0.0182916f,-0.0466047f},{-0.234831f,-0.0494188f,-0.0826403f}, -{-0.28505f,-0.0702173f,-0.112264f},{-0.338949f,-0.127684f,-0.0988612f},{-0.407241f,-0.119779f,-0.0997776f}, -{-0.462866f,-0.0972665f,-0.0844077f},{-0.491146f,-0.0635747f,-0.0543019f},{-0.486365f,-0.0238325f,-0.0148972f}, -{-0.455136f,0.0159096f,0.0254358f},{-0.408856f,0.0496013f,0.059075f},{-0.353684f,0.0721135f,0.0836812f}, -{-0.290783f,0.0800187f,0.101396f},{-0.22564f,0.0721136f,0.110631f},{-0.172661f,0.0496013f,0.10308f}, -{-0.146696f,0.0159096f,0.0741784f},{-0.151058f,-0.0238325f,0.0313679f},{-0.177696f,-0.0635748f,-0.0133948f}, -{-0.218854f,-0.0972665f,-0.0527407f},{-0.273153f,-0.119779f,-0.0824408f},{0.3488f,0.0865926f,-0.0971807f}, -{0.355149f,0.0384448f,-0.131394f},{0.383397f,0.04147f,-0.135249f},{0.406599f,0.050085f,-0.131759f}, -{0.420077f,0.0629783f,-0.121066f},{0.421253f,0.078187f,-0.104942f},{0.410423f,0.0933956f,-0.0864117f}, -{0.390209f,0.106289f,-0.0688549f},{0.364329f,0.114904f,-0.0550734f},{0.336691f,0.117929f,-0.0468607f}, -{0.311134f,0.114904f,-0.045088f},{0.29125f,0.106289f,-0.0498234f},{0.279811f,0.0933956f,-0.0602376f}, -{0.278177f,0.078187f,-0.0746586f},{0.286279f,0.0629783f,-0.0910166f},{0.303118f,0.050085f,-0.107269f}, -{0.326994f,0.04147f,-0.12142f},{0.354272f,-0.0191842f,-0.143262f},{0.406923f,-0.0135943f,-0.150064f}, -{0.451071f,0.00232424f,-0.143143f},{0.475731f,0.0261478f,-0.122366f},{0.475482f,0.0542498f,-0.0914424f}, -{0.452868f,0.0823518f,-0.0571111f},{0.415338f,0.106175f,-0.0264407f},{0.370037f,0.122094f,-0.00389177f}, -{0.322023f,0.127684f,0.00912666f},{0.276589f,0.122094f,0.0118882f},{0.240895f,0.106175f,0.00314799f}, -{0.22145f,0.0823517f,-0.0166116f},{0.220325f,0.0542497f,-0.0435621f},{0.235311f,0.0261478f,-0.0728357f}, -{0.26371f,0.00232414f,-0.101058f},{0.304208f,-0.0135943f,-0.125642f},{0.347807f,-0.0775207f,-0.131687f}, -{0.414577f,-0.0702173f,-0.13703f},{0.470347f,-0.0494188f,-0.125525f},{0.5f,-0.0182916f,-0.0974381f}, -{0.496833f,0.0184253f,-0.0578607f},{0.466347f,0.0551422f,-0.0157821f},{0.420001f,0.0862695f,0.0198636f}, -{0.365715f,0.107068f,0.0450127f},{0.306476f,0.114371f,0.0605497f},{0.247349f,0.107068f,0.0659861f}, -{0.19973f,0.0862694f,0.056531f},{0.175301f,0.0551422f,0.0300508f},{0.176868f,0.0184253f,-0.00730098f}, -{0.198555f,-0.0182916f,-0.0466047f},{0.234831f,-0.0494188f,-0.0826403f},{0.28505f,-0.0702173f,-0.112264f}, -{0.338949f,-0.127684f,-0.0988612f},{0.407241f,-0.119779f,-0.0997776f},{0.462866f,-0.0972665f,-0.0844077f}, -{0.491147f,-0.0635747f,-0.0543019f},{0.486365f,-0.0238325f,-0.0148972f},{0.455136f,0.0159096f,0.0254358f}, -{0.408856f,0.0496013f,0.059075f},{0.353684f,0.0721135f,0.0836812f},{0.290783f,0.0800187f,0.101396f}, -{0.22564f,0.0721136f,0.110631f},{0.172661f,0.0496013f,0.10308f},{0.146696f,0.0159096f,0.0741784f}, -{0.151058f,-0.0238325f,0.0313679f},{0.177696f,-0.0635748f,-0.0133948f},{0.218854f,-0.0972665f,-0.0527407f}, -{0.273153f,-0.119779f,-0.0824408f},{-0.297829f,0.0980529f,0.0842386f},{-0.313667f,0.123265f,0.038132f}, -{-0.33705f,0.120639f,0.0372689f},{-0.354056f,0.113163f,0.0431301f},{-0.362066f,0.101974f,0.0543168f}, -{-0.36034f,0.0887749f,0.0685476f},{-0.349711f,0.0755762f,0.0835722f},{-0.331827f,0.064387f,0.0977591f}, -{-0.308798f,0.0569104f,0.109844f},{-0.283419f,0.0542851f,0.118356f},{-0.2594f,0.0569105f,0.121591f}, -{-0.240924f,0.0643869f,0.11828f},{-0.231469f,0.0755762f,0.108374f},{-0.232666f,0.0887749f,0.0933521f}, -{-0.243995f,0.101974f,0.0758818f},{-0.26335f,0.113163f,0.0590793f},{-0.28776f,0.120639f,0.0457874f}, -{-0.328873f,0.126082f,-0.0164282f},{-0.374561f,0.121231f,-0.0180109f},{-0.407332f,0.107417f,-0.00547944f}, -{-0.420692f,0.0867414f,0.0183273f},{-0.414793f,0.0623534f,0.0470197f},{-0.394038f,0.0379655f,0.0749315f}, -{-0.362508f,0.0172904f,0.100144f},{-0.322425f,0.00347572f,0.122329f},{-0.276379f,-0.00137538f,0.139072f}, -{-0.230358f,0.00347572f,0.145889f},{-0.193783f,0.0172904f,0.139267f},{-0.175374f,0.0379654f,0.119083f}, -{-0.17845f,0.0623534f,0.0889719f},{-0.200266f,0.0867414f,0.05494f},{-0.235598f,0.107417f,0.0231068f}, -{-0.280002f,0.121231f,-0.00181462f},{-0.342729f,0.106077f,-0.0712325f},{-0.40707f,0.0997385f,-0.0755093f}, -{-0.453559f,0.0816888f,-0.0588285f},{-0.470324f,0.0546754f,-0.0239743f},{-0.459008f,0.022811f,0.0181521f}, -{-0.42934f,-0.00905347f,0.0575822f},{-0.3889f,-0.0360667f,0.0920333f},{-0.339532f,-0.0541165f,0.122036f}, -{-0.28154f,-0.0604547f,0.143658f},{-0.220773f,-0.0541165f,0.150064f},{-0.170787f,-0.0360668f,0.137505f}, -{-0.14554f,-0.00905347f,0.107605f},{-0.149815f,0.022811f,0.0664637f},{-0.177993f,0.0546754f,0.0222531f}, -{-0.221855f,0.0816888f,-0.0181252f},{-0.277621f,0.0997385f,-0.05043f},{-0.352579f,0.0662937f,-0.115311f}, -{-0.426014f,0.0594332f,-0.122827f},{-0.480338f,0.0398963f,-0.10543f},{-0.499898f,0.0106573f,-0.065114f}, -{-0.486365f,-0.0238325f,-0.0148973f},{-0.452313f,-0.0583224f,0.0325481f},{-0.408062f,-0.0875614f,0.0734018f}, -{-0.356245f,-0.107098f,0.107029f},{-0.295864f,-0.113959f,0.128165f},{-0.231347f,-0.107098f,0.130078f}, -{-0.176848f,-0.0875614f,0.111236f},{-0.148202f,-0.0583224f,0.0758284f},{-0.179053f,0.0106573f,-0.0141398f}, -{-0.223329f,0.0398963f,-0.0555068f},{-0.281369f,0.0594333f,-0.0903756f},{0.297829f,0.0980529f,0.0842386f}, -{0.313667f,0.123265f,0.038132f},{0.33705f,0.120639f,0.0372689f},{0.354056f,0.113163f,0.0431301f}, -{0.362066f,0.101974f,0.0543168f},{0.36034f,0.0887749f,0.0685476f},{0.349711f,0.0755762f,0.0835722f}, -{0.331827f,0.064387f,0.0977591f},{0.308798f,0.0569104f,0.109844f},{0.283419f,0.0542851f,0.118356f}, -{0.2594f,0.0569105f,0.121591f},{0.240924f,0.0643869f,0.11828f},{0.231469f,0.0755762f,0.108374f}, -{0.232666f,0.0887749f,0.0933521f},{0.243995f,0.101974f,0.0758818f},{0.26335f,0.113163f,0.0590793f}, -{0.28776f,0.120639f,0.0457874f},{0.328873f,0.126082f,-0.0164282f},{0.374561f,0.121231f,-0.0180109f}, -{0.407332f,0.107417f,-0.00547944f},{0.420692f,0.0867414f,0.0183273f},{0.414793f,0.0623534f,0.0470197f}, -{0.394038f,0.0379655f,0.0749315f},{0.362508f,0.0172904f,0.100144f},{0.322425f,0.00347572f,0.122329f}, -{0.276379f,-0.00137538f,0.139072f},{0.230358f,0.00347572f,0.145889f},{0.193783f,0.0172904f,0.139267f}, -{0.175374f,0.0379654f,0.119083f},{0.17845f,0.0623534f,0.0889719f},{0.200266f,0.0867414f,0.05494f}, -{0.235598f,0.107417f,0.0231068f},{0.280002f,0.121231f,-0.00181462f},{0.342729f,0.106077f,-0.0712325f}, -{0.40707f,0.0997385f,-0.0755093f},{0.453559f,0.0816888f,-0.0588285f},{0.470324f,0.0546754f,-0.0239743f}, -{0.459008f,0.022811f,0.0181521f},{0.42934f,-0.00905347f,0.0575822f},{0.3889f,-0.0360667f,0.0920333f}, -{0.339532f,-0.0541165f,0.122036f},{0.28154f,-0.0604547f,0.143658f},{0.220773f,-0.0541165f,0.150064f}, -{0.170787f,-0.0360668f,0.137505f},{0.14554f,-0.00905347f,0.107605f},{0.149815f,0.022811f,0.0664637f}, -{0.177993f,0.0546754f,0.0222531f},{0.221855f,0.0816888f,-0.0181252f},{0.277621f,0.0997385f,-0.05043f}, -{0.352579f,0.0662937f,-0.115311f},{0.426014f,0.0594332f,-0.122827f},{0.480338f,0.0398963f,-0.10543f}, -{0.499898f,0.0106573f,-0.065114f},{0.486365f,-0.0238325f,-0.0148973f},{0.452313f,-0.0583224f,0.0325481f}, -{0.408062f,-0.0875614f,0.0734018f},{0.356245f,-0.107098f,0.107029f},{0.295864f,-0.113959f,0.128165f}, -{0.231347f,-0.107098f,0.130078f},{0.176848f,-0.0875614f,0.111236f},{0.148202f,-0.0583224f,0.0758284f}, -{0.179053f,0.0106573f,-0.0141398f},{0.223329f,0.0398963f,-0.0555068f},{0.281369f,0.0594333f,-0.0903756f} -}, - -//lid 8 -{ -{-0.348964f,0.0841141f,-0.102844f},{-0.354155f,0.034321f,-0.134653f},{-0.382714f,0.0375006f,-0.138946f}, -{-0.406454f,0.0465551f,-0.136169f},{-0.420594f,0.0601062f,-0.126341f},{-0.422361f,0.0760907f,-0.111045f}, -{-0.411852f,0.0920752f,-0.0931276f},{-0.39161f,0.105626f,-0.0758779f},{-0.365443f,0.114681f,-0.0621226f}, -{-0.337443f,0.11786f,-0.0537301f},{-0.311591f,0.114681f,-0.0516105f},{-0.291492f,0.105626f,-0.0558164f}, -{-0.279841f,0.0920752f,-0.0655216f},{-0.277923f,0.0760906f,-0.0791518f},{-0.285685f,0.0601061f,-0.0948063f}, -{-0.302221f,0.0465551f,-0.110585f},{-0.325939f,0.0375006f,-0.124552f},{-0.352121f,-0.0239383f,-0.143656f}, -{-0.405164f,-0.0180633f,-0.150868f},{-0.450226f,-0.00133275f,-0.145058f},{-0.476253f,0.0237063f,-0.125898f}, -{-0.477338f,0.0532419f,-0.0965964f},{-0.455389f,0.0827775f,-0.0633853f},{-0.417606f,0.107817f,-0.0331416f}, -{-0.371497f,0.124547f,-0.0105503f},{-0.32275f,0.130422f,0.00261082f},{-0.277032f,0.124547f,0.0055299f}, -{-0.241377f,0.107817f,-0.0027318f},{-0.221859f,0.0827775f,-0.0214042f},{-0.220238f,0.0532419f,-0.0468527f}, -{-0.234397f,0.0237063f,-0.0747574f},{-0.262018f,-0.00133274f,-0.102078f},{-0.302085f,-0.0180633f,-0.12617f}, -{-0.344948f,-0.0817945f,-0.129319f},{-0.412012f,-0.0741185f,-0.134705f},{-0.4687f,-0.0522589f,-0.124335f}, -{-0.5f,-0.0195438f,-0.0982293f},{-0.498575f,0.0190463f,-0.0607126f},{-0.468954f,0.0576364f,-0.0200192f}, -{-0.422252f,0.0903515f,0.0151393f},{-0.366996f,0.112211f,0.0402528f},{-0.307083f,0.119887f,0.0555925f}, -{-0.247974f,0.112211f,0.0606335f},{-0.200709f,0.0903515f,0.0512665f},{-0.176262f,0.0576364f,0.0259707f}, -{-0.177034f,0.0190463f,-0.00941388f},{-0.197421f,-0.0195438f,-0.0469124f},{-0.232576f,-0.052259f,-0.081761f}, -{-0.282258f,-0.0741185f,-0.110534f},{-0.335953f,-0.130439f,-0.0940914f},{-0.404416f,-0.122131f,-0.0948819f}, -{-0.460736f,-0.0984704f,-0.0805227f},{-0.49041f,-0.0630598f,-0.052294f},{-0.487177f,-0.0212901f,-0.0148493f}, -{-0.456766f,0.0204795f,0.0241508f},{-0.410302f,0.05589f,0.0571937f},{-0.354541f,0.0795506f,0.0814215f}, -{-0.291402f,0.0878591f,0.0984543f},{-0.226542f,0.0795506f,0.106885f},{-0.173908f,0.05589f,0.0992358f}, -{-0.147736f,0.0204794f,0.0715326f},{-0.15111f,-0.0212902f,0.0308063f},{-0.176369f,-0.0630598f,-0.0119795f}, -{-0.216431f,-0.0984704f,-0.0499184f},{-0.270239f,-0.122131f,-0.0785263f},{0.348964f,0.0841141f,-0.102844f}, -{0.354155f,0.034321f,-0.134653f},{0.382714f,0.0375006f,-0.138946f},{0.406454f,0.0465551f,-0.136169f}, -{0.420594f,0.0601062f,-0.126341f},{0.422361f,0.0760907f,-0.111045f},{0.411852f,0.0920752f,-0.0931276f}, -{0.39161f,0.105626f,-0.075878f},{0.365443f,0.114681f,-0.0621226f},{0.337443f,0.11786f,-0.0537301f}, -{0.311591f,0.114681f,-0.0516105f},{0.291492f,0.105626f,-0.0558164f},{0.279841f,0.0920752f,-0.0655216f}, -{0.277923f,0.0760906f,-0.0791518f},{0.285685f,0.0601061f,-0.0948063f},{0.302221f,0.0465551f,-0.110585f}, -{0.32594f,0.0375006f,-0.124552f},{0.352121f,-0.0239383f,-0.143656f},{0.405164f,-0.0180633f,-0.150868f}, -{0.450226f,-0.00133275f,-0.145058f},{0.476253f,0.0237063f,-0.125898f},{0.477338f,0.0532419f,-0.0965964f}, -{0.455389f,0.0827775f,-0.0633853f},{0.417606f,0.107817f,-0.0331416f},{0.371497f,0.124547f,-0.0105503f}, -{0.32275f,0.130422f,0.00261082f},{0.277032f,0.124547f,0.0055299f},{0.241377f,0.107817f,-0.0027318f}, -{0.221859f,0.0827775f,-0.0214042f},{0.220238f,0.0532419f,-0.0468527f},{0.234397f,0.0237063f,-0.0747574f}, -{0.262018f,-0.00133274f,-0.102078f},{0.302085f,-0.0180633f,-0.12617f},{0.344948f,-0.0817945f,-0.129319f}, -{0.412012f,-0.0741185f,-0.134705f},{0.4687f,-0.0522589f,-0.124335f},{0.5f,-0.0195438f,-0.0982293f}, -{0.498575f,0.0190463f,-0.0607126f},{0.468954f,0.0576364f,-0.0200192f},{0.422252f,0.0903515f,0.0151393f}, -{0.366996f,0.112211f,0.0402528f},{0.307083f,0.119887f,0.0555925f},{0.247974f,0.112211f,0.0606335f}, -{0.200709f,0.0903515f,0.0512665f},{0.176262f,0.0576364f,0.0259707f},{0.177034f,0.0190463f,-0.00941388f}, -{0.197421f,-0.0195438f,-0.0469124f},{0.232576f,-0.052259f,-0.081761f},{0.282258f,-0.0741185f,-0.110534f}, -{0.335953f,-0.130439f,-0.0940914f},{0.404416f,-0.122131f,-0.0948819f},{0.460736f,-0.0984704f,-0.0805227f}, -{0.49041f,-0.0630598f,-0.052294f},{0.487177f,-0.0212901f,-0.0148493f},{0.456766f,0.0204795f,0.0241508f}, -{0.410302f,0.05589f,0.0571937f},{0.354541f,0.0795506f,0.0814215f},{0.291402f,0.0878591f,0.0984543f}, -{0.226542f,0.0795506f,0.106885f},{0.173908f,0.05589f,0.0992358f},{0.147736f,0.0204794f,0.0715326f}, -{0.15111f,-0.0212902f,0.0308063f},{0.176369f,-0.0630598f,-0.0119795f},{0.216431f,-0.0984704f,-0.0499184f}, -{0.270239f,-0.122131f,-0.0785263f},{-0.291072f,0.0869352f,0.0992675f},{-0.306729f,0.119396f,0.0566704f}, -{-0.330009f,0.116298f,0.0553776f},{-0.347061f,0.107476f,0.060103f},{-0.355392f,0.094272f,0.0696509f}, -{-0.35423f,0.078697f,0.082139f},{-0.344255f,0.063122f,0.0957421f},{-0.326952f,0.0499182f,0.109044f}, -{-0.304306f,0.0410956f,0.120722f},{-0.279013f,0.0379976f,0.129152f},{-0.254731f,0.0410956f,0.13261f}, -{-0.235694f,0.0499182f,0.129947f},{-0.225567f,0.063122f,0.121192f},{-0.226215f,0.078697f,0.1077f}, -{-0.237249f,0.094272f,0.0918433f},{-0.256524f,0.107476f,0.0764213f},{-0.280909f,0.116298f,0.0640395f}, -{-0.322409f,0.130439f,0.00385885f},{-0.367471f,0.124715f,0.00184701f},{-0.400107f,0.108413f,0.0123315f}, -{-0.414317f,0.0840155f,0.0327456f},{-0.410025f,0.0552367f,0.0577653f},{-0.391009f,0.0264579f,0.0829813f}, -{-0.360978f,0.00206033f,0.106894f},{-0.322089f,-0.0142416f,0.128503f},{-0.276729f,-0.019966f,0.144602f}, -{-0.230467f,-0.0142416f,0.150868f},{-0.192583f,0.00206035f,0.144734f},{-0.172269f,0.0264579f,0.126669f}, -{-0.173642f,0.0552367f,0.0998949f},{-0.194526f,0.0840156f,0.0694042f},{-0.229637f,0.108413f,0.0404957f}, -{-0.273962f,0.124715f,0.0175577f},{-0.337139f,0.118383f,-0.0525144f},{-0.400699f,0.110904f,-0.0571073f}, -{-0.447192f,0.0896042f,-0.0430756f},{-0.465444f,0.0577272f,-0.01278f},{-0.456584f,0.0201259f,0.0244976f}, -{-0.42927f,-0.0174755f,0.0605408f},{-0.390675f,-0.0493524f,0.093387f},{-0.342933f,-0.0706518f,0.122279f}, -{-0.286261f,-0.0781312f,0.142185f},{-0.225698f,-0.0706519f,0.146978f},{-0.174201f,-0.0493524f,0.13474f}, -{-0.146169f,-0.0174755f,0.107994f},{-0.147595f,0.0201259f,0.0718902f},{-0.17391f,0.0577273f,0.0327803f}, -{-0.217068f,0.0896041f,-0.00361029f},{-0.272593f,0.110904f,-0.033185f},{-0.348767f,0.0850626f,-0.10191f}, -{-0.422111f,0.076967f,-0.110121f},{-0.477084f,0.0539125f,-0.0958718f},{-0.498416f,0.0194093f,-0.0603363f}, -{-0.487177f,-0.0212902f,-0.0148492f},{-0.454951f,-0.0619896f,0.0292421f},{-0.411793f,-0.0964929f,0.0680066f}, -{-0.360878f,-0.119547f,0.0996509f},{-0.301511f,-0.127643f,0.118439f},{-0.237483f,-0.119547f,0.118782f}, -{-0.182061f,-0.0964929f,0.100861f},{-0.151065f,-0.0619896f,0.0694335f},{-0.15111f,-0.0212902f,0.0308063f}, -{-0.176925f,0.0194093f,-0.00906683f},{-0.220087f,0.0539126f,-0.0462431f},{-0.27776f,0.0769669f,-0.0783452f}, -{0.291072f,0.0869352f,0.0992675f},{0.306729f,0.119396f,0.0566704f},{0.330009f,0.116298f,0.0553776f}, -{0.347061f,0.107476f,0.060103f},{0.355392f,0.094272f,0.0696509f},{0.35423f,0.078697f,0.082139f}, -{0.344255f,0.063122f,0.095742f},{0.326952f,0.0499182f,0.109044f},{0.304306f,0.0410956f,0.120722f}, -{0.279013f,0.0379976f,0.129152f},{0.254731f,0.0410956f,0.13261f},{0.235694f,0.0499182f,0.129947f}, -{0.225567f,0.063122f,0.121192f},{0.226215f,0.078697f,0.1077f},{0.237249f,0.094272f,0.0918432f}, -{0.256524f,0.107476f,0.0764213f},{0.280909f,0.116298f,0.0640395f},{0.322409f,0.130439f,0.00385884f}, -{0.367471f,0.124715f,0.001847f},{0.400107f,0.108413f,0.0123315f},{0.414317f,0.0840155f,0.0327456f}, -{0.410025f,0.0552367f,0.0577653f},{0.391009f,0.0264579f,0.0829813f},{0.360978f,0.00206034f,0.106894f}, -{0.322089f,-0.0142416f,0.128503f},{0.276729f,-0.019966f,0.144602f},{0.230467f,-0.0142416f,0.150868f}, -{0.192583f,0.00206036f,0.144734f},{0.172269f,0.0264579f,0.126669f},{0.173642f,0.0552368f,0.0998949f}, -{0.194526f,0.0840156f,0.0694042f},{0.229637f,0.108413f,0.0404957f},{0.273962f,0.124715f,0.0175577f}, -{0.337139f,0.118383f,-0.0525144f},{0.400699f,0.110904f,-0.0571073f},{0.447192f,0.0896042f,-0.0430756f}, -{0.465443f,0.0577272f,-0.01278f},{0.456584f,0.0201259f,0.0244975f},{0.42927f,-0.0174755f,0.0605408f}, -{0.390675f,-0.0493524f,0.093387f},{0.342933f,-0.0706518f,0.122279f},{0.286261f,-0.0781312f,0.142185f}, -{0.225698f,-0.0706519f,0.146978f},{0.174201f,-0.0493524f,0.13474f},{0.146169f,-0.0174755f,0.107994f}, -{0.147595f,0.0201259f,0.0718902f},{0.17391f,0.0577273f,0.0327803f},{0.217068f,0.0896041f,-0.0036103f}, -{0.272593f,0.110904f,-0.033185f},{0.348767f,0.0850626f,-0.10191f},{0.422111f,0.0769669f,-0.110121f}, -{0.477084f,0.0539125f,-0.0958718f},{0.498416f,0.0194093f,-0.0603363f},{0.487177f,-0.0212902f,-0.0148492f}, -{0.454951f,-0.0619896f,0.0292421f},{0.411793f,-0.0964929f,0.0680066f},{0.360878f,-0.119547f,0.0996509f}, -{0.301511f,-0.127643f,0.118439f},{0.237483f,-0.119547f,0.118782f},{0.182061f,-0.0964929f,0.100861f}, -{0.151065f,-0.0619896f,0.0694335f},{0.15111f,-0.0212902f,0.0308063f},{0.176925f,0.0194093f,-0.00906683f}, -{0.220087f,0.0539126f,-0.0462431f},{0.27776f,0.0769669f,-0.0783453f} -}, - -//lid 6 -{ -{-0.351756f,0.0844025f,-0.109661f},{-0.355945f,0.0328842f,-0.138446f},{-0.384378f,0.0362308f,-0.142751f}, -{-0.408193f,0.0457608f,-0.140451f},{-0.42265f,0.0600234f,-0.131521f},{-0.424904f,0.0768473f,-0.117353f}, -{-0.414884f,0.0936713f,-0.100537f},{-0.394983f,0.107934f,-0.084143f},{-0.36896f,0.117464f,-0.070887f}, -{-0.340955f,0.12081f,-0.0626191f},{-0.315021f,0.117464f,-0.0602733f},{-0.294794f,0.107934f,-0.0639409f}, -{-0.282961f,0.0936712f,-0.0728692f},{-0.2808f,0.0768474f,-0.0856041f},{-0.288278f,0.0600233f,-0.100374f}, -{-0.304522f,0.0457607f,-0.115367f},{-0.327964f,0.0362308f,-0.128713f},{-0.353096f,-0.0259013f,-0.144196f}, -{-0.405674f,-0.0197177f,-0.151037f},{-0.450633f,-0.00210858f,-0.145914f},{-0.477229f,0.0242454f,-0.128485f}, -{-0.479417f,0.0553321f,-0.10146f},{-0.458564f,0.0864186f,-0.0703846f},{-0.421405f,0.112773f,-0.0416503f}, -{-0.375401f,0.130382f,-0.0198441f},{-0.326511f,0.136565f,-0.00688288f},{-0.280637f,0.130382f,-0.00366803f}, -{-0.244819f,0.112772f,-0.0110978f},{-0.225012f,0.0864185f,-0.0284403f},{-0.222941f,0.055332f,-0.0523391f}, -{-0.23661f,0.0242453f,-0.078796f},{-0.263825f,-0.00210858f,-0.104838f},{-0.30352f,-0.0197177f,-0.127723f}, -{-0.34558f,-0.0830043f,-0.126825f},{-0.411879f,-0.0749251f,-0.131548f},{-0.468152f,-0.0519177f,-0.121991f}, -{-0.5f,-0.0174846f,-0.0981684f},{-0.499979f,0.023132f,-0.0636476f},{-0.47182f,0.0637486f,-0.0256644f}, -{-0.425949f,0.0981816f,0.00767143f},{-0.370867f,0.121189f,0.0318387f},{-0.310857f,0.129268f,0.0468414f}, -{-0.251612f,0.121189f,0.0521057f},{-0.204087f,0.0981816f,0.0437074f},{-0.179119f,0.0637485f,0.0201095f}, -{-0.179202f,0.0231319f,-0.013301f},{-0.19903f,-0.0174846f,-0.0490307f},{-0.233919f,-0.0519177f,-0.0823255f}, -{-0.283398f,-0.0749251f,-0.109512f},{-0.336776f,-0.129732f,-0.0889855f},{-0.404391f,-0.120987f,-0.0893879f}, -{-0.460079f,-0.0960837f,-0.0761018f},{-0.490006f,-0.0588136f,-0.0503488f},{-0.487934f,-0.0148505f,-0.0159837f}, -{-0.458895f,0.0291126f,0.020314f},{-0.413359f,0.0663826f,0.0515159f},{-0.358011f,0.0912858f,0.0746728f}, -{-0.294985f,0.100031f,0.0912395f},{-0.229974f,0.0912857f,0.0999435f},{-0.176824f,0.0663827f,0.0935117f}, -{-0.149845f,0.0291126f,0.067785f},{-0.152477f,-0.0148506f,0.0292381f},{-0.177433f,-0.0588137f,-0.0115784f}, -{-0.217614f,-0.0960837f,-0.0477599f},{-0.271491f,-0.120987f,-0.074726f},{0.351756f,0.0844025f,-0.109661f}, -{0.355945f,0.0328842f,-0.138446f},{0.384378f,0.0362308f,-0.142751f},{0.408193f,0.0457608f,-0.140451f}, -{0.42265f,0.0600234f,-0.131521f},{0.424904f,0.0768474f,-0.117353f},{0.414884f,0.0936713f,-0.100537f}, -{0.394983f,0.107934f,-0.084143f},{0.36896f,0.117464f,-0.070887f},{0.340955f,0.12081f,-0.0626191f}, -{0.315021f,0.117464f,-0.0602733f},{0.294794f,0.107934f,-0.0639409f},{0.282961f,0.0936712f,-0.0728692f}, -{0.2808f,0.0768474f,-0.0856041f},{0.288278f,0.0600233f,-0.100374f},{0.304522f,0.0457607f,-0.115367f}, -{0.327964f,0.0362308f,-0.128713f},{0.353096f,-0.0259012f,-0.144196f},{0.405674f,-0.0197177f,-0.151037f}, -{0.450633f,-0.00210858f,-0.145914f},{0.477229f,0.0242454f,-0.128485f},{0.479417f,0.0553321f,-0.10146f}, -{0.458564f,0.0864186f,-0.0703846f},{0.421405f,0.112773f,-0.0416503f},{0.375401f,0.130382f,-0.0198441f}, -{0.326511f,0.136565f,-0.00688288f},{0.280637f,0.130382f,-0.00366802f},{0.244819f,0.112772f,-0.0110978f}, -{0.225012f,0.0864185f,-0.0284403f},{0.222941f,0.055332f,-0.0523391f},{0.236611f,0.0242453f,-0.078796f}, -{0.263825f,-0.00210858f,-0.104838f},{0.30352f,-0.0197177f,-0.127723f},{0.345581f,-0.0830043f,-0.126825f}, -{0.411879f,-0.0749251f,-0.131548f},{0.468152f,-0.0519177f,-0.121991f},{0.5f,-0.0174846f,-0.0981684f}, -{0.499979f,0.023132f,-0.0636476f},{0.47182f,0.0637486f,-0.0256644f},{0.425949f,0.0981816f,0.00767143f}, -{0.370867f,0.121189f,0.0318387f},{0.310857f,0.129268f,0.0468414f},{0.251612f,0.121189f,0.0521057f}, -{0.204087f,0.0981816f,0.0437074f},{0.179119f,0.0637485f,0.0201095f},{0.179202f,0.0231319f,-0.013301f}, -{0.19903f,-0.0174846f,-0.0490307f},{0.233919f,-0.0519177f,-0.0823255f},{0.283398f,-0.0749251f,-0.109512f}, -{0.336776f,-0.129732f,-0.0889855f},{0.404391f,-0.120987f,-0.0893879f},{0.460079f,-0.0960837f,-0.0761018f}, -{0.490007f,-0.0588136f,-0.0503488f},{0.487934f,-0.0148505f,-0.0159837f},{0.458895f,0.0291126f,0.020314f}, -{0.413359f,0.0663826f,0.0515159f},{0.358011f,0.0912858f,0.0746728f},{0.294985f,0.100031f,0.0912395f}, -{0.229974f,0.0912857f,0.0999435f},{0.176824f,0.0663827f,0.0935117f},{0.149845f,0.0291126f,0.067785f}, -{0.152477f,-0.0148506f,0.0292381f},{0.177433f,-0.0588137f,-0.0115784f},{0.217614f,-0.0960837f,-0.0477599f}, -{0.271491f,-0.120987f,-0.074726f},{-0.287056f,0.0758929f,0.110646f},{-0.301988f,0.115564f,0.0728616f}, -{-0.325153f,0.112018f,0.0708336f},{-0.342261f,0.101921f,0.0739892f},{-0.351035f,0.0868102f,0.0813745f}, -{-0.350709f,0.0689855f,0.0915995f},{-0.341765f,0.0511608f,0.10337f},{-0.325429f,0.0360497f,0.115558f}, -{-0.303445f,0.0259528f,0.126808f},{-0.278313f,0.0224073f,0.135353f},{-0.253592f,0.0259528f,0.139427f}, -{-0.233614f,0.0360497f,0.137946f},{-0.22236f,0.0511608f,0.130911f},{-0.22208f,0.0689854f,0.119439f}, -{-0.232625f,0.0868102f,0.105524f},{-0.2518f,0.101921f,0.0916217f},{-0.276219f,0.112018f,0.080118f}, -{-0.317919f,0.13538f,0.0237192f},{-0.36191f,0.128829f,0.0210766f},{-0.394013f,0.110172f,0.0288914f}, -{-0.409112f,0.0822505f,0.0448135f},{-0.40697f,0.0493148f,0.0648619f},{-0.390534f,0.016379f,0.08627f}, -{-0.362855f,-0.0115425f,0.108162f},{-0.325769f,-0.0301992f,0.128919f},{-0.281276f,-0.0367505f,0.144595f}, -{-0.234463f,-0.0301991f,0.151037f},{-0.194554f,-0.0115425f,0.146466f},{-0.171463f,0.016379f,0.131679f}, -{-0.170486f,0.0493148f,0.109223f},{-0.190284f,0.0822505f,0.082936f},{-0.225447f,0.110172f,0.0573035f}, -{-0.269985f,0.128829f,0.0364921f},{-0.333196f,0.132325f,-0.0320871f},{-0.39485f,0.123765f,-0.0366893f}, -{-0.440427f,0.0993894f,-0.0258578f},{-0.460181f,0.0629081f,-0.00177522f},{-0.454693f,0.0198755f,0.0284132f}, -{-0.431007f,-0.0231572f,0.0590285f},{-0.395363f,-0.0596384f,0.0888389f},{-0.34986f,-0.0840145f,0.115946f}, -{-0.294567f,-0.0925742f,0.134374f},{-0.233834f,-0.0840145f,0.13864f},{-0.180142f,-0.0596384f,0.12824f}, -{-0.148514f,-0.0231572f,0.106138f},{-0.146522f,0.0198755f,0.07627f},{-0.171003f,0.0629081f,0.0431261f}, -{-0.213996f,0.0993894f,0.0113892f},{-0.269657f,0.123765f,-0.0148336f},{-0.346426f,0.106864f,-0.0853202f}, -{-0.418148f,0.0975991f,-0.0933364f},{-0.472597f,0.0712147f,-0.0826396f},{-0.495756f,0.0317277f,-0.0538754f}, -{-0.487934f,-0.0148505f,-0.0159838f},{-0.458964f,-0.0614287f,0.0220605f},{-0.417971f,-0.100916f,0.056811f}, -{-0.36836f,-0.1273f,0.0855621f},{-0.309844f,-0.136565f,0.102268f},{-0.245932f,-0.1273f,0.102289f}, -{-0.189196f,-0.100916f,0.0869168f},{-0.155469f,-0.0614287f,0.0609428f},{-0.152477f,-0.0148505f,0.0292381f}, -{-0.176282f,0.0317276f,-0.00420161f},{-0.21885f,0.0712148f,-0.0363203f},{-0.276383f,0.0975992f,-0.0644713f}, -{0.287056f,0.0758929f,0.110646f},{0.301988f,0.115564f,0.0728616f},{0.325153f,0.112018f,0.0708336f}, -{0.342261f,0.101921f,0.0739892f},{0.351035f,0.0868102f,0.0813745f},{0.350709f,0.0689855f,0.0915995f}, -{0.341765f,0.0511608f,0.10337f},{0.325429f,0.0360497f,0.115558f},{0.303445f,0.0259528f,0.126808f}, -{0.278313f,0.0224073f,0.135353f},{0.253592f,0.0259528f,0.139427f},{0.233614f,0.0360497f,0.137946f}, -{0.22236f,0.0511608f,0.130911f},{0.22208f,0.0689854f,0.119439f},{0.232625f,0.0868102f,0.105524f}, -{0.2518f,0.101921f,0.0916217f},{0.276219f,0.112018f,0.080118f},{0.317919f,0.13538f,0.0237192f}, -{0.36191f,0.128829f,0.0210766f},{0.394013f,0.110172f,0.0288914f},{0.409112f,0.0822505f,0.0448135f}, -{0.40697f,0.0493148f,0.0648619f},{0.390534f,0.016379f,0.08627f},{0.362855f,-0.0115425f,0.108162f}, -{0.325769f,-0.0301992f,0.128919f},{0.281276f,-0.0367505f,0.144595f},{0.234463f,-0.0301991f,0.151037f}, -{0.194554f,-0.0115425f,0.146466f},{0.171463f,0.016379f,0.131679f},{0.170486f,0.0493148f,0.109223f}, -{0.190285f,0.0822505f,0.082936f},{0.225447f,0.110172f,0.0573035f},{0.269985f,0.128829f,0.0364921f}, -{0.333196f,0.132325f,-0.0320871f},{0.394851f,0.123765f,-0.0366893f},{0.440427f,0.0993894f,-0.0258578f}, -{0.460181f,0.0629081f,-0.00177522f},{0.454693f,0.0198755f,0.0284132f},{0.431007f,-0.0231572f,0.0590285f}, -{0.395363f,-0.0596384f,0.0888389f},{0.34986f,-0.0840145f,0.115946f},{0.294567f,-0.0925742f,0.134374f}, -{0.233834f,-0.0840145f,0.13864f},{0.180142f,-0.0596384f,0.12824f},{0.148514f,-0.0231572f,0.106138f}, -{0.146523f,0.0198755f,0.07627f},{0.171003f,0.0629081f,0.0431261f},{0.213996f,0.0993894f,0.0113892f}, -{0.269657f,0.123765f,-0.0148336f},{0.346426f,0.106864f,-0.0853202f},{0.418148f,0.0975991f,-0.0933364f}, -{0.472597f,0.0712147f,-0.0826396f},{0.495756f,0.0317277f,-0.0538754f},{0.487934f,-0.0148505f,-0.0159838f}, -{0.458964f,-0.0614287f,0.0220605f},{0.417971f,-0.100916f,0.056811f},{0.36836f,-0.1273f,0.0855621f}, -{0.309845f,-0.136565f,0.102268f},{0.245932f,-0.1273f,0.102289f},{0.189196f,-0.100916f,0.0869168f}, -{0.155469f,-0.0614287f,0.0609428f},{0.152477f,-0.0148505f,0.0292381f},{0.176282f,0.0317276f,-0.00420161f}, -{0.21885f,0.0712148f,-0.0363203f},{0.276383f,0.0975992f,-0.0644713f} -}, - -//lid 5 -{ -{-0.35222f,0.0807632f,-0.116269f},{-0.355112f,0.0275006f,-0.141217f},{-0.383561f,0.0310274f,-0.145773f}, -{-0.407652f,0.0410709f,-0.144276f},{-0.422647f,0.056102f,-0.136598f},{-0.425567f,0.0738323f,-0.123872f}, -{-0.416122f,0.0915627f,-0.108372f},{-0.396538f,0.106594f,-0.092926f},{-0.370553f,0.116637f,-0.0801451f}, -{-0.342414f,0.120164f,-0.0718868f},{-0.316287f,0.116637f,-0.0691268f},{-0.295842f,0.106594f,-0.0720026f}, -{-0.283736f,0.0915627f,-0.0798502f},{-0.281224f,0.0738323f,-0.0913764f},{-0.288303f,0.0561019f,-0.104997f}, -{-0.304166f,0.0410709f,-0.119044f},{-0.327307f,0.0310274f,-0.131739f},{-0.351234f,-0.0315149f,-0.14288f}, -{-0.40356f,-0.0249982f,-0.149751f},{-0.448778f,-0.00644035f,-0.14589f},{-0.476382f,0.0213335f,-0.130823f}, -{-0.480046f,0.0540949f,-0.106621f},{-0.46045f,0.0868564f,-0.0780273f},{-0.423811f,0.11463f,-0.0509148f}, -{-0.377654f,0.133188f,-0.0298383f},{-0.328398f,0.139705f,-0.0169541f},{-0.282288f,0.133188f,-0.0132744f}, -{-0.246317f,0.11463f,-0.019573f},{-0.22617f,0.0868563f,-0.0350928f},{-0.223453f,0.0540949f,-0.0568338f}, -{-0.236342f,0.0213334f,-0.0812907f},{-0.262887f,-0.00644041f,-0.105693f},{-0.302078f,-0.0249983f,-0.127263f}, -{-0.34326f,-0.0872989f,-0.121779f},{-0.408985f,-0.0787845f,-0.126311f},{-0.465236f,-0.0545374f,-0.11824f}, -{-0.498151f,-0.0182492f,-0.0974167f},{-0.5f,0.0245557f,-0.0664839f},{-0.473501f,0.0673606f,-0.0315635f}, -{-0.428328f,0.103649f,-0.000164158f},{-0.373146f,0.127896f,0.0230542f},{-0.3129f,0.13641f,0.037678f}, -{-0.25362f,0.127896f,0.0431086f},{-0.206011f,0.103649f,0.0358444f},{-0.1805f,0.0673606f,0.0145129f}, -{-0.17957f,0.0245557f,-0.0160796f},{-0.198361f,-0.0182492f,-0.0492255f},{-0.232567f,-0.0545374f,-0.0804019f}, -{-0.281607f,-0.0787845f,-0.105784f},{-0.334569f,-0.131359f,-0.0809148f},{-0.40145f,-0.122143f,-0.0813779f}, -{-0.456808f,-0.0958979f,-0.069794f},{-0.487429f,-0.0566198f,-0.0471402f},{-0.486932f,-0.0102881f,-0.0163207f}, -{-0.459465f,0.0360436f,0.0170134f},{-0.414816f,0.0753217f,0.0462327f},{-0.359802f,0.101566f,0.0681354f}, -{-0.296993f,0.110782f,0.0839128f},{-0.232114f,0.101566f,0.0925683f},{-0.178659f,0.0753217f,0.0873822f}, -{-0.150754f,0.0360435f,0.0642135f},{-0.152175f,-0.0102882f,0.0287899f},{-0.176247f,-0.0566198f,-0.00911687f}, -{-0.216092f,-0.0958979f,-0.042849f},{-0.269784f,-0.122143f,-0.0678564f},{0.35222f,0.0807632f,-0.116269f}, -{0.355112f,0.0275006f,-0.141217f},{0.383561f,0.0310274f,-0.145773f},{0.407652f,0.0410709f,-0.144276f}, -{0.422647f,0.056102f,-0.136598f},{0.425567f,0.0738323f,-0.123872f},{0.416122f,0.0915627f,-0.108372f}, -{0.396538f,0.106594f,-0.092926f},{0.370553f,0.116637f,-0.0801451f},{0.342414f,0.120164f,-0.0718868f}, -{0.316287f,0.116637f,-0.0691268f},{0.295842f,0.106594f,-0.0720026f},{0.283736f,0.0915627f,-0.0798502f}, -{0.281224f,0.0738323f,-0.0913764f},{0.288303f,0.0561019f,-0.104997f},{0.304166f,0.0410709f,-0.119044f}, -{0.327307f,0.0310274f,-0.131739f},{0.351234f,-0.031515f,-0.14288f},{0.40356f,-0.0249982f,-0.149751f}, -{0.448778f,-0.00644035f,-0.14589f},{0.476382f,0.0213335f,-0.130823f},{0.480046f,0.0540949f,-0.106621f}, -{0.46045f,0.0868564f,-0.0780273f},{0.423811f,0.11463f,-0.0509149f},{0.377654f,0.133188f,-0.0298383f}, -{0.328398f,0.139705f,-0.0169541f},{0.282288f,0.133188f,-0.0132744f},{0.246317f,0.11463f,-0.019573f}, -{0.22617f,0.0868563f,-0.0350928f},{0.223453f,0.0540949f,-0.0568338f},{0.236342f,0.0213334f,-0.0812907f}, -{0.262887f,-0.00644041f,-0.105693f},{0.302078f,-0.0249983f,-0.127263f},{0.34326f,-0.0872989f,-0.121779f}, -{0.408985f,-0.0787845f,-0.126311f},{0.465236f,-0.0545374f,-0.11824f},{0.498151f,-0.0182492f,-0.0974167f}, -{0.5f,0.0245557f,-0.0664839f},{0.473501f,0.0673606f,-0.0315635f},{0.428328f,0.103649f,-0.00016416f}, -{0.373146f,0.127896f,0.0230542f},{0.3129f,0.13641f,0.037678f},{0.25362f,0.127896f,0.0431086f}, -{0.206011f,0.103649f,0.0358444f},{0.1805f,0.0673606f,0.0145129f},{0.17957f,0.0245557f,-0.0160796f}, -{0.198361f,-0.0182492f,-0.0492255f},{0.232567f,-0.0545375f,-0.0804019f},{0.281607f,-0.0787845f,-0.105784f}, -{0.334569f,-0.131359f,-0.0809148f},{0.40145f,-0.122143f,-0.0813779f},{0.456808f,-0.0958979f,-0.069794f}, -{0.487429f,-0.0566198f,-0.0471402f},{0.486932f,-0.0102881f,-0.0163207f},{0.459465f,0.0360436f,0.0170134f}, -{0.414816f,0.0753217f,0.0462327f},{0.359802f,0.101566f,0.0681354f},{0.296993f,0.110782f,0.0839128f}, -{0.232114f,0.101566f,0.0925683f},{0.178659f,0.0753217f,0.0873822f},{0.150754f,0.0360435f,0.0642135f}, -{0.152175f,-0.0102882f,0.0287899f},{0.176247f,-0.0566198f,-0.00911686f},{0.216092f,-0.0958979f,-0.042849f}, -{0.269784f,-0.122143f,-0.0678564f},{-0.283516f,0.0684505f,0.117249f},{-0.297523f,0.111982f,0.0825327f}, -{-0.320672f,0.108213f,0.0800315f},{-0.337917f,0.0974768f,0.0822191f},{-0.347078f,0.0814095f,0.0883145f}, -{-0.347375f,0.062457f,0.0972086f},{-0.33918f,0.0435043f,0.107872f},{-0.323569f,0.0274371f,0.119293f}, -{-0.302141f,0.0167013f,0.1301f},{-0.277259f,0.0129314f,0.138501f},{-0.252381f,0.0167013f,0.142792f}, -{-0.231847f,0.0274371f,0.14198f},{-0.219791f,0.0435043f,0.136064f},{-0.218713f,0.0624569f,0.125981f}, -{-0.228674f,0.0814096f,0.113434f},{-0.247538f,0.0974768f,0.100606f},{-0.271824f,0.108213f,0.0897131f}, -{-0.313436f,0.1369f,0.0359331f},{-0.35693f,0.129934f,0.0327261f},{-0.388907f,0.110097f,0.0387786f}, -{-0.404696f,0.0804084f,0.0519694f},{-0.403928f,0.0453886f,0.0691129f},{-0.389077f,0.0103687f,0.0882565f}, -{-0.36285f,-0.0193198f,0.108704f},{-0.326938f,-0.0391569f,0.12848f},{-0.28316f,-0.0461228f,0.14344f}, -{-0.236305f,-0.0391569f,0.149751f},{-0.195408f,-0.0193197f,0.146165f},{-0.170624f,0.0103687f,0.133635f}, -{-0.167907f,0.0453885f,0.114231f},{-0.18657f,0.0804084f,0.090957f},{-0.221347f,0.110097f,0.0676455f}, -{-0.265804f,0.129934f,0.0482343f},{-0.328906f,0.139409f,-0.0188677f},{-0.389563f,0.130308f,-0.0237764f}, -{-0.434822f,0.104389f,-0.0151712f},{-0.455683f,0.0655995f,0.00499309f},{-0.452287f,0.0198438f,0.0308808f}, -{-0.430691f,-0.0259118f,0.0581252f},{-0.396613f,-0.0647016f,0.085662f},{-0.352229f,-0.0906201f,0.111006f}, -{-0.29775f,-0.0997214f,0.128053f},{-0.237276f,-0.09062f,0.131966f},{-0.182806f,-0.0647016f,0.122977f}, -{-0.149318f,-0.0259118f,0.104165f},{-0.145113f,0.0198439f,0.0786865f},{-0.168025f,0.0655996f,0.0497981f}, -{-0.21047f,0.104389f,0.0213453f},{-0.265982f,0.130308f,-0.00271041f},{-0.342835f,0.119128f,-0.0736233f}, -{-0.413662f,0.109277f,-0.0818217f},{-0.468026f,0.0812232f,-0.0736504f},{-0.492562f,0.0392375f,-0.0493431f}, -{-0.486932f,-0.0102881f,-0.0163207f},{-0.459805f,-0.0598137f,0.0177488f},{-0.419752f,-0.101799f,0.0495111f}, -{-0.37045f,-0.129853f,0.0758506f},{-0.312195f,-0.139705f,0.0909771f},{-0.248628f,-0.129853f,0.091013f}, -{-0.191762f,-0.101799f,0.0777037f},{-0.156931f,-0.0598137f,0.0556475f},{-0.152175f,-0.0102881f,0.0287899f}, -{-0.174436f,0.0392374f,-0.000122022f},{-0.216246f,0.0812232f,-0.0287078f},{-0.273448f,0.109277f,-0.0542936f}, -{0.283516f,0.0684505f,0.117249f},{0.297523f,0.111982f,0.0825327f},{0.320672f,0.108213f,0.0800315f}, -{0.337917f,0.0974768f,0.0822191f},{0.347078f,0.0814095f,0.0883145f},{0.347375f,0.062457f,0.0972086f}, -{0.33918f,0.0435043f,0.107872f},{0.323569f,0.0274371f,0.119293f},{0.302141f,0.0167013f,0.1301f}, -{0.277259f,0.0129314f,0.138501f},{0.252381f,0.0167013f,0.142792f},{0.231847f,0.0274371f,0.14198f}, -{0.219791f,0.0435043f,0.136064f},{0.218713f,0.062457f,0.125981f},{0.228674f,0.0814096f,0.113434f}, -{0.247538f,0.0974768f,0.100606f},{0.271824f,0.108213f,0.0897131f},{0.313436f,0.1369f,0.0359331f}, -{0.35693f,0.129934f,0.0327261f},{0.388907f,0.110097f,0.0387786f},{0.404696f,0.0804084f,0.0519694f}, -{0.403928f,0.0453886f,0.0691129f},{0.389077f,0.0103687f,0.0882565f},{0.36285f,-0.0193197f,0.108704f}, -{0.326938f,-0.0391569f,0.12848f},{0.28316f,-0.0461228f,0.14344f},{0.236305f,-0.0391569f,0.149751f}, -{0.195408f,-0.0193197f,0.146165f},{0.170624f,0.0103687f,0.133635f},{0.167907f,0.0453885f,0.114231f}, -{0.18657f,0.0804084f,0.090957f},{0.221347f,0.110097f,0.0676455f},{0.265804f,0.129934f,0.0482343f}, -{0.328906f,0.139409f,-0.0188677f},{0.389563f,0.130308f,-0.0237764f},{0.434822f,0.104389f,-0.0151712f}, -{0.455683f,0.0655995f,0.00499309f},{0.452287f,0.0198438f,0.0308808f},{0.430691f,-0.0259118f,0.0581252f}, -{0.396613f,-0.0647016f,0.085662f},{0.352229f,-0.0906201f,0.111006f},{0.29775f,-0.0997214f,0.128053f}, -{0.237276f,-0.09062f,0.131966f},{0.182806f,-0.0647016f,0.122977f},{0.149318f,-0.0259118f,0.104165f}, -{0.145113f,0.0198439f,0.0786865f},{0.168025f,0.0655996f,0.0497981f},{0.21047f,0.104389f,0.0213453f}, -{0.265982f,0.130308f,-0.00271041f},{0.342835f,0.119128f,-0.0736233f},{0.413662f,0.109277f,-0.0818217f}, -{0.468026f,0.0812232f,-0.0736504f},{0.492562f,0.0392375f,-0.0493431f},{0.486932f,-0.0102881f,-0.0163207f}, -{0.459805f,-0.0598137f,0.0177488f},{0.419752f,-0.101799f,0.0495111f},{0.37045f,-0.129853f,0.0758506f}, -{0.312195f,-0.139705f,0.0909771f},{0.248628f,-0.129853f,0.091013f},{0.191762f,-0.101799f,0.0777037f}, -{0.156931f,-0.0598137f,0.0556475f},{0.152175f,-0.0102881f,0.0287899f},{0.174436f,0.0392374f,-0.000122023f}, -{0.216246f,0.0812232f,-0.0287078f},{0.273448f,0.109277f,-0.0542936f} -}, - -//lid 4 -{ -{-0.353855f,0.0634518f,-0.127808f},{-0.353743f,0.00680746f,-0.14288f},{-0.382005f,0.0107183f,-0.14774f}, -{-0.406503f,0.0218554f,-0.148074f},{-0.422603f,0.0385233f,-0.143562f},{-0.427103f,0.0581844f,-0.134712f}, -{-0.419209f,0.0778456f,-0.12295f},{-0.400665f,0.0945135f,-0.110367f},{-0.37505f,0.105651f,-0.0991699f}, -{-0.346773f,0.109561f,-0.0911444f},{-0.32025f,0.105651f,-0.0873742f},{-0.299264f,0.0945134f,-0.088188f}, -{-0.286447f,0.0778455f,-0.0932286f},{-0.283047f,0.0581844f,-0.101633f},{-0.28916f,0.0385233f,-0.112242f}, -{-0.304115f,0.0218554f,-0.123685f},{-0.32649f,0.0107183f,-0.134417f},{-0.347829f,-0.051748f,-0.134586f}, -{-0.39918f,-0.0445217f,-0.141112f},{-0.444479f,-0.023943f,-0.140152f},{-0.474048f,0.00685527f,-0.131052f}, -{-0.481203f,0.0431843f,-0.114419f},{-0.465041f,0.0795133f,-0.0929282f},{-0.430264f,0.110311f,-0.0708482f}, -{-0.384188f,0.13089f,-0.0522717f},{-0.334187f,0.138117f,-0.0397563f},{-0.287418f,0.13089f,-0.0346676f}, -{-0.250883f,0.110312f,-0.0377287f},{-0.229717f,0.0795133f,-0.0483917f},{-0.225358f,0.0431842f,-0.0646188f}, -{-0.236481f,0.00685524f,-0.0839373f},{-0.261654f,-0.023943f,-0.103878f},{-0.299784f,-0.0445217f,-0.121626f}, -{-0.339278f,-0.1033f,-0.104625f},{-0.40326f,-0.0938584f,-0.108657f},{-0.458827f,-0.066971f,-0.104285f}, -{-0.493724f,-0.0267311f,-0.0911008f},{-0.5f,0.020735f,-0.0697199f},{-0.47804f,0.0682011f,-0.0435093f}, -{-0.435242f,0.108441f,-0.0180731f},{-0.380135f,0.135328f,0.00212642f},{-0.319193f,0.14477f,0.0158355f}, -{-0.259542f,0.135328f,0.0221782f},{-0.211448f,0.108441f,0.0183685f},{-0.184369f,0.0682011f,0.0031685f}, -{-0.180904f,0.0207349f,-0.0201245f},{-0.197459f,-0.0267312f,-0.0464986f},{-0.230533f,-0.066971f,-0.0718127f}, -{-0.278897f,-0.0938584f,-0.0921433f},{-0.331281f,-0.14f,-0.0568862f},{-0.396099f,-0.129781f,-0.0579084f}, -{-0.450089f,-0.100678f,-0.050944f},{-0.481864f,-0.0571228f,-0.0363563f},{-0.48513f,-0.00574581f,-0.0149238f}, -{-0.461947f,0.0456311f,0.0101581f},{-0.419991f,0.0891865f,0.0335696f},{-0.365921f,0.118289f,0.0519629f}, -{-0.303382f,0.128509f,0.0659771f},{-0.238494f,0.118289f,0.0750094f},{-0.184008f,0.0891864f,0.0734764f}, -{-0.153528f,0.0456311f,0.0572033f},{-0.151825f,-0.00574587f,0.0300291f},{-0.174023f,-0.0571228f,-9.32868e-005f}, -{-0.213722f,-0.100678f,-0.027056f},{-0.267552f,-0.129781f,-0.0467337f},{0.353855f,0.0634518f,-0.127808f}, -{0.353743f,0.00680746f,-0.14288f},{0.382005f,0.0107183f,-0.14774f},{0.406503f,0.0218554f,-0.148074f}, -{0.422603f,0.0385233f,-0.143562f},{0.427103f,0.0581844f,-0.134712f},{0.419209f,0.0778455f,-0.12295f}, -{0.400665f,0.0945135f,-0.110367f},{0.37505f,0.105651f,-0.0991699f},{0.346773f,0.109561f,-0.0911444f}, -{0.32025f,0.105651f,-0.0873742f},{0.299264f,0.0945134f,-0.0881879f},{0.286447f,0.0778455f,-0.0932286f}, -{0.283047f,0.0581844f,-0.101633f},{0.28916f,0.0385233f,-0.112242f},{0.304115f,0.0218554f,-0.123685f}, -{0.32649f,0.0107183f,-0.134417f},{0.347829f,-0.051748f,-0.134586f},{0.39918f,-0.0445217f,-0.141112f}, -{0.444479f,-0.023943f,-0.140152f},{0.474048f,0.00685527f,-0.131052f},{0.481203f,0.0431843f,-0.114419f}, -{0.465041f,0.0795133f,-0.0929282f},{0.430264f,0.110311f,-0.0708482f},{0.384188f,0.13089f,-0.0522717f}, -{0.334187f,0.138117f,-0.0397563f},{0.287418f,0.13089f,-0.0346676f},{0.250883f,0.110312f,-0.0377287f}, -{0.229717f,0.0795133f,-0.0483917f},{0.225358f,0.0431842f,-0.0646188f},{0.236481f,0.00685524f,-0.0839372f}, -{0.261654f,-0.023943f,-0.103878f},{0.299784f,-0.0445217f,-0.121626f},{0.339278f,-0.1033f,-0.104625f}, -{0.40326f,-0.0938584f,-0.108657f},{0.458827f,-0.066971f,-0.104285f},{0.493724f,-0.0267311f,-0.0911008f}, -{0.5f,0.020735f,-0.0697199f},{0.47804f,0.068201f,-0.0435093f},{0.435242f,0.108441f,-0.0180731f}, -{0.380135f,0.135328f,0.00212642f},{0.319193f,0.14477f,0.0158355f},{0.259542f,0.135328f,0.0221782f}, -{0.211448f,0.108441f,0.0183685f},{0.184369f,0.0682011f,0.0031685f},{0.180904f,0.0207349f,-0.0201245f}, -{0.197459f,-0.0267312f,-0.0464986f},{0.230533f,-0.066971f,-0.0718127f},{0.278897f,-0.0938584f,-0.0921433f}, -{0.331281f,-0.14f,-0.0568862f},{0.396099f,-0.129781f,-0.0579084f},{0.450089f,-0.100678f,-0.050944f}, -{0.481864f,-0.0571228f,-0.0363563f},{0.48513f,-0.00574581f,-0.0149238f},{0.461947f,0.0456311f,0.0101581f}, -{0.419991f,0.0891864f,0.0335696f},{0.365921f,0.118289f,0.0519629f},{0.303382f,0.128509f,0.0659771f}, -{0.238494f,0.118289f,0.0750095f},{0.184008f,0.0891864f,0.0734764f},{0.153528f,0.0456311f,0.0572033f}, -{0.151825f,-0.00574587f,0.0300291f},{0.174023f,-0.0571228f,-9.32874e-005f},{0.213722f,-0.100678f,-0.027056f}, -{0.267552f,-0.129781f,-0.0467337f},{-0.279283f,0.0520408f,0.127571f},{-0.291091f,0.101044f,0.0980386f}, -{-0.314344f,0.0969793f,0.0946093f},{-0.331977f,0.0854032f,0.0951078f},{-0.341951f,0.0680782f,0.0990535f}, -{-0.343465f,0.0476421f,0.105775f},{-0.336696f,0.027206f,0.11463f},{-0.322456f,0.00988106f,0.12477f}, -{-0.302072f,-0.0016951f,0.134807f},{-0.277652f,-0.00576013f,0.142958f},{-0.252472f,-0.00169512f,0.147658f}, -{-0.230868f,0.00988104f,0.148074f},{-0.217233f,0.0272059f,0.144161f},{-0.214527f,0.0476421f,0.136514f}, -{-0.223242f,0.0680783f,0.126309f},{-0.241414f,0.0854032f,0.115241f},{-0.265439f,0.0969793f,0.10525f}, -{-0.306765f,0.13379f,0.0561555f},{-0.349583f,0.126279f,0.0517622f},{-0.381449f,0.104889f,0.0547534f}, -{-0.398489f,0.0728766f,0.0633834f},{-0.400159f,0.0351155f,0.0757282f},{-0.388138f,-0.00264553f,0.0910661f}, -{-0.364489f,-0.0346578f,0.108922f},{-0.330591f,-0.0560477f,0.126846f},{-0.287987f,-0.0635589f,0.140574f}, -{-0.241024f,-0.0560477f,0.146878f},{-0.198397f,-0.0346578f,0.145269f},{-0.17056f,-0.00264554f,0.136838f}, -{-0.164573f,0.0351155f,0.122803f},{-0.18101f,0.0728766f,0.104726f},{-0.215025f,0.104889f,0.0852658f}, -{-0.259448f,0.126279f,0.067972f},{-0.322458f,0.145293f,0.00425289f},{-0.381335f,0.135479f,-0.00130134f}, -{-0.4259f,0.107531f,0.00352389f},{-0.448605f,0.0657054f,0.0170174f},{-0.448895f,0.0163682f,0.0354859f}, -{-0.431053f,-0.0329691f,0.0567292f},{-0.399729f,-0.0747951f,0.0799807f},{-0.35711f,-0.102742f,0.102015f}, -{-0.303763f,-0.112556f,0.116832f},{-0.243626f,-0.102742f,0.120643f},{-0.18791f,-0.0747951f,0.114571f}, -{-0.151294f,-0.032969f,0.101662f},{-0.143201f,0.0163682f,0.0838106f},{-0.163332f,0.0657054f,0.0622674f}, -{-0.204947f,0.107531f,0.0393893f},{-0.260449f,0.135479f,0.018813f},{-0.337146f,0.133801f,-0.0513591f}, -{-0.405991f,0.123178f,-0.0596923f},{-0.459809f,0.0929286f,-0.0556713f},{-0.486676f,0.0476564f,-0.039131f}, -{-0.48513f,-0.00574584f,-0.0149238f},{-0.461581f,-0.0591481f,0.0117126f},{-0.423384f,-0.10442f,0.0378093f}, -{-0.374549f,-0.13467f,0.059798f},{-0.316475f,-0.145293f,0.072463f},{-0.253313f,-0.13467f,0.0730645f}, -{-0.196251f,-0.10442f,0.0637669f},{-0.159614f,-0.059148f,0.0486072f},{-0.151825f,-0.00574584f,0.0300291f}, -{-0.171463f,0.0476564f,0.00889002f},{-0.212175f,0.0929286f,-0.0135302f},{-0.269009f,0.123178f,-0.0346653f}, -{0.279283f,0.0520408f,0.127571f},{0.291091f,0.101044f,0.0980386f},{0.314344f,0.0969793f,0.0946093f}, -{0.331977f,0.0854032f,0.0951078f},{0.341951f,0.0680782f,0.0990535f},{0.343465f,0.0476421f,0.105775f}, -{0.336696f,0.027206f,0.11463f},{0.322456f,0.00988106f,0.12477f},{0.302072f,-0.0016951f,0.134807f}, -{0.277652f,-0.00576013f,0.142958f},{0.252472f,-0.00169512f,0.147658f},{0.230868f,0.00988104f,0.148074f}, -{0.217233f,0.0272059f,0.144161f},{0.214527f,0.0476421f,0.136514f},{0.223242f,0.0680782f,0.126309f}, -{0.241414f,0.0854032f,0.115241f},{0.265439f,0.0969793f,0.10525f},{0.306765f,0.13379f,0.0561555f}, -{0.349583f,0.126279f,0.0517622f},{0.381449f,0.104889f,0.0547534f},{0.398489f,0.0728766f,0.0633834f}, -{0.400159f,0.0351155f,0.0757282f},{0.388138f,-0.00264554f,0.0910661f},{0.364489f,-0.0346578f,0.108922f}, -{0.330591f,-0.0560477f,0.126846f},{0.287987f,-0.0635589f,0.140574f},{0.241024f,-0.0560477f,0.146878f}, -{0.198397f,-0.0346578f,0.145269f},{0.17056f,-0.00264554f,0.136838f},{0.164573f,0.0351155f,0.122803f}, -{0.18101f,0.0728766f,0.104726f},{0.215025f,0.104889f,0.0852658f},{0.259448f,0.126279f,0.067972f}, -{0.322458f,0.145293f,0.00425289f},{0.381335f,0.135479f,-0.00130134f},{0.4259f,0.107531f,0.00352389f}, -{0.448605f,0.0657054f,0.0170174f},{0.448896f,0.0163682f,0.0354859f},{0.431053f,-0.0329691f,0.0567292f}, -{0.399729f,-0.0747951f,0.0799807f},{0.35711f,-0.102742f,0.102015f},{0.303763f,-0.112556f,0.116832f}, -{0.243626f,-0.102742f,0.120643f},{0.187909f,-0.0747951f,0.114571f},{0.151294f,-0.032969f,0.101662f}, -{0.143201f,0.0163682f,0.0838106f},{0.163332f,0.0657054f,0.0622674f},{0.204947f,0.107531f,0.0393893f}, -{0.260449f,0.135479f,0.018813f},{0.337146f,0.133801f,-0.0513591f},{0.405991f,0.123178f,-0.0596923f}, -{0.459809f,0.0929286f,-0.0556713f},{0.486676f,0.0476564f,-0.039131f},{0.48513f,-0.00574584f,-0.0149238f}, -{0.461581f,-0.0591481f,0.0117126f},{0.423385f,-0.10442f,0.0378093f},{0.374549f,-0.13467f,0.059798f}, -{0.316475f,-0.145293f,0.072463f},{0.253313f,-0.13467f,0.0730645f},{0.196251f,-0.10442f,0.0637669f}, -{0.159614f,-0.059148f,0.0486072f},{0.151825f,-0.00574584f,0.0300291f},{0.171463f,0.0476564f,0.00889002f}, -{0.212175f,0.0929286f,-0.0135302f},{0.269009f,0.123178f,-0.0346653f} -}, - -//lid3 -{ -{-0.354934f,0.0573656f,-0.132288f},{-0.35381f,-0.000170749f,-0.143506f},{-0.381882f,0.0038597f,-0.148337f}, -{-0.406389f,0.0153374f,-0.149276f},{-0.422778f,0.032515f,-0.145954f},{-0.427813f,0.0527773f,-0.138659f}, -{-0.420534f,0.0730396f,-0.128481f},{-0.402489f,0.0902173f,-0.117185f},{-0.377147f,0.101695f,-0.106769f}, -{-0.348936f,0.105725f,-0.098952f},{-0.322337f,0.101695f,-0.0948513f},{-0.301181f,0.0902172f,-0.0948892f}, -{-0.288106f,0.0730396f,-0.0988492f},{-0.28438f,0.0527773f,-0.106035f},{-0.290143f,0.032515f,-0.11543f}, -{-0.304767f,0.0153374f,-0.125765f},{-0.326835f,0.00385966f,-0.135594f},{-0.34734f,-0.0581242f,-0.131498f}, -{-0.398136f,-0.0506769f,-0.137744f},{-0.443184f,-0.0294689f,-0.13778f},{-0.473215f,0.00227113f,-0.130937f}, -{-0.481555f,0.039711f,-0.117333f},{-0.466781f,0.077151f,-0.0988643f},{-0.432955f,0.108891f,-0.0790885f}, -{-0.387165f,0.130099f,-0.0617732f},{-0.337041f,0.137546f,-0.0495308f},{-0.290066f,0.130099f,-0.0438717f}, -{-0.253281f,0.108891f,-0.0455929f},{-0.231674f,0.0771509f,-0.0543229f},{-0.226688f,0.039711f,-0.0683984f}, -{-0.237222f,0.00227109f,-0.0856564f},{-0.26199f,-0.0294689f,-0.103695f},{-0.299775f,-0.0506769f,-0.119748f}, -{-0.338795f,-0.107672f,-0.0983158f},{-0.401925f,-0.0979416f,-0.102189f},{-0.456905f,-0.070232f,-0.0992443f}, -{-0.492207f,-0.0287616f,-0.0890065f},{-0.5f,0.020156f,-0.0714432f},{-0.479892f,0.0690737f,-0.0489261f}, -{-0.438293f,0.110544f,-0.0262122f},{-0.383453f,0.138254f,-0.00747452f},{-0.322322f,0.147984f,0.00582876f}, -{-0.262487f,0.138254f,0.0126678f},{-0.214117f,0.110544f,0.0103978f},{-0.186347f,0.0690736f,-0.00228616f}, -{-0.181908f,0.020156f,-0.0226702f},{-0.197763f,-0.0287616f,-0.0462757f},{-0.230646f,-0.070232f,-0.0690678f}, -{-0.278912f,-0.0979416f,-0.0872364f},{-0.331209f,-0.141271f,-0.0482373f},{-0.395084f,-0.130739f,-0.0496675f}, -{-0.44825f,-0.100746f,-0.0446528f},{-0.480164f,-0.0558588f,-0.0332809f},{-0.484745f,-0.00291071f,-0.0156133f}, -{-0.463326f,0.0500373f,0.00600839f},{-0.422637f,0.0949245f,0.0268506f},{-0.369065f,0.124917f,0.0437058f}, -{-0.30661f,0.135449f,0.0570844f},{-0.241634f,0.124917f,0.0664523f},{-0.186655f,0.0949245f,0.0665538f}, -{-0.155078f,0.0500372f,0.053143f},{-0.152135f,-0.00291078f,0.0293266f},{-0.173756f,-0.0558588f,0.00241507f}, -{-0.213691f,-0.100746f,-0.0216839f},{-0.267826f,-0.130739f,-0.0391481f},{0.354934f,0.0573656f,-0.132288f}, -{0.35381f,-0.000170749f,-0.143506f},{0.381882f,0.00385971f,-0.148337f},{0.406389f,0.0153374f,-0.149276f}, -{0.422778f,0.032515f,-0.145954f},{0.427813f,0.0527773f,-0.138659f},{0.420534f,0.0730396f,-0.128481f}, -{0.402489f,0.0902173f,-0.117185f},{0.377147f,0.101695f,-0.106769f},{0.348936f,0.105725f,-0.098952f}, -{0.322337f,0.101695f,-0.0948513f},{0.30118f,0.0902172f,-0.0948892f},{0.288106f,0.0730396f,-0.0988492f}, -{0.28438f,0.0527773f,-0.106035f},{0.290143f,0.032515f,-0.11543f},{0.304766f,0.0153374f,-0.125765f}, -{0.326835f,0.00385966f,-0.135594f},{0.34734f,-0.0581242f,-0.131498f},{0.398136f,-0.0506769f,-0.137744f}, -{0.443184f,-0.0294689f,-0.13778f},{0.473215f,0.00227113f,-0.130937f},{0.481555f,0.039711f,-0.117333f}, -{0.466781f,0.077151f,-0.0988643f},{0.432955f,0.108891f,-0.0790885f},{0.387165f,0.130099f,-0.0617732f}, -{0.337041f,0.137546f,-0.0495308f},{0.290066f,0.130099f,-0.0438717f},{0.253281f,0.108891f,-0.0455929f}, -{0.231674f,0.0771509f,-0.0543229f},{0.226688f,0.039711f,-0.0683984f},{0.237222f,0.00227109f,-0.0856564f}, -{0.26199f,-0.0294689f,-0.103695f},{0.299775f,-0.0506769f,-0.119748f},{0.338795f,-0.107672f,-0.0983158f}, -{0.401925f,-0.0979416f,-0.102189f},{0.456905f,-0.070232f,-0.0992443f},{0.492207f,-0.0287616f,-0.0890065f}, -{0.5f,0.020156f,-0.0714432f},{0.479892f,0.0690737f,-0.0489261f},{0.438293f,0.110544f,-0.0262122f}, -{0.383453f,0.138254f,-0.00747452f},{0.322321f,0.147984f,0.00582876f},{0.262487f,0.138254f,0.0126678f}, -{0.214117f,0.110544f,0.0103978f},{0.186347f,0.0690736f,-0.00228616f},{0.181908f,0.020156f,-0.0226702f}, -{0.197763f,-0.0287616f,-0.0462757f},{0.230646f,-0.070232f,-0.0690678f},{0.278912f,-0.0979416f,-0.0872364f}, -{0.331209f,-0.141271f,-0.0482373f},{0.395083f,-0.130739f,-0.0496675f},{0.44825f,-0.100746f,-0.0446528f}, -{0.480164f,-0.0558588f,-0.0332809f},{0.484745f,-0.00291071f,-0.0156133f},{0.463326f,0.0500373f,0.00600839f}, -{0.422637f,0.0949245f,0.0268506f},{0.369065f,0.124917f,0.0437058f},{0.30661f,0.135449f,0.0570844f}, -{0.241634f,0.124917f,0.0664523f},{0.186655f,0.0949245f,0.0665538f},{0.155078f,0.0500372f,0.053143f}, -{0.152135f,-0.00291078f,0.0293266f},{0.173756f,-0.0558588f,0.00241507f},{0.213691f,-0.100746f,-0.0216839f}, -{0.267826f,-0.130739f,-0.0391481f},{-0.277987f,0.0386883f,0.132131f},{-0.287513f,0.0910388f,0.106426f}, -{-0.310982f,0.0868129f,0.102243f},{-0.32908f,0.0747783f,0.101479f},{-0.339832f,0.0567673f,0.103884f}, -{-0.342399f,0.0355218f,0.10907f},{-0.336808f,0.0142763f,0.116615f},{-0.323672f,-0.00373473f,0.125754f}, -{-0.304119f,-0.0157693f,0.135112f},{-0.280073f,-0.0199953f,0.142976f},{-0.254669f,-0.0157693f,0.147932f}, -{-0.232214f,-0.00373472f,0.149276f},{-0.217264f,0.0142763f,0.146921f},{-0.21312f,0.0355218f,0.141185f}, -{-0.22065f,0.0567673f,0.13281f},{-0.238105f,0.0747783f,0.123086f},{-0.261851f,0.0868129f,0.113735f}, -{-0.302723f,0.129086f,0.0681242f},{-0.345325f,0.121278f,0.0626405f},{-0.37736f,0.0990408f,0.0633087f}, -{-0.395498f,0.0657608f,0.068684f},{-0.399073f,0.0265043f,0.0776627f},{-0.389194f,-0.0127523f,0.0902372f}, -{-0.367429f,-0.0460323f,0.105995f},{-0.33493f,-0.0682694f,0.122262f},{-0.293123f,-0.076078f,0.134908f}, -{-0.246114f,-0.0682694f,0.141237f},{-0.202283f,-0.0460323f,0.141245f},{-0.172133f,-0.0127523f,0.136049f}, -{-0.163456f,0.0265042f,0.126224f},{-0.177871f,0.0657607f,0.11221f},{-0.21106f,0.0990408f,0.0956785f}, -{-0.255442f,0.121278f,0.0798278f},{-0.318575f,0.147039f,0.018955f},{-0.376353f,0.136836f,0.0126824f}, -{-0.420545f,0.107782f,0.0146494f},{-0.444704f,0.0642997f,0.0232859f},{-0.447788f,0.0130085f,0.036352f}, -{-0.432737f,-0.0382826f,0.0530567f},{-0.403325f,-0.0817651f,0.0727878f},{-0.361725f,-0.110819f,0.0920003f}, -{-0.308949f,-0.121022f,0.105077f},{-0.249036f,-0.110819f,0.109041f},{-0.192594f,-0.0817651f,0.105453f}, -{-0.153797f,-0.0382826f,0.0971894f},{-0.142695f,0.0130085f,0.0852546f},{-0.160501f,0.0642996f,0.0694309f}, -{-0.201377f,0.107782f,0.0508067f},{-0.256994f,0.136836f,0.0326489f},{-0.333621f,0.142162f,-0.0362204f}, -{-0.400982f,0.131119f,-0.0447669f},{-0.454372f,0.0996714f,-0.0438248f},{-0.483064f,0.0526063f,-0.0330922f}, -{-0.484745f,-0.00291076f,-0.0156133f},{-0.464001f,-0.0584278f,0.00516931f},{-0.42714f,-0.105493f,0.0266546f}, -{-0.378398f,-0.136941f,0.0451392f},{-0.320159f,-0.147984f,0.0560012f},{-0.257181f,-0.136941f,0.0573072f}, -{-0.200088f,-0.105493f,0.0513338f},{-0.162235f,-0.0584278f,0.0415487f},{-0.152135f,-0.00291073f,0.0293265f}, -{-0.169683f,0.0526063f,0.0142241f},{-0.209585f,0.0996715f,-0.00340899f},{-0.266299f,0.131119f,-0.0212809f}, -{0.277987f,0.0386883f,0.132131f},{0.287513f,0.0910388f,0.106426f},{0.310982f,0.0868129f,0.102243f}, -{0.32908f,0.0747783f,0.101479f},{0.339832f,0.0567673f,0.103884f},{0.342399f,0.0355218f,0.10907f}, -{0.336808f,0.0142763f,0.116615f},{0.323672f,-0.00373473f,0.125754f},{0.304119f,-0.0157693f,0.135112f}, -{0.280073f,-0.0199953f,0.142976f},{0.254669f,-0.0157693f,0.147932f},{0.232214f,-0.00373472f,0.149276f}, -{0.217264f,0.0142763f,0.146921f},{0.21312f,0.0355218f,0.141185f},{0.22065f,0.0567673f,0.13281f}, -{0.238105f,0.0747783f,0.123086f},{0.261851f,0.0868129f,0.113735f},{0.302723f,0.129086f,0.0681242f}, -{0.345325f,0.121278f,0.0626405f},{0.37736f,0.0990408f,0.0633087f},{0.395498f,0.0657608f,0.068684f}, -{0.399073f,0.0265043f,0.0776627f},{0.389194f,-0.0127523f,0.0902372f},{0.367429f,-0.0460323f,0.105995f}, -{0.33493f,-0.0682694f,0.122262f},{0.293123f,-0.076078f,0.134908f},{0.246114f,-0.0682694f,0.141237f}, -{0.202283f,-0.0460323f,0.141246f},{0.172133f,-0.0127523f,0.136049f},{0.163456f,0.0265042f,0.126224f}, -{0.177871f,0.0657607f,0.11221f},{0.21106f,0.0990408f,0.0956785f},{0.255442f,0.121278f,0.0798278f}, -{0.318575f,0.147039f,0.018955f},{0.376353f,0.136836f,0.0126824f},{0.420545f,0.107782f,0.0146494f}, -{0.444704f,0.0642997f,0.0232859f},{0.447787f,0.0130085f,0.036352f},{0.432737f,-0.0382826f,0.0530567f}, -{0.403325f,-0.0817651f,0.0727878f},{0.361725f,-0.110819f,0.0920003f},{0.308949f,-0.121022f,0.105077f}, -{0.249036f,-0.110819f,0.109041f},{0.192594f,-0.0817651f,0.105453f},{0.153797f,-0.0382825f,0.0971894f}, -{0.142695f,0.0130085f,0.0852546f},{0.160501f,0.0642996f,0.0694309f},{0.201377f,0.107782f,0.0508067f}, -{0.256994f,0.136836f,0.0326489f},{0.333621f,0.142162f,-0.0362204f},{0.400982f,0.131119f,-0.0447669f}, -{0.454372f,0.0996714f,-0.0438248f},{0.483064f,0.0526063f,-0.0330922f},{0.484745f,-0.00291076f,-0.0156133f}, -{0.464001f,-0.0584278f,0.00516931f},{0.42714f,-0.105493f,0.0266546f},{0.378398f,-0.136941f,0.0451392f}, -{0.320159f,-0.147984f,0.0560012f},{0.257181f,-0.136941f,0.0573072f},{0.200088f,-0.105493f,0.0513338f}, -{0.162235f,-0.0584278f,0.0415487f},{0.152135f,-0.00291073f,0.0293265f},{0.169683f,0.0526063f,0.0142241f}, -{0.209585f,0.0996715f,-0.00340899f},{0.266299f,0.131119f,-0.0212809f} -}, - -//lid2 -{ -{-0.35492f,0.0490122f,-0.136664f},{-0.352441f,-0.00933507f,-0.143152f},{-0.38041f,-0.00517772f,-0.148025f}, -{-0.405069f,0.00666169f,-0.149782f},{-0.421938f,0.0243805f,-0.147992f},{-0.427713f,0.0452814f,-0.142654f}, -{-0.421216f,0.0661823f,-0.134438f},{-0.403749f,0.0839011f,-0.124699f},{-0.378666f,0.0957405f,-0.115177f}, -{-0.35044f,0.0998979f,-0.107521f},{-0.323665f,0.0957405f,-0.102911f},{-0.302226f,0.0839011f,-0.101906f}, -{-0.288762f,0.0661823f,-0.104479f},{-0.284557f,0.0452814f,-0.110146f},{-0.289822f,0.0243805f,-0.118063f}, -{-0.304004f,0.00666169f,-0.127075f},{-0.32572f,-0.00517772f,-0.13585f},{-0.345275f,-0.0662611f,-0.126649f}, -{-0.395652f,-0.0585793f,-0.132679f},{-0.44069f,-0.0367029f,-0.13407f},{-0.471557f,-0.00396281f,-0.130108f}, -{-0.481531f,0.0346569f,-0.12031f},{-0.468499f,0.0732766f,-0.105598f},{-0.435716f,0.106017f,-0.0886244f}, -{-0.390041f,0.127893f,-0.0727466f},{-0.339539f,0.135575f,-0.0606899f},{-0.292198f,0.127893f,-0.0541963f}, -{-0.255096f,0.106017f,-0.0541648f},{-0.232923f,0.0732764f,-0.0604336f},{-0.22704f,0.0346569f,-0.0718106f}, -{-0.236654f,-0.00396281f,-0.0865268f},{-0.26078f,-0.0367029f,-0.102256f},{-0.298141f,-0.0585793f,-0.116287f}, -{-0.336804f,-0.1131f,-0.0896059f},{-0.399229f,-0.103063f,-0.0934247f},{-0.453895f,-0.0744799f,-0.0923695f}, -{-0.490081f,-0.0317029f,-0.0858416f},{-0.5f,0.0187562f,-0.0730349f},{-0.482199f,0.0692151f,-0.0551062f}, -{-0.441819f,0.111992f,-0.0357056f},{-0.386863f,0.140575f,-0.0186269f},{-0.32513f,0.150612f,-0.00569723f}, -{-0.265008f,0.140575f,0.00175248f},{-0.216493f,0.111992f,0.00131805f},{-0.188031f,0.0692151f,-0.0082449f}, -{-0.182283f,0.018756f,-0.0249265f},{-0.196942f,-0.0317029f,-0.045005f},{-0.229284f,-0.0744799f,-0.0646411f}, -{-0.277356f,-0.103063f,-0.080166f},{-0.329818f,-0.14272f,-0.0368107f},{-0.392866f,-0.131856f,-0.0388037f}, -{-0.445457f,-0.100918f,-0.0362398f},{-0.477976f,-0.0546165f,-0.0288117f},{-0.484459f,0.0f,-0.0157477f}, -{-0.465204f,0.0546165f,0.00161825f},{-0.425725f,0.100918f,0.0193463f},{-0.372221f,0.131856f,0.034428f}, -{-0.309484f,0.14272f,0.0470423f},{-0.244464f,0.131856f,0.0565813f},{-0.189292f,0.100918f,0.0583469f}, -{-0.156703f,0.0546165f,0.048326f},{-0.152152f,0.0f,0.0288029f},{-0.172617f,-0.0546165f,0.00608634f}, -{-0.212389f,-0.100918f,-0.0143389f},{-0.266725f,-0.131856f,-0.0290232f},{0.35492f,0.0490122f,-0.136664f}, -{0.352441f,-0.00933507f,-0.143152f},{0.38041f,-0.00517772f,-0.148025f},{0.405069f,0.00666169f,-0.149782f}, -{0.421938f,0.0243805f,-0.147992f},{0.427713f,0.0452814f,-0.142654f},{0.421216f,0.0661823f,-0.134438f}, -{0.403749f,0.0839011f,-0.124699f},{0.378666f,0.0957405f,-0.115177f},{0.35044f,0.0998979f,-0.107521f}, -{0.323665f,0.0957405f,-0.102911f},{0.302226f,0.0839011f,-0.101906f},{0.288762f,0.0661823f,-0.104479f}, -{0.284557f,0.0452814f,-0.110146f},{0.289822f,0.0243805f,-0.118063f},{0.304004f,0.00666169f,-0.127075f}, -{0.32572f,-0.00517772f,-0.13585f},{0.345275f,-0.0662611f,-0.126649f},{0.395652f,-0.0585793f,-0.132679f}, -{0.44069f,-0.0367029f,-0.13407f},{0.471557f,-0.00396281f,-0.130108f},{0.481531f,0.0346569f,-0.12031f}, -{0.468499f,0.0732766f,-0.105598f},{0.435716f,0.106017f,-0.0886244f},{0.390041f,0.127893f,-0.0727466f}, -{0.339539f,0.135575f,-0.0606899f},{0.292198f,0.127893f,-0.0541963f},{0.255096f,0.106017f,-0.0541648f}, -{0.232923f,0.0732764f,-0.0604336f},{0.22704f,0.0346569f,-0.0718106f},{0.236655f,-0.00396281f,-0.0865268f}, -{0.26078f,-0.0367029f,-0.102256f},{0.298142f,-0.0585793f,-0.116287f},{0.336804f,-0.1131f,-0.0896059f}, -{0.399229f,-0.103063f,-0.0934246f},{0.453895f,-0.0744799f,-0.0923695f},{0.490081f,-0.0317029f,-0.0858416f}, -{0.5f,0.0187562f,-0.0730349f},{0.482199f,0.0692151f,-0.0551062f},{0.441819f,0.111992f,-0.0357056f}, -{0.386863f,0.140575f,-0.018627f},{0.32513f,0.150612f,-0.00569723f},{0.265008f,0.140575f,0.00175248f}, -{0.216493f,0.111992f,0.00131805f},{0.188031f,0.0692151f,-0.0082449f},{0.182283f,0.018756f,-0.0249265f}, -{0.196942f,-0.0317029f,-0.045005f},{0.229284f,-0.0744799f,-0.0646411f},{0.277356f,-0.103063f,-0.0801659f}, -{0.329818f,-0.14272f,-0.0368107f},{0.392866f,-0.131856f,-0.0388037f},{0.445457f,-0.100918f,-0.0362398f}, -{0.477976f,-0.0546165f,-0.0288117f},{0.484459f,0.0f,-0.0157477f},{0.465204f,0.0546165f,0.00161825f}, -{0.425725f,0.100918f,0.0193463f},{0.372221f,0.131856f,0.034428f},{0.309485f,0.14272f,0.0470423f}, -{0.244464f,0.131856f,0.0565813f},{0.189292f,0.100918f,0.0583469f},{0.156704f,0.0546165f,0.048326f}, -{0.152152f,0.0f,0.0288029f},{0.172617f,-0.0546165f,0.00608634f},{0.212389f,-0.100918f,-0.0143389f}, -{0.266725f,-0.131856f,-0.0290232f},{-0.277716f,0.00836844f,0.14043f},{-0.280742f,0.0653898f,0.122636f}, -{-0.304826f,0.0610009f,0.117201f},{-0.324257f,0.0485021f,0.114166f},{-0.336986f,0.0297963f,0.11374f}, -{-0.341972f,0.00773147f,0.11596f},{-0.338904f,-0.0143335f,0.120679f},{-0.328031f,-0.0330392f,0.127263f}, -{-0.310188f,-0.0455381f,0.134519f},{-0.287054f,-0.0499271f,0.141103f},{-0.26152f,-0.0455381f,0.146069f}, -{-0.23771f,-0.0330392f,0.149017f},{-0.220253f,-0.0143335f,0.149782f},{-0.21295f,0.00773147f,0.148127f}, -{-0.217451f,0.0297963f,0.143878f},{-0.232678f,0.0485021f,0.137394f},{-0.255266f,0.0610009f,0.129799f}, -{-0.293369f,0.112456f,0.0912079f},{-0.336341f,0.104346f,0.0834187f},{-0.369703f,0.0812518f,0.0796233f}, -{-0.390712f,0.0466881f,0.0791105f},{-0.398299f,0.00591745f,0.0819687f},{-0.392462f,-0.0348534f,0.0889353f}, -{-0.373867f,-0.0694169f,0.09953f},{-0.343481f,-0.0925117f,0.111166f},{-0.303004f,-0.100622f,0.120699f}, -{-0.256454f,-0.0925117f,0.126708f},{-0.211359f,-0.0694169f,0.129889f},{-0.177502f,-0.0348532f,0.131224f}, -{-0.163381f,0.00591745f,0.13016f},{-0.172658f,0.0466881f,0.125f},{-0.202749f,0.0812518f,0.115147f}, -{-0.24612f,0.104346f,0.102663f},{-0.309223f,0.142402f,0.0478398f},{-0.365947f,0.131806f,0.0395624f}, -{-0.410513f,0.101631f,0.0358015f},{-0.438152f,0.0564719f,0.0354415f},{-0.446767f,0.00320249f,0.0385313f}, -{-0.436696f,-0.0500671f,0.0461625f},{-0.409985f,-0.0952267f,0.0578119f},{-0.369058f,-0.125401f,0.0700902f}, -{-0.316548f,-0.135997f,0.0790487f},{-0.257432f,-0.125401f,0.0834509f},{-0.201015f,-0.0952267f,0.0851812f}, -{-0.159359f,-0.0500669f,0.0863865f},{-0.142616f,0.00320249f,0.0865623f},{-0.154858f,0.0564719f,0.0828629f}, -{-0.192921f,0.101632f,0.0734676f},{-0.248087f,0.131806f,0.0602875f},{-0.324881f,0.150669f,-0.00479203f}, -{-0.39012f,0.1392f,-0.0144446f},{-0.443458f,0.106539f,-0.0197515f},{-0.476273f,0.0576585f,-0.0201944f}, -{-0.484459f,0.0f,-0.0157477f},{-0.468884f,-0.0576585f,-0.00684364f},{-0.433719f,-0.106539f,0.00467625f}, -{-0.38391f,-0.1392f,0.0154431f},{-0.32438f,-0.150669f,0.0225054f},{-0.261719f,-0.1392f,0.0255482f}, -{-0.205523f,-0.106539f,0.0267245f},{-0.166441f,-0.0576583f,0.0280126f},{-0.152152f,0.0f,0.0288029f}, -{-0.165015f,0.0576585f,0.0263835f},{-0.202543f,0.106539f,0.0188847f},{-0.258754f,0.1392f,0.00739763f}, -{0.277716f,0.00836844f,0.14043f},{0.280742f,0.0653898f,0.122636f},{0.304826f,0.0610009f,0.117201f}, -{0.324257f,0.0485021f,0.114166f},{0.336986f,0.0297963f,0.11374f},{0.341972f,0.00773147f,0.11596f}, -{0.338904f,-0.0143335f,0.120679f},{0.328031f,-0.0330392f,0.127263f},{0.310188f,-0.0455381f,0.134519f}, -{0.287054f,-0.0499271f,0.141103f},{0.26152f,-0.0455381f,0.146069f},{0.23771f,-0.0330392f,0.149017f}, -{0.220253f,-0.0143335f,0.149782f},{0.21295f,0.00773147f,0.148127f},{0.217451f,0.0297963f,0.143878f}, -{0.232678f,0.0485021f,0.137394f},{0.255266f,0.0610009f,0.129799f},{0.293369f,0.112456f,0.0912079f}, -{0.336341f,0.104346f,0.0834187f},{0.369703f,0.0812518f,0.0796233f},{0.390712f,0.0466881f,0.0791105f}, -{0.398299f,0.00591745f,0.0819687f},{0.392462f,-0.0348534f,0.0889353f},{0.373867f,-0.0694169f,0.09953f}, -{0.343481f,-0.0925117f,0.111166f},{0.303004f,-0.100622f,0.120699f},{0.256454f,-0.0925117f,0.126708f}, -{0.211359f,-0.0694169f,0.129889f},{0.177502f,-0.0348532f,0.131224f},{0.163381f,0.00591745f,0.13016f}, -{0.172658f,0.0466881f,0.125f},{0.202749f,0.0812518f,0.115147f},{0.24612f,0.104346f,0.102663f}, -{0.309223f,0.142402f,0.0478398f},{0.365947f,0.131806f,0.0395624f},{0.410513f,0.101631f,0.0358015f}, -{0.438152f,0.0564719f,0.0354415f},{0.446767f,0.00320249f,0.0385313f},{0.436696f,-0.0500671f,0.0461625f}, -{0.409985f,-0.0952267f,0.0578119f},{0.369058f,-0.125401f,0.0700902f},{0.316548f,-0.135997f,0.0790487f}, -{0.257432f,-0.125401f,0.0834509f},{0.201015f,-0.0952267f,0.0851812f},{0.159359f,-0.0500669f,0.0863865f}, -{0.142616f,0.00320249f,0.0865623f},{0.154858f,0.0564719f,0.082863f},{0.192921f,0.101632f,0.0734676f}, -{0.248087f,0.131806f,0.0602875f},{0.324881f,0.150669f,-0.00479203f},{0.39012f,0.1392f,-0.0144446f}, -{0.443458f,0.106539f,-0.0197515f},{0.476273f,0.0576585f,-0.0201944f},{0.468884f,-0.0576585f,-0.00684364f}, -{0.433719f,-0.106539f,0.00467625f},{0.38391f,-0.1392f,0.0154431f},{0.32438f,-0.150669f,0.0225054f}, -{0.261719f,-0.1392f,0.0255482f},{0.205523f,-0.106539f,0.0267245f},{0.166441f,-0.0576583f,0.0280126f}, -{0.165015f,0.0576585f,0.0263835f},{0.202543f,0.106539f,0.0188847f},{0.258754f,0.1392f,0.00739763f} -}, - -//lid 1 -{ -{-0.353951f,0.019129f,-0.142995f},{-0.348688f,-0.0395605f,-0.13725f},{-0.37644f,-0.0352039f,-0.142413f}, -{-0.401426f,-0.0227972f,-0.146432f},{-0.419356f,-0.00422938f,-0.148674f},{-0.426804f,0.0176729f,-0.148449f}, -{-0.422104f,0.0395752f,-0.145383f},{-0.405972f,0.058143f,-0.139773f},{-0.38145f,0.0705497f,-0.132638f}, -{-0.353099f,0.0749063f,-0.125394f},{-0.325786f,0.0705497f,-0.119389f},{-0.303578f,0.058143f,-0.115579f}, -{-0.289167f,0.0395752f,-0.114452f},{-0.283899f,0.0176729f,-0.116049f},{-0.288135f,-0.00422939f,-0.119964f}, -{-0.301449f,-0.0227972f,-0.125397f},{-0.322478f,-0.0352039f,-0.13141f},{-0.340315f,-0.0922273f,-0.10959f}, -{-0.389728f,-0.0841773f,-0.115854f},{-0.434689f,-0.0612528f,-0.121228f},{-0.467406f,-0.0269439f,-0.124791f}, -{-0.481165f,0.0135262f,-0.124789f},{-0.472339f,0.0539964f,-0.119913f},{-0.442178f,0.0883053f,-0.110465f}, -{-0.396778f,0.11123f,-0.0984804f},{-0.345153f,0.11928f,-0.0867588f},{-0.296599f,0.11123f,-0.0776884f}, -{-0.258429f,0.0883053f,-0.0726898f},{-0.234746f,0.0539964f,-0.0723075f},{-0.226799f,0.0135262f,-0.076421f}, -{-0.234523f,-0.0269439f,-0.0840859f},{-0.257485f,-0.0612528f,-0.0933808f},{-0.294094f,-0.0841773f,-0.102202f}, -{-0.332059f,-0.130853f,-0.0636959f},{-0.392836f,-0.120335f,-0.0686586f},{-0.446727f,-0.0903832f,-0.0732333f}, -{-0.484947f,-0.0455564f,-0.0763222f},{-0.5f,0.00732036f,-0.0756228f},{-0.488046f,0.0601971f,-0.0697015f}, -{-0.450962f,0.105024f,-0.0593253f},{-0.395754f,0.134976f,-0.0468043f},{-0.332196f,0.145494f,-0.0345443f}, -{-0.270886f,0.134976f,-0.02476f},{-0.221613f,0.105024f,-0.0196705f},{-0.191182f,0.0601971f,-0.0206756f}, -{-0.182158f,0.00732032f,-0.0273943f},{-0.194127f,-0.0455565f,-0.0377315f},{-0.225565f,-0.0903832f,-0.0486242f}, -{-0.273503f,-0.120335f,-0.0574568f},{-0.325519f,-0.149558f,-0.00603217f},{-0.386779f,-0.138174f,-0.0106294f}, -{-0.438138f,-0.105754f,-0.0150412f},{-0.472319f,-0.0572334f,-0.0176549f},{-0.483755f,3.0617e-008f,-0.0160775f}, -{-0.470309f,0.0572334f,-0.0097539f},{-0.434281f,0.105754f,-0.000563411f},{-0.381004f,0.138174f,0.00963235f}, -{-0.317226f,0.149558f,0.0205644f},{-0.251709f,0.138174f,0.031268f},{-0.195747f,0.105754f,0.0380775f}, -{-0.160203f,0.0572334f,0.0373458f},{-0.151073f,-4.4012e-008f,0.0293253f},{-0.16826f,-0.0572335f,0.0178688f}, -{-0.207633f,-0.105754f,0.00716789f},{-0.262789f,-0.138174f,-0.000655924f},{0.353951f,0.019129f,-0.142995f}, -{0.348688f,-0.0395605f,-0.13725f},{0.37644f,-0.0352039f,-0.142413f},{0.401426f,-0.0227972f,-0.146432f}, -{0.419356f,-0.00422938f,-0.148674f},{0.426804f,0.0176729f,-0.148449f},{0.422103f,0.0395752f,-0.145383f}, -{0.405972f,0.058143f,-0.139773f},{0.381449f,0.0705497f,-0.132638f},{0.353099f,0.0749063f,-0.125394f}, -{0.325786f,0.0705497f,-0.119389f},{0.303578f,0.058143f,-0.115579f},{0.289167f,0.0395752f,-0.114452f}, -{0.283899f,0.0176729f,-0.116049f},{0.288135f,-0.00422939f,-0.119964f},{0.301449f,-0.0227972f,-0.125397f}, -{0.322478f,-0.0352039f,-0.13141f},{0.340315f,-0.0922273f,-0.10959f},{0.389728f,-0.0841773f,-0.115854f}, -{0.434689f,-0.0612528f,-0.121228f},{0.467405f,-0.0269439f,-0.124791f},{0.481165f,0.0135262f,-0.124789f}, -{0.472339f,0.0539964f,-0.119913f},{0.442178f,0.0883053f,-0.110465f},{0.396778f,0.11123f,-0.0984804f}, -{0.345153f,0.11928f,-0.0867588f},{0.296598f,0.11123f,-0.0776884f},{0.258429f,0.0883053f,-0.0726898f}, -{0.234746f,0.0539964f,-0.0723075f},{0.226799f,0.0135262f,-0.076421f},{0.234523f,-0.0269439f,-0.0840859f}, -{0.257485f,-0.0612528f,-0.0933808f},{0.294094f,-0.0841773f,-0.102202f},{0.332059f,-0.130853f,-0.0636959f}, -{0.392836f,-0.120335f,-0.0686586f},{0.446727f,-0.0903832f,-0.0732333f},{0.484947f,-0.0455564f,-0.0763222f}, -{0.5f,0.00732036f,-0.0756228f},{0.488046f,0.0601971f,-0.0697015f},{0.450962f,0.105024f,-0.0593253f}, -{0.395754f,0.134976f,-0.0468043f},{0.332195f,0.145494f,-0.0345443f},{0.270886f,0.134976f,-0.02476f}, -{0.221613f,0.105024f,-0.0196705f},{0.191182f,0.0601971f,-0.0206756f},{0.182158f,0.00732032f,-0.0273943f}, -{0.194127f,-0.0455565f,-0.0377315f},{0.225565f,-0.0903832f,-0.0486242f},{0.273503f,-0.120335f,-0.0574568f}, -{0.325519f,-0.149558f,-0.00603217f},{0.386779f,-0.138174f,-0.0106294f},{0.438138f,-0.105754f,-0.0150412f}, -{0.472319f,-0.0572334f,-0.0176549f},{0.483755f,3.0617e-008f,-0.0160775f},{0.470309f,0.0572334f,-0.0097539f}, -{0.434281f,0.105754f,-0.000563411f},{0.381004f,0.138174f,0.00963235f},{0.317226f,0.149558f,0.0205644f}, -{0.251709f,0.138174f,0.031268f},{0.195747f,0.105754f,0.0380775f},{0.160203f,0.0572334f,0.0373458f}, -{0.151073f,-4.4012e-008f,0.0293253f},{0.16826f,-0.0572335f,0.0178688f},{0.207633f,-0.105754f,0.00716789f}, -{0.262789f,-0.138174f,-0.000655924f},{-0.278685f,-0.0184455f,0.142104f},{-0.276782f,0.0402249f,0.131836f}, -{-0.301275f,0.0358657f,0.125528f},{-0.32166f,0.023452f,0.120724f},{-0.335761f,0.00487346f,0.117933f}, -{-0.342327f,-0.0170414f,0.117442f},{-0.340777f,-0.0389562f,0.119308f},{-0.331139f,-0.0575348f,0.123149f}, -{-0.314161f,-0.0699485f,0.128161f},{-0.291535f,-0.0743076f,0.133481f},{-0.266105f,-0.0699485f,0.138543f}, -{-0.241813f,-0.0575347f,0.143068f},{-0.223134f,-0.0389562f,0.146692f},{-0.213979f,-0.0170414f,0.148674f}, -{-0.216437f,0.00487348f,0.148103f},{-0.22997f,0.023452f,0.144568f},{-0.251555f,0.0358657f,0.138674f}, -{-0.286428f,0.0927713f,0.106668f},{-0.329876f,0.0847167f,0.0969867f},{-0.364411f,0.0617791f,0.0897744f}, -{-0.387562f,0.0274504f,0.0847431f},{-0.397904f,-0.0130429f,0.0824777f},{-0.394525f,-0.0535363f,0.0840476f}, -{-0.377363f,-0.0878649f,0.089252f},{-0.347459f,-0.110803f,0.096282f},{-0.307253f,-0.118857f,0.103236f}, -{-0.261203f,-0.110803f,0.1096f},{-0.216225f,-0.0878649f,0.116136f},{-0.180992f,-0.0535363f,0.123303f}, -{-0.163781f,-0.0130429f,0.129625f},{-0.169441f,0.0274504f,0.131883f},{-0.196926f,0.0617791f,0.127674f}, -{-0.239231f,0.0847167f,0.117999f},{-0.30165f,0.131194f,0.068821f},{-0.357946f,0.12067f,0.0586132f}, -{-0.402983f,0.0907009f,0.0504722f},{-0.433219f,0.0458484f,0.0433801f},{-0.445856f,-0.00705878f,0.0384981f}, -{-0.439138f,-0.0599659f,0.0380252f},{-0.413572f,-0.104818f,0.0420112f},{-0.371905f,-0.134788f,0.0480844f}, -{-0.318578f,-0.145312f,0.0540119f},{-0.259936f,-0.134788f,0.0596851f},{-0.204491f,-0.104818f,0.0666849f}, -{-0.162112f,-0.0599659f,0.0760798f},{-0.142086f,-0.00705876f,0.0861686f},{-0.150271f,0.0458484f,0.0923222f}, -{-0.18592f,0.0907008f,0.0903491f},{-0.24061f,0.12067f,0.0808271f},{-0.317406f,0.149644f,0.0199458f}, -{-0.381217f,0.138253f,0.00904715f},{-0.434494f,0.105814f,-0.00103264f},{-0.470442f,0.0572662f,-0.0100155f}, -{-0.483755f,3.82713e-009f,-0.0160775f},{-0.472208f,-0.0572662f,-0.0173934f},{-0.437995f,-0.105814f,-0.0145555f}, -{-0.386668f,-0.138253f,-0.00998602f},{-0.325449f,-0.149644f,-0.00532854f},{-0.262724f,-0.138253f,-8.28803e-006f}, -{-0.207546f,-0.105814f,0.00765557f},{-0.168184f,-0.0572662f,0.0181296f},{-0.151073f,3.82713e-009f,0.0293253f}, -{-0.160302f,0.0572663f,0.0370842f},{-0.195903f,0.105814f,0.0376073f},{-0.251874f,0.138253f,0.030682f}, -{0.278685f,-0.0184455f,0.142104f},{0.276782f,0.0402249f,0.131836f},{0.301275f,0.0358657f,0.125528f}, -{0.32166f,0.023452f,0.120724f},{0.335761f,0.00487346f,0.117933f},{0.342327f,-0.0170414f,0.117442f}, -{0.340777f,-0.0389562f,0.119308f},{0.331139f,-0.0575348f,0.123149f},{0.314161f,-0.0699485f,0.128161f}, -{0.291535f,-0.0743076f,0.133481f},{0.266105f,-0.0699485f,0.138543f},{0.241813f,-0.0575347f,0.143068f}, -{0.223134f,-0.0389562f,0.146692f},{0.213978f,-0.0170414f,0.148674f},{0.216437f,0.00487348f,0.148103f}, -{0.229969f,0.023452f,0.144568f},{0.251555f,0.0358657f,0.138674f},{0.286428f,0.0927713f,0.106668f}, -{0.329876f,0.0847167f,0.0969866f},{0.364411f,0.0617791f,0.0897744f},{0.387562f,0.0274504f,0.084743f}, -{0.397904f,-0.0130429f,0.0824776f},{0.394525f,-0.0535363f,0.0840476f},{0.377363f,-0.0878649f,0.089252f}, -{0.347459f,-0.110803f,0.0962819f},{0.307253f,-0.118857f,0.103236f},{0.261203f,-0.110802f,0.1096f}, -{0.216225f,-0.0878649f,0.116136f},{0.180992f,-0.0535363f,0.123303f},{0.163781f,-0.0130429f,0.129625f}, -{0.169441f,0.0274504f,0.131883f},{0.196926f,0.0617791f,0.127674f},{0.239231f,0.0847167f,0.117999f}, -{0.30165f,0.131194f,0.068821f},{0.357946f,0.12067f,0.0586132f},{0.402983f,0.0907009f,0.0504722f}, -{0.433218f,0.0458484f,0.0433801f},{0.445856f,-0.00705878f,0.0384981f},{0.439138f,-0.0599659f,0.0380252f}, -{0.413572f,-0.104818f,0.0420112f},{0.371905f,-0.134788f,0.0480844f},{0.318578f,-0.145312f,0.0540119f}, -{0.259936f,-0.134788f,0.0596851f},{0.204491f,-0.104818f,0.0666849f},{0.162111f,-0.0599659f,0.0760797f}, -{0.142086f,-0.00705875f,0.0861686f},{0.150271f,0.0458484f,0.0923222f},{0.18592f,0.0907008f,0.0903491f}, -{0.24061f,0.12067f,0.0808271f},{0.317406f,0.149644f,0.0199458f},{0.381217f,0.138253f,0.00904715f}, -{0.434494f,0.105814f,-0.00103264f},{0.470442f,0.0572662f,-0.0100155f},{0.483755f,3.82713e-009f,-0.0160775f}, -{0.472208f,-0.0572662f,-0.0173934f},{0.437995f,-0.105814f,-0.0145555f},{0.386668f,-0.138253f,-0.00998602f}, -{0.325449f,-0.149644f,-0.00532854f},{0.262724f,-0.138253f,-8.28803e-006f},{0.207546f,-0.105814f,0.00765557f}, -{0.168184f,-0.0572662f,0.0181296f},{0.151073f,3.82713e-009f,0.0293253f},{0.160302f,0.0572663f,0.0370842f}, -{0.195903f,0.105814f,0.0376073f},{0.251874f,0.138253f,0.030682f} -} - -}; - -static GLfloat normals [NUM_LIDS][344][3] = { - -//lid 10 -{ -{0.14128f,0.678859f,-0.720549f},{0.141183f,0.470342f,-0.871117f},{0.0436259f,0.538027f,-0.841798f}, -{0.0679973f,0.716579f,-0.694184f},{-0.119311f,0.639257f,-0.759681f},{-0.00235058f,0.772214f,-0.635358f}, -{-0.255136f,0.759046f,-0.598962f},{-0.0474012f,0.827055f,-0.560118f},{-0.314039f,0.853304f,-0.416235f}, -{-0.0600024f,0.866637f,-0.495318f},{-0.292773f,0.915841f,-0.274809f},{-0.049072f,0.891986f,-0.449392f}, -{-0.212481f,0.95807f,-0.192231f},{-0.0178326f,0.908456f,-0.417599f},{-0.0920599f,0.982527f,-0.161757f}, -{0.0370726f,0.914058f,-0.403886f},{0.0521203f,0.982077f,-0.18113f},{0.108309f,0.902514f,-0.416819f}, -{0.201428f,0.946854f,-0.250789f},{0.179027f,0.872331f,-0.45496f},{0.331459f,0.872109f,-0.359945f}, -{0.23599f,0.827361f,-0.509688f},{0.418216f,0.768374f,-0.484455f},{0.271011f,0.775009f,-0.570888f}, -{0.450676f,0.660369f,-0.60067f},{0.28066f,0.726565f,-0.627163f},{0.433824f,0.571637f,-0.69644f}, -{0.269128f,0.691375f,-0.670501f},{0.379646f,0.512038f,-0.77051f},{0.242614f,0.670979f,-0.70066f}, -{0.296688f,0.482442f,-0.824152f},{0.20092f,0.665188f,-0.719135f},{0.111321f,0.0838976f,-0.990237f}, -{-0.029379f,0.177399f,-0.983701f},{-0.36291f,0.315654f,-0.876732f},{-0.636533f,0.537885f,-0.552726f}, -{-0.692297f,0.698565f,-0.180919f},{-0.609692f,0.790176f,0.0624294f},{-0.463645f,0.864983f,0.191929f}, -{-0.266794f,0.932768f,0.242413f},{-0.0294763f,0.976851f,0.211879f},{0.23276f,0.968844f,0.0846355f}, -{0.473096f,0.871906f,-0.126332f},{0.622688f,0.697126f,-0.355352f},{0.663374f,0.512375f,-0.54535f}, -{0.624155f,0.368076f,-0.689167f},{0.531327f,0.266649f,-0.804108f},{0.396108f,0.19478f,-0.897307f}, -{0.301284f,0.331535f,-0.894043f},{0.293635f,0.335978f,-0.894929f},{0.0262531f,-0.314782f,-0.948801f}, -{-0.145065f,-0.279238f,-0.949201f},{-0.600169f,-0.204803f,-0.773209f},{-0.94784f,0.0687263f,-0.311249f}, -{-0.931339f,0.326478f,0.161309f},{-0.775903f,0.471621f,0.418986f},{-0.595717f,0.581008f,0.554573f}, -{-0.378996f,0.685218f,0.621963f},{-0.1154f,0.782225f,0.612215f},{0.228237f,0.846899f,0.480282f}, -{0.608238f,0.775101f,0.17107f},{0.820052f,0.537806f,-0.19565f},{0.837034f,0.294875f,-0.460893f}, -{0.762505f,0.126921f,-0.634411f},{0.630338f,0.00231725f,-0.776317f},{0.436413f,-0.113109f,-0.892609f}, -{0.320267f,0.0147375f,-0.947213f},{0.348327f,-0.00790562f,-0.93734f},{-0.0276759f,-0.417145f,-0.908418f}, -{-0.141207f,-0.463983f,-0.874517f},{-0.573196f,-0.464631f,-0.674955f},{-0.943646f,-0.249543f,-0.217397f}, -{-0.961507f,0.0693531f,0.265886f},{-0.808033f,0.269491f,0.523886f},{-0.636184f,0.393708f,0.663524f}, -{-0.43775f,0.497816f,0.748702f},{-0.202579f,0.60248f,0.771997f},{0.122768f,0.708696f,0.694751f}, -{0.564416f,0.712283f,0.417239f},{0.875302f,0.482711f,-0.0289185f},{0.906907f,0.205191f,-0.367988f}, -{0.825239f,0.0254238f,-0.564212f},{0.68962f,-0.103674f,-0.716712f},{0.478163f,-0.232147f,-0.847035f}, -{0.283993f,-0.306895f,-0.908385f},{0.330854f,-0.348141f,-0.877117f},{-0.141183f,0.470342f,-0.871117f}, -{-0.14128f,0.678859f,-0.720549f},{-0.043626f,0.538027f,-0.841798f},{-0.0679977f,0.716579f,-0.694184f}, -{0.119311f,0.639257f,-0.759681f},{0.00235085f,0.772214f,-0.635358f},{0.255136f,0.759046f,-0.598961f}, -{0.0474012f,0.827055f,-0.560118f},{0.314038f,0.853304f,-0.416236f},{0.0600023f,0.866637f,-0.495318f}, -{0.292773f,0.915841f,-0.274809f},{0.0490718f,0.891986f,-0.449392f},{0.212481f,0.95807f,-0.192231f}, -{0.0178326f,0.908456f,-0.417599f},{0.0920599f,0.982527f,-0.161757f},{-0.0370725f,0.914058f,-0.403886f}, -{-0.0521203f,0.982077f,-0.18113f},{-0.108309f,0.902514f,-0.416819f},{-0.201428f,0.946854f,-0.250789f}, -{-0.179027f,0.872331f,-0.45496f},{-0.331459f,0.872109f,-0.359945f},{-0.235989f,0.827361f,-0.509688f}, -{-0.418216f,0.768374f,-0.484455f},{-0.271012f,0.775009f,-0.570889f},{-0.450676f,0.660369f,-0.60067f}, -{-0.28066f,0.726565f,-0.627163f},{-0.433824f,0.571637f,-0.696439f},{-0.269128f,0.691375f,-0.670501f}, -{-0.379647f,0.512038f,-0.77051f},{-0.242614f,0.67098f,-0.70066f},{-0.296688f,0.482442f,-0.824152f}, -{-0.20092f,0.665189f,-0.719135f},{-0.111321f,0.0838977f,-0.990237f},{0.029379f,0.177399f,-0.983701f}, -{0.36291f,0.315654f,-0.876732f},{0.636533f,0.537885f,-0.552726f},{0.692297f,0.698565f,-0.18092f}, -{0.609692f,0.790176f,0.0624292f},{0.463645f,0.864984f,0.191929f},{0.266794f,0.932768f,0.242413f}, -{0.0294763f,0.976851f,0.211879f},{-0.23276f,0.968844f,0.0846357f},{-0.473096f,0.871906f,-0.126332f}, -{-0.622688f,0.697126f,-0.355352f},{-0.663374f,0.512375f,-0.54535f},{-0.624155f,0.368076f,-0.689167f}, -{-0.531328f,0.266649f,-0.804108f},{-0.396108f,0.19478f,-0.897307f},{-0.301284f,0.331535f,-0.894043f}, -{-0.293635f,0.335978f,-0.894929f},{-0.0262532f,-0.314781f,-0.948801f},{0.145065f,-0.279238f,-0.949201f}, -{0.600169f,-0.204803f,-0.773209f},{0.94784f,0.0687262f,-0.311249f},{0.931339f,0.326478f,0.161309f}, -{0.775903f,0.471621f,0.418986f},{0.595716f,0.581008f,0.554573f},{0.378996f,0.685218f,0.621963f}, -{0.1154f,0.782225f,0.612215f},{-0.228237f,0.846899f,0.480282f},{-0.608238f,0.775101f,0.17107f}, -{-0.820052f,0.537806f,-0.19565f},{-0.837034f,0.294875f,-0.460893f},{-0.762505f,0.126921f,-0.634411f}, -{-0.630338f,0.00231719f,-0.776317f},{-0.436413f,-0.113109f,-0.892609f},{-0.320267f,0.0147371f,-0.947213f}, -{-0.348327f,-0.0079059f,-0.93734f},{0.027676f,-0.417145f,-0.908418f},{0.141207f,-0.463983f,-0.874517f}, -{0.573197f,-0.46463f,-0.674955f},{0.943646f,-0.249543f,-0.217397f},{0.961506f,0.0693526f,0.265886f}, -{0.808033f,0.269491f,0.523887f},{0.636184f,0.393708f,0.663524f},{0.43775f,0.497816f,0.748702f}, -{0.202579f,0.60248f,0.771997f},{-0.122768f,0.708696f,0.694751f},{-0.564416f,0.712283f,0.417239f}, -{-0.875302f,0.482711f,-0.0289183f},{-0.906908f,0.205191f,-0.367988f},{-0.825239f,0.0254234f,-0.564211f}, -{-0.68962f,-0.103674f,-0.716712f},{-0.478163f,-0.232147f,-0.847035f},{-0.283994f,-0.306895f,-0.908385f}, -{-0.330854f,-0.34814f,-0.877117f},{-0.101791f,0.89554f,0.433181f},{-0.10134f,0.982935f,0.153519f}, -{-0.198237f,0.947331f,0.251529f},{-0.164187f,0.866134f,0.472075f},{-0.328502f,0.861858f,0.386377f}, -{-0.22236f,0.81515f,0.534871f},{-0.407264f,0.738985f,0.53669f},{-0.261475f,0.745438f,0.61315f}, -{-0.423584f,0.613071f,0.666874f},{-0.268118f,0.677242f,0.685169f},{-0.392497f,0.519335f,0.759103f}, -{-0.24919f,0.634149f,0.731956f},{-0.338078f,0.471162f,0.814684f},{-0.22364f,0.617892f,0.753787f}, -{-0.270615f,0.460525f,0.84539f},{-0.194833f,0.616506f,0.762863f},{-0.183681f,0.479089f,0.858333f}, -{-0.149814f,0.630977f,0.761199f},{-0.0646262f,0.532383f,0.844033f},{-0.0833697f,0.671555f,0.736249f}, -{0.0858598f,0.628864f,0.77276f},{-0.0110594f,0.735267f,0.677687f},{0.225661f,0.746376f,0.626099f}, -{0.0402802f,0.800838f,0.597525f},{0.297614f,0.844032f,0.446135f},{0.0578062f,0.850871f,0.522185f}, -{0.287181f,0.911623f,0.294058f},{0.0462129f,0.884f,0.465197f},{0.212292f,0.957645f,0.194545f}, -{0.0112676f,0.903058f,0.429371f},{0.0946535f,0.984007f,0.1509f},{-0.0411956f,0.907323f,0.418412f}, -{-0.0768357f,0.963819f,-0.255243f},{-0.231191f,0.968651f,-0.0909206f},{-0.478011f,0.865024f,0.152442f}, -{-0.613761f,0.668302f,0.420321f},{-0.621661f,0.468695f,0.627584f},{-0.555999f,0.333983f,0.761131f}, -{-0.465216f,0.269773f,0.843087f},{-0.358395f,0.248428f,0.899909f},{-0.215945f,0.246155f,0.944868f}, -{-0.00160027f,0.275933f,0.961176f},{0.307449f,0.391756f,0.867181f},{0.57879f,0.576987f,0.57627f}, -{0.658558f,0.716536f,0.229952f},{0.597679f,0.801598f,-0.0148259f},{0.460401f,0.872625f,-0.162965f}, -{0.266984f,0.934523f,-0.235344f},{0.103983f,0.993374f,-0.048947f},{0.105796f,0.993123f,-0.0501399f}, -{-0.0197862f,0.790362f,-0.61232f},{-0.242279f,0.852503f,-0.463184f},{-0.632416f,0.763443f,-0.131166f}, -{-0.817379f,0.505342f,0.276625f},{-0.788174f,0.265216f,0.555375f},{-0.687043f,0.131972f,0.714531f}, -{-0.56985f,0.0751975f,0.818301f},{-0.421735f,0.0372272f,0.905954f},{-0.203784f,-0.0289837f,0.978587f}, -{0.124815f,-0.104369f,0.986675f},{0.577569f,-0.0689256f,0.813427f},{0.917184f,0.152931f,0.367949f}, -{0.924202f,0.373489f,-0.0797226f},{0.792991f,0.508953f,-0.334863f},{0.620113f,0.617825f,-0.483478f}, -{0.394039f,0.719565f,-0.571804f},{0.224221f,0.865854f,-0.447239f},{0.212217f,0.873358f,-0.438418f}, -{0.0136589f,0.693472f,-0.720354f},{-0.145306f,0.729801f,-0.668039f},{-0.601517f,0.69868f,-0.387329f}, -{-0.891335f,0.442876f,0.0968627f},{-0.872552f,0.175056f,0.45608f},{-0.763231f,0.0371769f,0.645055f}, -{-0.642575f,-0.0180662f,0.76601f},{-0.48495f,-0.0563598f,0.872724f},{-0.238167f,-0.142315f,0.960741f}, -{0.123424f,-0.279803f,0.952091f},{0.574493f,-0.347868f,0.740908f},{0.939284f,-0.188771f,0.28655f}, -{0.979786f,0.0995065f,-0.173547f},{0.850407f,0.302179f,-0.430692f},{0.68788f,0.4362f,-0.580131f}, -{0.478047f,0.550419f,-0.684478f},{0.3163f,0.607377f,-0.72873f},{0.292721f,0.633415f,-0.71631f}, -{0.10134f,0.982936f,0.153519f},{0.101791f,0.895541f,0.433181f},{0.198237f,0.947331f,0.251529f}, -{0.164188f,0.866134f,0.472075f},{0.328502f,0.861858f,0.386377f},{0.22236f,0.81515f,0.534871f}, -{0.407264f,0.738986f,0.53669f},{0.261475f,0.745438f,0.61315f},{0.423584f,0.613071f,0.666874f}, -{0.268118f,0.677242f,0.685168f},{0.392497f,0.519336f,0.759103f},{0.24919f,0.634149f,0.731956f}, -{0.338078f,0.471162f,0.814684f},{0.22364f,0.617892f,0.753787f},{0.270615f,0.460525f,0.84539f}, -{0.194833f,0.616506f,0.762863f},{0.183681f,0.479089f,0.858333f},{0.149814f,0.630977f,0.761199f}, -{0.0646263f,0.532382f,0.844033f},{0.0833696f,0.671555f,0.736249f},{-0.0858598f,0.628864f,0.77276f}, -{0.0110594f,0.735267f,0.677687f},{-0.225661f,0.746376f,0.626099f},{-0.0402801f,0.800838f,0.597525f}, -{-0.297614f,0.844032f,0.446135f},{-0.0578062f,0.850871f,0.522185f},{-0.287181f,0.911623f,0.294058f}, -{-0.0462129f,0.884f,0.465198f},{-0.212292f,0.957645f,0.194545f},{-0.0112675f,0.903058f,0.429371f}, -{-0.0946533f,0.984007f,0.1509f},{0.041196f,0.907323f,0.418412f},{0.0768359f,0.963819f,-0.255243f}, -{0.231191f,0.968651f,-0.0909207f},{0.478011f,0.865024f,0.152442f},{0.613761f,0.668302f,0.420321f}, -{0.621661f,0.468695f,0.627584f},{0.555999f,0.333984f,0.761131f},{0.465216f,0.269773f,0.843087f}, -{0.358395f,0.248428f,0.899909f},{0.215945f,0.246155f,0.944868f},{0.00160026f,0.275933f,0.961176f}, -{-0.307449f,0.391756f,0.867181f},{-0.57879f,0.576987f,0.57627f},{-0.658558f,0.716536f,0.229952f}, -{-0.597679f,0.801598f,-0.014826f},{-0.460401f,0.872625f,-0.162965f},{-0.266984f,0.934523f,-0.235344f}, -{-0.103983f,0.993374f,-0.0489471f},{-0.105795f,0.993123f,-0.0501397f},{0.0197862f,0.790362f,-0.61232f}, -{0.242279f,0.852503f,-0.463184f},{0.632416f,0.763443f,-0.131166f},{0.817379f,0.505342f,0.276625f}, -{0.788174f,0.265216f,0.555375f},{0.687043f,0.131972f,0.714531f},{0.56985f,0.0751974f,0.818301f}, -{0.421735f,0.0372273f,0.905954f},{0.203784f,-0.0289837f,0.978587f},{-0.124815f,-0.104369f,0.986675f}, -{-0.577568f,-0.0689258f,0.813427f},{-0.917184f,0.152931f,0.367949f},{-0.924202f,0.373489f,-0.0797229f}, -{-0.792991f,0.508952f,-0.334863f},{-0.620113f,0.617825f,-0.483478f},{-0.394039f,0.719565f,-0.571804f}, -{-0.224221f,0.865854f,-0.447239f},{-0.212217f,0.873358f,-0.438418f},{-0.0136587f,0.693472f,-0.720354f}, -{0.145306f,0.729801f,-0.668039f},{0.601517f,0.69868f,-0.387329f},{0.891335f,0.442876f,0.0968627f}, -{0.872552f,0.175056f,0.45608f},{0.763232f,0.0371764f,0.645055f},{0.642575f,-0.0180665f,0.76601f}, -{0.48495f,-0.0563598f,0.872724f},{0.238168f,-0.142315f,0.960741f},{-0.123424f,-0.279803f,0.952091f}, -{-0.574493f,-0.347868f,0.740909f},{-0.939284f,-0.188771f,0.28655f},{-0.979786f,0.0995065f,-0.173547f}, -{-0.850407f,0.302179f,-0.430692f},{-0.68788f,0.4362f,-0.580131f},{-0.478047f,0.550419f,-0.684478f}, -{-0.3163f,0.607377f,-0.72873f},{-0.292721f,0.633415f,-0.71631f} -}, - -//lid 9 -{ -{0.170541f,0.555718f,-0.813691f},{0.159436f,0.323043f,-0.932857f},{0.0675904f,0.387311f,-0.919468f}, -{0.101067f,0.59512f,-0.797256f},{-0.092135f,0.494669f,-0.864184f},{0.0336952f,0.658639f,-0.751704f}, -{-0.229373f,0.644702f,-0.72921f},{-0.0108063f,0.727029f,-0.686522f},{-0.288707f,0.777821f,-0.55825f}, -{-0.0233612f,0.779424f,-0.626062f},{-0.263651f,0.867508f,-0.421803f},{-0.012134f,0.812561f,-0.58275f}, -{-0.179349f,0.921161f,-0.345394f},{0.0175103f,0.832714f,-0.553427f},{-0.0584333f,0.945729f,-0.319658f}, -{0.0683393f,0.839411f,-0.539184f},{0.0823237f,0.938165f,-0.336258f},{0.135725f,0.826017f,-0.54706f}, -{0.225929f,0.891127f,-0.393507f},{0.204819f,0.79023f,-0.577569f},{0.350601f,0.801826f,-0.483894f}, -{0.261618f,0.736218f,-0.62413f},{0.433427f,0.683162f,-0.587734f},{0.296097f,0.673774f,-0.677019f}, -{0.463621f,0.562726f,-0.684394f},{0.304738f,0.617548f,-0.725099f},{0.446703f,0.464193f,-0.764841f}, -{0.293235f,0.577481f,-0.761924f},{0.394005f,0.394726f,-0.830031f},{0.267887f,0.553192f,-0.788806f}, -{0.313145f,0.353344f,-0.881526f},{0.227697f,0.543901f,-0.807667f},{0.103488f,-0.0756736f,-0.991748f}, -{-0.0254071f,0.00398757f,-0.999669f},{-0.349912f,0.130467f,-0.927653f},{-0.638155f,0.398665f,-0.658654f}, -{-0.703033f,0.642145f,-0.305605f},{-0.609007f,0.79022f,-0.068285f},{-0.449166f,0.892346f,0.04437f}, -{-0.241132f,0.967482f,0.0763763f},{0.00191164f,0.99924f,0.0389275f},{0.257914f,0.963174f,-0.0759974f}, -{0.484125f,0.836707f,-0.256014f},{0.624151f,0.639931f,-0.448246f},{0.662818f,0.438996f,-0.606593f}, -{0.625793f,0.279749f,-0.728096f},{0.534464f,0.160511f,-0.82981f},{0.397089f,0.067222f,-0.915315f}, -{0.305679f,0.19791f,-0.931339f},{0.308629f,0.196352f,-0.930696f},{0.0010928f,-0.457257f,-0.889334f}, -{-0.16025f,-0.427096f,-0.889892f},{-0.589829f,-0.355518f,-0.725057f},{-0.94399f,-0.0546976f,-0.325408f}, -{-0.95306f,0.282341f,0.109367f},{-0.796299f,0.492715f,0.350912f},{-0.606733f,0.645652f,0.46369f}, -{-0.372043f,0.777756f,0.506636f},{-0.086674f,0.876457f,0.473614f},{0.257346f,0.909395f,0.326763f}, -{0.607804f,0.79297f,0.0421005f},{0.806237f,0.525687f,-0.271357f},{0.829843f,0.255751f,-0.495936f}, -{0.762498f,0.0578159f,-0.644402f},{0.631312f,-0.0985713f,-0.769239f},{0.42819f,-0.241367f,-0.870859f}, -{0.306199f,-0.119536f,-0.944433f},{0.342896f,-0.146123f,-0.927939f},{-0.0528956f,-0.553316f,-0.83129f}, -{-0.163834f,-0.590968f,-0.789883f},{-0.573892f,-0.568852f,-0.589114f},{-0.928504f,-0.32689f,-0.176134f}, -{-0.965442f,0.0371366f,0.25796f},{-0.823071f,0.286223f,0.490542f},{-0.651703f,0.453096f,0.608265f}, -{-0.440343f,0.593015f,0.674115f},{-0.181412f,0.713338f,0.676933f},{0.152749f,0.80595f,0.571937f}, -{0.566841f,0.771152f,0.289856f},{0.85507f,0.507622f,-0.105715f},{0.89627f,0.194243f,-0.398711f}, -{0.82294f,-0.0268582f,-0.567493f},{0.68957f,-0.19749f,-0.696772f},{0.470535f,-0.360343f,-0.80545f}, -{0.266767f,-0.44909f,-0.852733f},{0.309762f,-0.481723f,-0.81975f},{-0.159438f,0.323043f,-0.932857f}, -{-0.170543f,0.555717f,-0.813691f},{-0.0675907f,0.387311f,-0.919468f},{-0.101065f,0.595122f,-0.797255f}, -{0.0921356f,0.49467f,-0.864183f},{-0.0336954f,0.658639f,-0.751704f},{0.229373f,0.644702f,-0.72921f}, -{0.0108064f,0.72703f,-0.686521f},{0.288706f,0.777821f,-0.558249f},{0.0233612f,0.779424f,-0.626062f}, -{0.263651f,0.867508f,-0.421803f},{0.012134f,0.812561f,-0.58275f},{0.179349f,0.921161f,-0.345394f}, -{-0.0175103f,0.832714f,-0.553427f},{0.0584332f,0.945729f,-0.319658f},{-0.0683394f,0.83941f,-0.539184f}, -{-0.0823238f,0.938165f,-0.336259f},{-0.135725f,0.826017f,-0.54706f},{-0.225929f,0.891127f,-0.393507f}, -{-0.204819f,0.79023f,-0.577569f},{-0.350601f,0.801826f,-0.483894f},{-0.261618f,0.736219f,-0.62413f}, -{-0.433427f,0.683162f,-0.587733f},{-0.296097f,0.673776f,-0.677018f},{-0.463621f,0.562727f,-0.684393f}, -{-0.304738f,0.617549f,-0.725099f},{-0.446703f,0.464193f,-0.764841f},{-0.293235f,0.577482f,-0.761924f}, -{-0.394004f,0.394726f,-0.830031f},{-0.267886f,0.553192f,-0.788807f},{-0.313145f,0.353344f,-0.881526f}, -{-0.227697f,0.543901f,-0.807667f},{-0.103488f,-0.0756737f,-0.991748f},{0.0254069f,0.00398732f,-0.999669f}, -{0.349912f,0.130467f,-0.927653f},{0.638155f,0.398665f,-0.658654f},{0.703033f,0.642145f,-0.305605f}, -{0.609007f,0.79022f,-0.0682853f},{0.449166f,0.892346f,0.0443696f},{0.241132f,0.967482f,0.0763763f}, -{-0.0019117f,0.99924f,0.0389275f},{-0.257914f,0.963174f,-0.0759975f},{-0.484125f,0.836707f,-0.256014f}, -{-0.624151f,0.639931f,-0.448246f},{-0.662818f,0.438997f,-0.606592f},{-0.625793f,0.279749f,-0.728096f}, -{-0.534464f,0.160511f,-0.82981f},{-0.397088f,0.0672218f,-0.915315f},{-0.305679f,0.19791f,-0.931339f}, -{-0.308629f,0.196352f,-0.930696f},{-0.00109355f,-0.457257f,-0.889334f},{0.16025f,-0.427096f,-0.889893f}, -{0.589829f,-0.355518f,-0.725057f},{0.94399f,-0.0546977f,-0.325408f},{0.95306f,0.282341f,0.109367f}, -{0.796299f,0.492715f,0.350912f},{0.606732f,0.645652f,0.46369f},{0.372042f,0.777756f,0.506636f}, -{0.0866739f,0.876457f,0.473614f},{-0.257346f,0.909395f,0.326763f},{-0.607805f,0.79297f,0.0421001f}, -{-0.806237f,0.525687f,-0.271357f},{-0.829843f,0.255751f,-0.495936f},{-0.762498f,0.0578159f,-0.644402f}, -{-0.631312f,-0.0985713f,-0.769239f},{-0.42819f,-0.241367f,-0.870859f},{-0.306198f,-0.119536f,-0.944433f}, -{-0.342896f,-0.146124f,-0.927939f},{0.0528946f,-0.553315f,-0.831291f},{0.163834f,-0.590967f,-0.789884f}, -{0.573892f,-0.568851f,-0.589114f},{0.928504f,-0.32689f,-0.176134f},{0.965442f,0.0371366f,0.257959f}, -{0.823071f,0.286223f,0.490542f},{0.651704f,0.453095f,0.608266f},{0.440343f,0.593015f,0.674116f}, -{0.181412f,0.713338f,0.676933f},{-0.152749f,0.80595f,0.571937f},{-0.566841f,0.771152f,0.289855f}, -{-0.85507f,0.507622f,-0.105715f},{-0.89627f,0.194243f,-0.398711f},{-0.82294f,-0.026858f,-0.567493f}, -{-0.68957f,-0.19749f,-0.696772f},{-0.470535f,-0.360343f,-0.80545f},{-0.266767f,-0.44909f,-0.852733f}, -{-0.309761f,-0.481723f,-0.819751f},{-0.11464f,0.854504f,0.506637f},{-0.114874f,0.966279f,0.230455f}, -{-0.210589f,0.921522f,0.326266f},{-0.174897f,0.822321f,0.541478f},{-0.337297f,0.824425f,0.454483f}, -{-0.232515f,0.765838f,0.599525f},{-0.411322f,0.691063f,0.594345f},{-0.270972f,0.689156f,0.67204f}, -{-0.424194f,0.559147f,0.71233f},{-0.276544f,0.616478f,0.73721f},{-0.393218f,0.46414f,0.793696f}, -{-0.258301f,0.57317f,0.777661f},{-0.342514f,0.416759f,0.842019f},{-0.23626f,0.558058f,0.795457f}, -{-0.280672f,0.405896f,0.869754f},{-0.211881f,0.556491f,0.803383f},{-0.200032f,0.422183f,0.884166f}, -{-0.170563f,0.570243f,0.803574f},{-0.0874915f,0.472863f,0.876781f},{-0.107036f,0.611665f,0.783842f}, -{0.0581153f,0.571308f,0.818676f},{-0.036373f,0.679483f,0.732789f},{0.197933f,0.699796f,0.686373f}, -{0.0148238f,0.751729f,0.659306f},{0.273319f,0.812315f,0.51521f},{0.03261f,0.807523f,0.588934f}, -{0.266335f,0.891038f,0.367583f},{0.0218574f,0.843568f,0.536578f},{0.194206f,0.942733f,0.271181f}, -{-0.0102549f,0.863372f,0.504464f},{0.078806f,0.970194f,0.229157f},{-0.0581579f,0.867363f,0.494266f}, -{-0.0914466f,0.978258f,-0.186143f},{-0.244068f,0.969568f,-0.0192072f},{-0.48466f,0.847182f,0.217684f}, -{-0.612357f,0.635581f,0.470165f},{-0.615785f,0.428517f,0.661198f},{-0.550439f,0.291383f,0.782377f}, -{-0.463909f,0.226398f,0.856465f},{-0.362763f,0.202436f,0.909628f},{-0.225975f,0.194219f,0.954575f}, -{-0.0183055f,0.216191f,0.976179f},{0.286186f,0.330996f,0.899188f},{0.562947f,0.537093f,0.628189f}, -{0.648012f,0.704916f,0.288398f},{0.587764f,0.807722f,0.0460294f},{0.450024f,0.887599f,-0.0982117f}, -{0.255516f,0.952228f,-0.167251f},{0.0906943f,0.995508f,0.0271607f},{0.0933649f,0.995308f,0.0253784f}, -{-0.0355931f,0.831294f,-0.554693f},{-0.254659f,0.881814f,-0.396929f},{-0.632414f,0.771627f,-0.0681498f}, -{-0.809248f,0.494993f,0.316386f},{-0.781041f,0.242949f,0.575283f},{-0.682456f,0.101224f,0.723883f}, -{-0.568426f,0.0370607f,0.821899f},{-0.423234f,-0.0101017f,0.905964f},{-0.206764f,-0.0865563f,0.974555f}, -{0.118895f,-0.168938f,0.978429f},{0.568569f,-0.131554f,0.812049f},{0.916179f,0.11474f,0.383994f}, -{0.927836f,0.368796f,-0.0557681f},{0.794685f,0.525236f,-0.304306f},{0.618087f,0.648299f,-0.444608f}, -{0.385917f,0.758658f,-0.524887f},{0.210919f,0.897809f,-0.38659f},{0.203377f,0.902055f,-0.380702f}, -{-0.00079517f,0.742438f,-0.669914f},{-0.157844f,0.77598f,-0.610689f},{-0.602335f,0.730097f,-0.322724f}, -{-0.880543f,0.453024f,0.13933f},{-0.864745f,0.167017f,0.473626f},{-0.759086f,0.014962f,0.650818f}, -{-0.640551f,-0.0522314f,0.766137f},{-0.484416f,-0.104116f,0.86862f},{-0.23751f,-0.203911f,0.949742f}, -{0.123602f,-0.346612f,0.929829f},{0.570647f,-0.405671f,0.713998f},{0.936051f,-0.22429f,0.271114f}, -{0.980428f,0.0927185f,-0.173679f},{0.852254f,0.314963f,-0.417685f},{0.688798f,0.464589f,-0.55652f}, -{0.47305f,0.592612f,-0.651946f},{0.30497f,0.65594f,-0.690461f},{0.282411f,0.679895f,-0.676747f}, -{0.114874f,0.966279f,0.230455f},{0.11464f,0.854504f,0.506637f},{0.210589f,0.921522f,0.326266f}, -{0.174897f,0.822321f,0.541478f},{0.337297f,0.824425f,0.454483f},{0.232515f,0.765837f,0.599525f}, -{0.411322f,0.691063f,0.594346f},{0.270972f,0.689156f,0.67204f},{0.424194f,0.559147f,0.71233f}, -{0.276544f,0.616478f,0.73721f},{0.393218f,0.46414f,0.793696f},{0.258301f,0.57317f,0.777661f}, -{0.342514f,0.416759f,0.842019f},{0.236261f,0.558058f,0.795457f},{0.280672f,0.405896f,0.869754f}, -{0.211882f,0.556491f,0.803383f},{0.200032f,0.422183f,0.884166f},{0.170563f,0.570243f,0.803574f}, -{0.0874913f,0.472863f,0.876781f},{0.107037f,0.611665f,0.783842f},{-0.0581153f,0.571308f,0.818676f}, -{0.036373f,0.679483f,0.732789f},{-0.197933f,0.699796f,0.686373f},{-0.0148238f,0.751729f,0.659306f}, -{-0.273319f,0.812315f,0.515211f},{-0.03261f,0.807523f,0.588934f},{-0.266335f,0.891038f,0.367583f}, -{-0.0218573f,0.843568f,0.536577f},{-0.194206f,0.942733f,0.271181f},{0.0102549f,0.863372f,0.504464f}, -{-0.078806f,0.970194f,0.229156f},{0.058158f,0.867363f,0.494266f},{0.0914466f,0.978258f,-0.186143f}, -{0.244068f,0.969568f,-0.0192073f},{0.48466f,0.847182f,0.217684f},{0.612358f,0.635581f,0.470165f}, -{0.615785f,0.428517f,0.661198f},{0.550439f,0.291383f,0.782377f},{0.463909f,0.226398f,0.856465f}, -{0.362763f,0.202436f,0.909628f},{0.225975f,0.19422f,0.954575f},{0.0183055f,0.216191f,0.976179f}, -{-0.286186f,0.330996f,0.899188f},{-0.562947f,0.537093f,0.628189f},{-0.648012f,0.704916f,0.288399f}, -{-0.587764f,0.807722f,0.0460294f},{-0.450024f,0.887599f,-0.0982118f},{-0.255516f,0.952228f,-0.167251f}, -{-0.0906943f,0.995508f,0.0271607f},{-0.093365f,0.995308f,0.0253784f},{0.0355932f,0.831294f,-0.554693f}, -{0.254659f,0.881814f,-0.396929f},{0.632414f,0.771627f,-0.0681498f},{0.809248f,0.494993f,0.316386f}, -{0.781041f,0.242949f,0.575283f},{0.682456f,0.101224f,0.723883f},{0.568426f,0.0370607f,0.821899f}, -{0.423234f,-0.0101017f,0.905964f},{0.206764f,-0.0865562f,0.974555f},{-0.118895f,-0.168938f,0.978429f}, -{-0.568569f,-0.131554f,0.812049f},{-0.916179f,0.11474f,0.383994f},{-0.927836f,0.368796f,-0.0557682f}, -{-0.794686f,0.525236f,-0.304306f},{-0.618087f,0.648299f,-0.444608f},{-0.385917f,0.758658f,-0.524887f}, -{-0.210919f,0.897809f,-0.38659f},{-0.203377f,0.902055f,-0.380702f},{0.000795401f,0.742438f,-0.669914f}, -{0.157843f,0.77598f,-0.610689f},{0.602334f,0.730098f,-0.322724f},{0.880543f,0.453024f,0.13933f}, -{0.864745f,0.167017f,0.473626f},{0.759086f,0.014962f,0.650819f},{0.640551f,-0.0522313f,0.766137f}, -{0.484416f,-0.104115f,0.86862f},{0.23751f,-0.203911f,0.949742f},{-0.123602f,-0.346612f,0.92983f}, -{-0.570647f,-0.405671f,0.713998f},{-0.936051f,-0.22429f,0.271113f},{-0.980428f,0.0927184f,-0.173679f}, -{-0.852254f,0.314963f,-0.417685f},{-0.688798f,0.46459f,-0.55652f},{-0.47305f,0.592612f,-0.651947f}, -{-0.30497f,0.65594f,-0.690461f},{-0.282411f,0.679895f,-0.676747f} -}, - -//lid 8 -{ -{0.183219f,0.515603f,-0.837009f},{0.168233f,0.276577f,-0.946151f},{0.0789236f,0.33771f,-0.937936f}, -{0.115197f,0.55477f,-0.82399f},{-0.0788423f,0.444272f,-0.892416f},{0.0493115f,0.619585f,-0.783379f}, -{-0.215796f,0.602783f,-0.76817f},{0.00509343f,0.691651f,-0.722214f},{-0.275265f,0.749386f,-0.602205f}, -{-0.00771255f,0.748436f,-0.663162f},{-0.249493f,0.848683f,-0.466358f},{0.00346534f,0.784383f,-0.620267f}, -{-0.165042f,0.90581f,-0.390218f},{0.0322572f,0.805564f,-0.591631f},{-0.0456364f,0.929892f,-0.364991f}, -{0.080755f,0.81256f,-0.577256f},{0.0928438f,0.920014f,-0.380728f},{0.146091f,0.799024f,-0.583282f}, -{0.23474f,0.86947f,-0.434649f},{0.215159f,0.761573f,-0.611321f},{0.358561f,0.775663f,-0.519404f}, -{0.272868f,0.704116f,-0.655564f},{0.440662f,0.653013f,-0.615948f},{0.307414f,0.638509f,-0.705551f}, -{0.470318f,0.530909f,-0.704937f},{0.315767f,0.581186f,-0.75001f},{0.453707f,0.431995f,-0.779443f}, -{0.304783f,0.540878f,-0.783938f},{0.401809f,0.360715f,-0.841685f},{0.280105f,0.515498f,-0.809816f}, -{0.321717f,0.314999f,-0.892902f},{0.23998f,0.50473f,-0.829251f},{0.10177f,-0.124175f,-0.987028f}, -{-0.0213474f,-0.0510002f,-0.99847f},{-0.339633f,0.0669536f,-0.938172f},{-0.632029f,0.346039f,-0.693395f}, -{-0.701873f,0.620211f,-0.350303f},{-0.603308f,0.789452f,-0.113069f},{-0.43881f,0.898572f,-0.00368722f}, -{-0.229713f,0.972972f,0.023611f},{0.0125592f,0.999809f,-0.0149582f},{0.266795f,0.955612f,-0.125002f}, -{0.490219f,0.820159f,-0.294998f},{0.62726f,0.617606f,-0.474456f},{0.664848f,0.416024f,-0.620404f}, -{0.629087f,0.257234f,-0.73354f},{0.538512f,0.134383f,-0.831833f},{0.399787f,0.0328209f,-0.916021f}, -{0.30886f,0.159902f,-0.93757f},{0.317338f,0.155631f,-0.935455f},{-0.00782778f,-0.499674f,-0.866178f}, -{-0.163187f,-0.471999f,-0.866364f},{-0.57959f,-0.404497f,-0.70743f},{-0.937032f,-0.10026f,-0.334542f}, -{-0.960051f,0.266588f,0.0850474f},{-0.800902f,0.504502f,0.322543f},{-0.605592f,0.671753f,0.426623f}, -{-0.365098f,0.809509f,0.459781f},{-0.0727785f,0.904433f,0.420363f},{0.27279f,0.922361f,0.27356f}, -{0.614661f,0.788789f,0.00173532f},{0.8065f,0.514327f,-0.291591f},{0.830963f,0.243768f,-0.500077f}, -{0.767385f,0.0433333f,-0.639721f},{0.636351f,-0.121862f,-0.761714f},{0.42732f,-0.276056f,-0.860925f}, -{0.301003f,-0.155958f,-0.940784f},{0.343504f,-0.185537f,-0.920642f},{-0.0626903f,-0.592958f,-0.802789f}, -{-0.170517f,-0.628368f,-0.758997f},{-0.568461f,-0.601158f,-0.56166f},{-0.918823f,-0.356076f,-0.170216f}, -{-0.968663f,0.0240955f,0.247208f},{-0.829274f,0.296802f,0.473512f},{-0.65542f,0.48147f,0.581903f}, -{-0.438276f,0.633814f,0.637334f},{-0.16793f,0.756496f,0.632071f},{0.173844f,0.835371f,0.521472f}, -{0.578754f,0.777582f,0.245785f},{0.854862f,0.503223f,-0.126398f},{0.896856f,0.188576f,-0.40011f}, -{0.828344f,-0.0368846f,-0.559005f},{0.696091f,-0.218808f,-0.683798f},{0.470358f,-0.395467f,-0.788904f}, -{0.259101f,-0.490013f,-0.832318f},{0.302875f,-0.521613f,-0.797613f},{-0.168233f,0.276577f,-0.946152f}, -{-0.183218f,0.515603f,-0.837009f},{-0.0789234f,0.33771f,-0.937936f},{-0.115196f,0.55477f,-0.82399f}, -{0.0788423f,0.444272f,-0.892416f},{-0.0493115f,0.619585f,-0.783379f},{0.215796f,0.602783f,-0.76817f}, -{-0.00509343f,0.691651f,-0.722214f},{0.275265f,0.749386f,-0.602205f},{0.00771252f,0.748436f,-0.663162f}, -{0.249494f,0.848683f,-0.466358f},{-0.00346547f,0.784383f,-0.620267f},{0.165042f,0.90581f,-0.390218f}, -{-0.032257f,0.805564f,-0.591631f},{0.0456365f,0.929892f,-0.364991f},{-0.080755f,0.81256f,-0.577256f}, -{-0.0928437f,0.920014f,-0.380728f},{-0.146091f,0.799024f,-0.583282f},{-0.23474f,0.86947f,-0.434649f}, -{-0.215159f,0.761573f,-0.611321f},{-0.358561f,0.775663f,-0.519404f},{-0.272868f,0.704116f,-0.655563f}, -{-0.440662f,0.653013f,-0.615948f},{-0.307414f,0.638509f,-0.705551f},{-0.470318f,0.530909f,-0.704937f}, -{-0.315767f,0.581186f,-0.75001f},{-0.453707f,0.431995f,-0.779442f},{-0.304784f,0.540878f,-0.783938f}, -{-0.401809f,0.360715f,-0.841685f},{-0.280105f,0.515498f,-0.809816f},{-0.321718f,0.314999f,-0.892902f}, -{-0.23998f,0.50473f,-0.829251f},{-0.10177f,-0.124175f,-0.987028f},{0.0213474f,-0.0510003f,-0.99847f}, -{0.339633f,0.0669536f,-0.938172f},{0.632029f,0.346039f,-0.693395f},{0.701873f,0.620211f,-0.350303f}, -{0.603308f,0.789452f,-0.11307f},{0.43881f,0.898572f,-0.0036873f},{0.229713f,0.972972f,0.023611f}, -{-0.0125591f,0.999809f,-0.0149581f},{-0.266795f,0.955612f,-0.125002f},{-0.490219f,0.820159f,-0.294999f}, -{-0.62726f,0.617606f,-0.474456f},{-0.664848f,0.416024f,-0.620404f},{-0.629087f,0.257234f,-0.73354f}, -{-0.538512f,0.134383f,-0.831833f},{-0.399786f,0.0328209f,-0.916021f},{-0.30886f,0.159902f,-0.93757f}, -{-0.317339f,0.155631f,-0.935454f},{0.00782779f,-0.499674f,-0.866178f},{0.163186f,-0.471999f,-0.866364f}, -{0.57959f,-0.404497f,-0.707431f},{0.937032f,-0.10026f,-0.334542f},{0.960051f,0.266587f,0.0850475f}, -{0.800902f,0.504502f,0.322543f},{0.605592f,0.671753f,0.426623f},{0.365098f,0.809509f,0.459781f}, -{0.0727785f,0.904433f,0.420363f},{-0.27279f,0.922361f,0.27356f},{-0.614661f,0.788789f,0.00173559f}, -{-0.8065f,0.514327f,-0.291591f},{-0.830963f,0.243767f,-0.500077f},{-0.767385f,0.0433335f,-0.639721f}, -{-0.636351f,-0.121862f,-0.761713f},{-0.42732f,-0.276056f,-0.860925f},{-0.301003f,-0.155958f,-0.940784f}, -{-0.343504f,-0.185537f,-0.920642f},{0.0626903f,-0.592958f,-0.802789f},{0.170517f,-0.628368f,-0.758997f}, -{0.568461f,-0.601158f,-0.56166f},{0.918823f,-0.356076f,-0.170216f},{0.968663f,0.0240956f,0.247208f}, -{0.829274f,0.296802f,0.473512f},{0.65542f,0.48147f,0.581904f},{0.438276f,0.633814f,0.637334f}, -{0.16793f,0.756496f,0.632071f},{-0.173844f,0.835371f,0.521472f},{-0.578754f,0.777582f,0.245785f}, -{-0.854863f,0.503223f,-0.126398f},{-0.896856f,0.188576f,-0.40011f},{-0.828343f,-0.0368841f,-0.559005f}, -{-0.696091f,-0.218808f,-0.683798f},{-0.470358f,-0.395467f,-0.788904f},{-0.259101f,-0.490013f,-0.832318f}, -{-0.302875f,-0.521613f,-0.797613f},{-0.136628f,0.763066f,0.631715f},{-0.139911f,0.91351f,0.382f}, -{-0.230294f,0.853362f,0.467694f},{-0.193796f,0.727236f,0.658461f},{-0.346303f,0.741592f,0.574556f}, -{-0.248184f,0.665563f,0.703868f},{-0.410724f,0.601945f,0.684812f},{-0.282328f,0.587202f,0.758607f}, -{-0.420812f,0.474512f,0.773147f},{-0.286105f,0.519799f,0.804955f},{-0.394192f,0.388462f,0.832893f}, -{-0.271441f,0.48297f,0.832502f},{-0.348961f,0.345726f,0.871034f},{-0.253473f,0.469114f,0.845981f}, -{-0.288397f,0.331318f,0.898363f},{-0.227904f,0.465937f,0.854963f},{-0.205609f,0.337301f,0.918669f}, -{-0.183354f,0.479034f,0.858434f},{-0.0927383f,0.374538f,0.922562f},{-0.122056f,0.518721f,0.846186f}, -{0.0476515f,0.463623f,0.88475f},{-0.0593579f,0.58286f,0.810401f},{0.180078f,0.598609f,0.780538f}, -{-0.0151815f,0.654338f,0.75605f},{0.249804f,0.732175f,0.633654f},{-0.000536045f,0.713225f,0.700935f}, -{0.238979f,0.831312f,0.501806f},{-0.0116876f,0.752305f,0.658711f},{0.164828f,0.894338f,0.415923f}, -{-0.0414348f,0.773339f,0.632638f},{0.0495883f,0.923567f,0.380217f},{-0.0846693f,0.777271f,0.623443f}, -{-0.119615f,0.992173f,-0.0358517f},{-0.26578f,0.955061f,0.131223f},{-0.488134f,0.802358f,0.343433f}, -{-0.600233f,0.576302f,0.554613f},{-0.602773f,0.370741f,0.706552f},{-0.548009f,0.239525f,0.801444f}, -{-0.470781f,0.173944f,0.864933f},{-0.366503f,0.136982f,0.920278f},{-0.215389f,0.104768f,0.970892f}, -{0.00346038f,0.0981433f,0.995166f},{0.301978f,0.191861f,0.933809f},{0.572361f,0.418812f,0.704982f}, -{0.653782f,0.645133f,0.39544f},{0.583085f,0.795283f,0.165941f},{0.434465f,0.90003f,0.0344497f}, -{0.232282f,0.972393f,-0.0223025f},{0.0629826f,0.980353f,0.186928f},{0.0646f,0.980455f,0.185836f}, -{-0.0658798f,0.902312f,-0.426021f},{-0.275788f,0.926084f,-0.257505f},{-0.625976f,0.778258f,0.0496934f}, -{-0.790611f,0.479302f,0.381055f},{-0.772137f,0.214951f,0.597997f},{-0.688996f,0.0606832f,0.72222f}, -{-0.585024f,-0.0246281f,0.810642f},{-0.429108f,-0.106703f,0.896929f},{-0.181204f,-0.217596f,0.959071f}, -{0.160618f,-0.312677f,0.936181f},{0.582391f,-0.272557f,0.765855f},{0.918424f,-0.000439342f,0.395597f}, -{0.945892f,0.324477f,-0.00184092f},{0.807139f,0.541361f,-0.235489f},{0.61697f,0.701103f,-0.357495f}, -{0.370398f,0.829668f,-0.417679f},{0.185885f,0.94934f,-0.253379f},{0.183324f,0.950425f,-0.251168f}, -{-0.0297826f,0.831883f,-0.554151f},{-0.180719f,0.855135f,-0.485886f},{-0.598032f,0.776013f,-0.200401f}, -{-0.857929f,0.470815f,0.20565f},{-0.856175f,0.160369f,0.491168f},{-0.765669f,-0.0168231f,0.643014f}, -{-0.656838f,-0.115393f,0.74515f},{-0.492626f,-0.214217f,0.843463f},{-0.212263f,-0.358894f,0.908922f}, -{0.169484f,-0.501572f,0.848352f},{0.583877f,-0.521011f,0.622604f},{0.92203f,-0.305082f,0.238299f}, -{0.986224f,0.0586274f,-0.154675f},{0.863745f,0.332515f,-0.378654f},{0.693047f,0.521436f,-0.497785f}, -{0.463554f,0.677117f,-0.571516f},{0.283588f,0.75075f,-0.596617f},{0.2633f,0.769891f,-0.581327f}, -{0.13991f,0.91351f,0.382f},{0.136627f,0.763066f,0.631715f},{0.230294f,0.853362f,0.467694f}, -{0.193795f,0.727236f,0.658461f},{0.346303f,0.741592f,0.574556f},{0.248184f,0.665563f,0.703868f}, -{0.410724f,0.601945f,0.684812f},{0.282327f,0.587202f,0.758607f},{0.420812f,0.474512f,0.773147f}, -{0.286105f,0.519799f,0.804955f},{0.394192f,0.388462f,0.832892f},{0.271441f,0.482971f,0.832501f}, -{0.348961f,0.345727f,0.871034f},{0.253473f,0.469115f,0.845981f},{0.288397f,0.331318f,0.898363f}, -{0.227904f,0.465937f,0.854963f},{0.205609f,0.337301f,0.918669f},{0.183354f,0.479033f,0.858434f}, -{0.0927382f,0.374539f,0.922562f},{0.122055f,0.518722f,0.846186f},{-0.0476519f,0.463624f,0.88475f}, -{0.0593579f,0.58286f,0.810401f},{-0.180078f,0.598609f,0.780538f},{0.0151815f,0.654338f,0.75605f}, -{-0.249804f,0.732175f,0.633655f},{0.000536048f,0.713225f,0.700935f},{-0.238979f,0.831312f,0.501806f}, -{0.0116876f,0.752305f,0.658711f},{-0.164827f,0.894338f,0.415923f},{0.0414349f,0.773338f,0.632638f}, -{-0.0495883f,0.923567f,0.380217f},{0.0846698f,0.777271f,0.623443f},{0.119615f,0.992173f,-0.035852f}, -{0.26578f,0.955061f,0.131222f},{0.488134f,0.802358f,0.343433f},{0.600233f,0.576303f,0.554613f}, -{0.602773f,0.370741f,0.706552f},{0.548009f,0.239525f,0.801444f},{0.470781f,0.173944f,0.864933f}, -{0.366503f,0.136982f,0.920278f},{0.215389f,0.104768f,0.970892f},{-0.00346019f,0.0981433f,0.995166f}, -{-0.301978f,0.191862f,0.933809f},{-0.572361f,0.418812f,0.704982f},{-0.653782f,0.645133f,0.39544f}, -{-0.583085f,0.795283f,0.165942f},{-0.434465f,0.90003f,0.0344495f},{-0.232282f,0.972393f,-0.0223026f}, -{-0.0629828f,0.980353f,0.186927f},{-0.0646003f,0.980455f,0.185836f},{0.0658797f,0.902312f,-0.426021f}, -{0.275788f,0.926084f,-0.257506f},{0.625976f,0.778258f,0.0496934f},{0.790612f,0.479302f,0.381054f}, -{0.772137f,0.214951f,0.597996f},{0.688996f,0.0606832f,0.72222f},{0.585024f,-0.0246278f,0.810642f}, -{0.429108f,-0.106702f,0.896929f},{0.181204f,-0.217596f,0.959071f},{-0.160618f,-0.312677f,0.936181f}, -{-0.582391f,-0.272557f,0.765855f},{-0.918424f,-0.000439169f,0.395597f},{-0.945892f,0.324477f,-0.00184075f}, -{-0.807139f,0.541361f,-0.235489f},{-0.61697f,0.701103f,-0.357495f},{-0.370398f,0.829668f,-0.41768f}, -{-0.185885f,0.94934f,-0.253379f},{-0.183324f,0.950425f,-0.251168f},{0.0297826f,0.831883f,-0.554151f}, -{0.180719f,0.855135f,-0.485886f},{0.598032f,0.776013f,-0.200402f},{0.857929f,0.470815f,0.20565f}, -{0.856175f,0.16037f,0.491167f},{0.765669f,-0.0168233f,0.643014f},{0.656839f,-0.115393f,0.745149f}, -{0.492626f,-0.214217f,0.843463f},{0.212263f,-0.358894f,0.908922f},{-0.169484f,-0.501571f,0.848352f}, -{-0.583876f,-0.521011f,0.622604f},{-0.92203f,-0.305082f,0.238299f},{-0.986224f,0.0586269f,-0.154675f}, -{-0.863745f,0.332514f,-0.378654f},{-0.693047f,0.521436f,-0.497785f},{-0.463554f,0.677117f,-0.571516f}, -{-0.283588f,0.75075f,-0.596617f},{-0.2633f,0.769891f,-0.581327f} -}, - -//lid 6 -{ -{0.18588f,0.467699f,-0.864122f},{0.164569f,0.222549f,-0.960931f},{0.0776709f,0.28004f,-0.956841f}, -{0.119855f,0.505696f,-0.854345f},{-0.077628f,0.383854f,-0.920125f},{0.0565274f,0.570373f,-0.819439f}, -{-0.212757f,0.548379f,-0.808712f},{0.0137009f,0.645146f,-0.763937f},{-0.270868f,0.708583f,-0.651568f}, -{0.00144722f,0.706519f,-0.707693f},{-0.242624f,0.819741f,-0.518804f},{0.0133808f,0.74627f,-0.665509f}, -{-0.155487f,0.88262f,-0.443629f},{0.0427661f,0.769529f,-0.637179f},{-0.0347823f,0.907459f,-0.418699f}, -{0.0908849f,0.777336f,-0.622486f},{0.103208f,0.895443f,-0.433047f},{0.155223f,0.763664f,-0.626677f}, -{0.243236f,0.841282f,-0.482785f},{0.223441f,0.724979f,-0.651521f},{0.36442f,0.743646f,-0.560525f}, -{0.280273f,0.665542f,-0.691738f},{0.443866f,0.618457f,-0.648454f},{0.313675f,0.598365f,-0.73727f}, -{0.471772f,0.49537f,-0.729411f},{0.321239f,0.540099f,-0.777881f},{0.454403f,0.395144f,-0.79836f}, -{0.309857f,0.498331f,-0.809725f},{0.401749f,0.320453f,-0.85785f},{0.284175f,0.47071f,-0.83527f}, -{0.320433f,0.269367f,-0.908165f},{0.242663f,0.45807f,-0.855153f},{0.0869607f,-0.178282f,-0.980129f}, -{-0.0317048f,-0.109602f,-0.99347f},{-0.342502f,0.000655748f,-0.939517f},{-0.633753f,0.283601f,-0.719671f}, -{-0.708418f,0.584765f,-0.395213f},{-0.606138f,0.778497f,-0.162908f},{-0.434607f,0.898751f,-0.0579898f}, -{-0.220487f,0.974733f,-0.0357786f},{0.0234381f,0.996835f,-0.0759604f},{0.27529f,0.944113f,-0.181291f}, -{0.493509f,0.800437f,-0.340221f},{0.626126f,0.593557f,-0.505625f},{0.662475f,0.390644f,-0.639159f}, -{0.627328f,0.22911f,-0.744291f},{0.535737f,0.0995679f,-0.838494f},{0.392946f,-0.0108421f,-0.919498f}, -{0.300356f,0.11447f,-0.946933f},{0.315126f,0.107501f,-0.942942f},{-0.0254372f,-0.545227f,-0.837903f}, -{-0.178221f,-0.515778f,-0.83798f},{-0.581813f,-0.444985f,-0.680795f},{-0.932889f,-0.139635f,-0.331996f}, -{-0.967129f,0.24585f,0.0649586f},{-0.809593f,0.507989f,0.294119f},{-0.609129f,0.691194f,0.38886f}, -{-0.361291f,0.836961f,0.411052f},{-0.0620213f,0.929727f,0.362989f},{0.282972f,0.934857f,0.214405f}, -{0.615301f,0.786983f,-0.0454198f},{0.801931f,0.50525f,-0.318792f},{0.828411f,0.229084f,-0.511132f}, -{0.767789f,0.0192651f,-0.640413f},{0.635529f,-0.158819f,-0.755566f},{0.419196f,-0.323113f,-0.848453f}, -{0.287092f,-0.204083f,-0.93591f},{0.332725f,-0.234094f,-0.913506f},{-0.0777156f,-0.636227f,-0.767578f}, -{-0.185381f,-0.665275f,-0.723217f},{-0.574317f,-0.624742f,-0.529015f},{-0.915037f,-0.372036f,-0.155874f}, -{-0.970312f,0.0155884f,0.241355f},{-0.835734f,0.302763f,0.458131f},{-0.661248f,0.502507f,0.55699f}, -{-0.4389f,0.667767f,0.60121f},{-0.159616f,0.794844f,0.585445f},{0.18591f,0.864414f,0.467146f}, -{0.581437f,0.789583f,0.196187f},{0.849235f,0.504775f,-0.154925f},{0.893859f,0.18134f,-0.410039f}, -{0.828751f,-0.0575603f,-0.556649f},{0.696171f,-0.255841f,-0.67074f},{0.464342f,-0.444749f,-0.765888f}, -{0.24798f,-0.5422f,-0.802823f},{0.288333f,-0.569201f,-0.769983f},{-0.164569f,0.222549f,-0.960931f}, -{-0.18588f,0.467699f,-0.864122f},{-0.0776708f,0.28004f,-0.956841f},{-0.119855f,0.505696f,-0.854346f}, -{0.0776279f,0.383854f,-0.920125f},{-0.0565274f,0.570373f,-0.819439f},{0.212757f,0.548378f,-0.808713f}, -{-0.0137025f,0.645143f,-0.763939f},{0.270868f,0.708582f,-0.651568f},{-0.00144792f,0.706521f,-0.707691f}, -{0.242623f,0.819742f,-0.518803f},{-0.0133807f,0.74627f,-0.665509f},{0.155487f,0.88262f,-0.443629f}, -{-0.042766f,0.769529f,-0.637179f},{0.0347824f,0.907459f,-0.418699f},{-0.0908848f,0.777336f,-0.622486f}, -{-0.103208f,0.895443f,-0.433047f},{-0.155223f,0.763664f,-0.626676f},{-0.243236f,0.841282f,-0.482785f}, -{-0.223441f,0.724979f,-0.651521f},{-0.36442f,0.743646f,-0.560525f},{-0.280274f,0.665541f,-0.691738f}, -{-0.443867f,0.618457f,-0.648455f},{-0.313675f,0.598365f,-0.73727f},{-0.471772f,0.49537f,-0.729411f}, -{-0.32124f,0.540099f,-0.777881f},{-0.454403f,0.395144f,-0.79836f},{-0.309857f,0.49833f,-0.809726f}, -{-0.401749f,0.320453f,-0.85785f},{-0.284176f,0.47071f,-0.83527f},{-0.320433f,0.269367f,-0.908165f}, -{-0.242663f,0.45807f,-0.855153f},{-0.0869606f,-0.178282f,-0.980129f},{0.031705f,-0.109602f,-0.99347f}, -{0.342502f,0.000655692f,-0.939517f},{0.633753f,0.283601f,-0.719671f},{0.708419f,0.584765f,-0.395213f}, -{0.606138f,0.778498f,-0.162908f},{0.434606f,0.898752f,-0.0579898f},{0.220487f,0.974733f,-0.0357785f}, -{-0.0234378f,0.996835f,-0.0759606f},{-0.275291f,0.944112f,-0.181292f},{-0.493509f,0.800437f,-0.340221f}, -{-0.626126f,0.593557f,-0.505625f},{-0.662475f,0.390645f,-0.639158f},{-0.627328f,0.22911f,-0.744291f}, -{-0.535737f,0.099568f,-0.838494f},{-0.392946f,-0.0108418f,-0.919498f},{-0.300357f,0.11447f,-0.946933f}, -{-0.315126f,0.107502f,-0.942942f},{0.0254373f,-0.545227f,-0.837903f},{0.178221f,-0.515778f,-0.83798f}, -{0.581813f,-0.444985f,-0.680795f},{0.932888f,-0.139635f,-0.331996f},{0.967129f,0.24585f,0.0649582f}, -{0.809593f,0.507989f,0.294119f},{0.609129f,0.691194f,0.38886f},{0.361291f,0.836962f,0.411052f}, -{0.0620221f,0.929727f,0.36299f},{-0.282972f,0.934857f,0.214405f},{-0.615301f,0.786982f,-0.0454205f}, -{-0.801931f,0.50525f,-0.318792f},{-0.828411f,0.229084f,-0.511132f},{-0.767789f,0.0192654f,-0.640413f}, -{-0.635529f,-0.158819f,-0.755566f},{-0.419196f,-0.323113f,-0.848453f},{-0.287092f,-0.204083f,-0.935911f}, -{-0.332725f,-0.234094f,-0.913506f},{0.0777156f,-0.636227f,-0.767578f},{0.185381f,-0.665275f,-0.723217f}, -{0.574317f,-0.624742f,-0.529015f},{0.915037f,-0.372037f,-0.155874f},{0.970312f,0.0155882f,0.241355f}, -{0.835734f,0.302764f,0.45813f},{0.661248f,0.502507f,0.55699f},{0.4389f,0.667767f,0.60121f}, -{0.159616f,0.794844f,0.585445f},{-0.185909f,0.864414f,0.467147f},{-0.581437f,0.789583f,0.196187f}, -{-0.849235f,0.504775f,-0.154925f},{-0.893859f,0.18134f,-0.410039f},{-0.828751f,-0.0575601f,-0.556649f}, -{-0.696171f,-0.255841f,-0.67074f},{-0.464342f,-0.44475f,-0.765888f},{-0.24798f,-0.5422f,-0.802823f}, -{-0.288333f,-0.569202f,-0.769983f},{-0.164231f,0.647208f,0.744413f},{-0.168401f,0.825722f,0.538354f}, -{-0.252556f,0.752327f,0.608457f},{-0.218923f,0.609165f,0.762228f},{-0.356681f,0.632058f,0.687955f}, -{-0.270207f,0.544858f,0.7938f},{-0.412454f,0.495243f,0.764602f},{-0.299424f,0.470627f,0.829973f}, -{-0.422015f,0.380859f,0.822709f},{-0.301851f,0.415248f,0.858169f},{-0.401892f,0.308829f,0.862037f}, -{-0.292041f,0.388966f,0.873738f},{-0.363526f,0.271835f,0.891041f},{-0.278694f,0.377274f,0.883173f}, -{-0.304694f,0.252246f,0.918441f},{-0.251401f,0.371711f,0.89366f},{-0.21953f,0.245247f,0.944278f}, -{-0.203426f,0.38298f,0.901079f},{-0.106344f,0.266344f,0.957994f},{-0.14537f,0.419089f,0.896232f}, -{0.027634f,0.342629f,0.939064f},{-0.0921043f,0.475795f,0.87472f},{0.150223f,0.478986f,0.864873f}, -{-0.0560432f,0.540989f,0.83916f},{0.212316f,0.629316f,0.747585f},{-0.0446826f,0.598166f,0.800126f}, -{0.197281f,0.745623f,0.636495f},{-0.0554218f,0.637032f,0.768843f},{0.122751f,0.816344f,0.56437f}, -{-0.0810959f,0.657415f,0.749152f},{0.0109646f,0.843844f,0.536477f},{-0.11762f,0.661328f,0.740818f}, -{-0.150429f,0.979508f,0.133919f},{-0.290601f,0.909681f,0.2967f},{-0.492893f,0.728683f,0.475477f}, -{-0.588316f,0.49644f,0.638304f},{-0.591448f,0.302121f,0.747604f},{-0.550134f,0.182488f,0.814893f}, -{-0.484732f,0.115851f,0.866957f},{-0.378527f,0.0607272f,0.923596f},{-0.212839f,-0.000689027f,0.977087f}, -{0.015943f,-0.0365482f,0.999205f},{0.305805f,0.0359447f,0.951415f},{0.57072f,0.278041f,0.77264f}, -{0.651417f,0.564719f,0.506703f},{0.56895f,0.766234f,0.298632f},{0.409059f,0.893493f,0.185313f}, -{0.201877f,0.968758f,0.144064f},{0.0304928f,0.931217f,0.363189f},{0.0245996f,0.929896f,0.366999f}, -{-0.10373f,0.955245f,-0.277031f},{-0.304298f,0.947159f,-0.101449f},{-0.625893f,0.75942f,0.177593f}, -{-0.773097f,0.445834f,0.451168f},{-0.7627f,0.179062f,0.62147f},{-0.697411f,0.0163115f,0.716486f}, -{-0.606449f,-0.0938258f,0.789567f},{-0.441344f,-0.218556f,0.870316f},{-0.163703f,-0.363292f,0.917181f}, -{0.189081f,-0.461406f,0.866806f},{0.58293f,-0.414287f,0.69897f},{0.912069f,-0.125103f,0.390487f}, -{0.962139f,0.268252f,0.0482682f},{0.817556f,0.55344f,-0.159083f},{0.610798f,0.750085f,-0.25357f}, -{0.349988f,0.891328f,-0.288173f},{0.158433f,0.982699f,-0.0959295f},{0.160262f,0.982234f,-0.0976385f}, -{-0.0706087f,0.906588f,-0.416067f},{-0.213969f,0.914498f,-0.343382f},{-0.603053f,0.79487f,-0.0671517f}, -{-0.837519f,0.469329f,0.279806f},{-0.845853f,0.147687f,0.512563f},{-0.772128f,-0.0502244f,0.633479f}, -{-0.675299f,-0.184114f,0.714194f},{-0.504383f,-0.337547f,0.79477f},{-0.192974f,-0.522644f,0.830424f}, -{0.200919f,-0.646592f,0.735901f},{0.584482f,-0.62365f,0.519077f},{0.903386f,-0.383047f,0.19279f}, -{0.989227f,0.0196845f,-0.145061f},{0.873732f,0.349006f,-0.338803f},{0.693124f,0.580565f,-0.427228f}, -{0.447705f,0.760557f,-0.470226f},{0.253468f,0.841137f,-0.477748f},{0.241386f,0.850733f,-0.46689f}, -{0.168401f,0.825722f,0.538354f},{0.164232f,0.647208f,0.744413f},{0.252556f,0.752327f,0.608457f}, -{0.218923f,0.609165f,0.762227f},{0.35668f,0.632058f,0.687954f},{0.270207f,0.544859f,0.793799f}, -{0.412454f,0.495243f,0.764602f},{0.299424f,0.470627f,0.829973f},{0.422015f,0.380859f,0.822709f}, -{0.301851f,0.415248f,0.85817f},{0.401892f,0.308829f,0.862037f},{0.292041f,0.388965f,0.873738f}, -{0.363526f,0.271835f,0.891041f},{0.278694f,0.377274f,0.883173f},{0.304695f,0.252246f,0.918441f}, -{0.251401f,0.371711f,0.89366f},{0.21953f,0.245247f,0.944278f},{0.203426f,0.38298f,0.901079f}, -{0.106344f,0.266344f,0.957994f},{0.14537f,0.419089f,0.896232f},{-0.0276341f,0.342629f,0.939064f}, -{0.0921045f,0.475795f,0.874721f},{-0.150223f,0.478986f,0.864873f},{0.0560429f,0.540989f,0.83916f}, -{-0.212316f,0.629316f,0.747585f},{0.0446824f,0.598166f,0.800126f},{-0.197281f,0.745623f,0.636495f}, -{0.0554217f,0.637032f,0.768842f},{-0.122751f,0.816344f,0.56437f},{0.0810955f,0.657415f,0.749152f}, -{-0.0109649f,0.843844f,0.536477f},{0.11762f,0.661328f,0.740818f},{0.150429f,0.979508f,0.133919f}, -{0.290601f,0.909681f,0.2967f},{0.492893f,0.728683f,0.475477f},{0.588316f,0.49644f,0.638304f}, -{0.591449f,0.30212f,0.747604f},{0.550134f,0.182488f,0.814893f},{0.484732f,0.115851f,0.866957f}, -{0.378527f,0.0607272f,0.923596f},{0.212839f,-0.000689037f,0.977087f},{-0.015943f,-0.0365482f,0.999205f}, -{-0.305805f,0.0359448f,0.951415f},{-0.57072f,0.278041f,0.77264f},{-0.651417f,0.564719f,0.506703f}, -{-0.56895f,0.766234f,0.298632f},{-0.409059f,0.893493f,0.185313f},{-0.201877f,0.968758f,0.144064f}, -{-0.0304928f,0.931217f,0.363188f},{-0.0245995f,0.929896f,0.366999f},{0.103731f,0.955245f,-0.277031f}, -{0.304298f,0.947159f,-0.101449f},{0.625893f,0.75942f,0.177593f},{0.773097f,0.445834f,0.451168f}, -{0.7627f,0.179062f,0.621471f},{0.697411f,0.0163118f,0.716486f},{0.606449f,-0.0938259f,0.789567f}, -{0.441344f,-0.218556f,0.870316f},{0.163703f,-0.363292f,0.917181f},{-0.189081f,-0.461406f,0.866806f}, -{-0.58293f,-0.414287f,0.69897f},{-0.912069f,-0.125103f,0.390487f},{-0.962139f,0.268252f,0.0482685f}, -{-0.817556f,0.55344f,-0.159082f},{-0.610798f,0.750085f,-0.25357f},{-0.349988f,0.891328f,-0.288172f}, -{-0.158433f,0.982699f,-0.0959295f},{-0.160262f,0.982234f,-0.0976387f},{0.0706102f,0.906589f,-0.416066f}, -{0.213969f,0.914498f,-0.343382f},{0.603053f,0.79487f,-0.0671515f},{0.837519f,0.469329f,0.279806f}, -{0.845853f,0.147687f,0.512564f},{0.772128f,-0.0502239f,0.633479f},{0.675299f,-0.184114f,0.714195f}, -{0.504383f,-0.337547f,0.79477f},{0.192974f,-0.522644f,0.830424f},{-0.200919f,-0.646592f,0.735901f}, -{-0.584483f,-0.62365f,0.519077f},{-0.903386f,-0.383047f,0.19279f},{-0.989227f,0.0196847f,-0.145061f}, -{-0.873732f,0.349006f,-0.338802f},{-0.693124f,0.580565f,-0.427228f},{-0.447705f,0.760557f,-0.470226f}, -{-0.253469f,0.841136f,-0.477748f},{-0.241386f,0.850734f,-0.466889f} -}, - -//lid 5 -{ -{0.193444f,0.407529f,-0.892468f},{0.165525f,0.155217f,-0.973914f},{0.0817702f,0.2083f,-0.974641f}, -{0.130027f,0.443981f,-0.886552f},{-0.0700469f,0.308246f,-0.948724f},{0.0698369f,0.508184f,-0.858413f}, -{-0.202986f,0.479244f,-0.853887f},{0.0285804f,0.58596f,-0.809836f},{-0.259965f,0.655945f,-0.708629f}, -{0.0167872f,0.652994f,-0.757177f},{-0.22937f,0.781713f,-0.579925f},{0.0293912f,0.697471f,-0.71601f}, -{-0.13996f,0.851318f,-0.505638f},{0.0589978f,0.723127f,-0.688191f},{-0.0190551f,0.876732f,-0.480602f}, -{0.105824f,0.731903f,-0.673142f},{0.117151f,0.862225f,-0.492791f},{0.168272f,0.71841f,-0.674961f}, -{0.254554f,0.804206f,-0.53708f},{0.23545f,0.678528f,-0.695818f},{0.373057f,0.702449f,-0.60613f}, -{0.29162f,0.616637f,-0.731243f},{0.450121f,0.574444f,-0.683671f},{0.323966f,0.547484f,-0.771562f}, -{0.476569f,0.450249f,-0.755088f},{0.330806f,0.488291f,-0.807552f},{0.458733f,0.348468f,-0.817395f}, -{0.31924f,0.444994f,-0.8367f},{0.405583f,0.269649f,-0.87338f},{0.29274f,0.414652f,-0.861608f}, -{0.32327f,0.212095f,-0.922232f},{0.24994f,0.399549f,-0.881981f},{0.0759488f,-0.244867f,-0.966577f}, -{-0.0372175f,-0.181635f,-0.982661f},{-0.339106f,-0.0810756f,-0.937248f},{-0.630476f,0.204915f,-0.748672f}, -{-0.71242f,0.539226f,-0.449103f},{-0.6053f,0.763821f,-0.224031f},{-0.425226f,0.896448f,-0.124756f}, -{-0.206691f,0.972417f,-0.108088f},{0.0371f,0.98819f,-0.148678f},{0.285431f,0.926163f,-0.246478f}, -{0.498493f,0.773669f,-0.391077f},{0.627033f,0.56197f,-0.539462f},{0.662497f,0.357666f,-0.658159f}, -{0.628481f,0.192969f,-0.753508f},{0.53626f,0.0552887f,-0.84224f},{0.389472f,-0.0657248f,-0.91869f}, -{0.295455f,0.056842f,-0.953664f},{0.316848f,0.0475216f,-0.947285f},{-0.0397306f,-0.599632f,-0.799289f}, -{-0.189195f,-0.569456f,-0.799953f},{-0.578897f,-0.49671f,-0.64665f},{-0.925553f,-0.191261f,-0.326758f}, -{-0.975049f,0.218034f,0.0417236f},{-0.819003f,0.512483f,0.258062f},{-0.611015f,0.715488f,0.338728f}, -{-0.354073f,0.868841f,0.346045f},{-0.0474662f,0.956162f,0.288965f},{0.295731f,0.944569f,0.142591f}, -{0.617105f,0.780581f,-0.0993728f},{0.798058f,0.491737f,-0.348278f},{0.826967f,0.210536f,-0.521345f}, -{0.770201f,-0.00938286f,-0.637732f},{0.637273f,-0.202705f,-0.743501f},{0.413738f,-0.379248f,-0.827642f}, -{0.2762f,-0.263919f,-0.924154f},{0.324592f,-0.293701f,-0.899099f},{-0.089634f,-0.686727f,-0.721368f}, -{-0.196968f,-0.709494f,-0.676625f},{-0.57606f,-0.656331f,-0.487222f},{-0.907761f,-0.396805f,-0.13607f}, -{-0.97175f,0.00107842f,0.236008f},{-0.843724f,0.309278f,0.438722f},{-0.667858f,0.529876f,0.522683f}, -{-0.437969f,0.71117f,0.549927f},{-0.146691f,0.841099f,0.520609f},{0.20301f,0.895177f,0.396793f}, -{0.586122f,0.798484f,0.137423f},{0.843686f,0.503519f,-0.186178f},{0.891329f,0.172679f,-0.419183f}, -{0.830646f,-0.0802118f,-0.550994f},{0.698204f,-0.297244f,-0.651273f},{0.46035f,-0.500613f,-0.733119f}, -{0.239202f,-0.60152f,-0.762205f},{0.275863f,-0.623816f,-0.731268f},{-0.165525f,0.155217f,-0.973914f}, -{-0.193444f,0.407529f,-0.892468f},{-0.0817703f,0.2083f,-0.974641f},{-0.130028f,0.443981f,-0.886552f}, -{0.070047f,0.308246f,-0.948724f},{-0.0698366f,0.508184f,-0.858412f},{0.202986f,0.479244f,-0.853886f}, -{-0.0285805f,0.58596f,-0.809836f},{0.259965f,0.655945f,-0.708629f},{-0.0167873f,0.652994f,-0.757177f}, -{0.22937f,0.781714f,-0.579925f},{-0.0293914f,0.697471f,-0.71601f},{0.13996f,0.851318f,-0.505638f}, -{-0.0589978f,0.723127f,-0.688191f},{0.0190551f,0.876732f,-0.480602f},{-0.105824f,0.731903f,-0.673142f}, -{-0.117152f,0.862225f,-0.492791f},{-0.168272f,0.71841f,-0.674961f},{-0.254554f,0.804206f,-0.53708f}, -{-0.23545f,0.678528f,-0.695818f},{-0.373057f,0.702449f,-0.60613f},{-0.29162f,0.616637f,-0.731243f}, -{-0.450121f,0.574444f,-0.683671f},{-0.323966f,0.547484f,-0.771561f},{-0.476569f,0.450249f,-0.755088f}, -{-0.330806f,0.488291f,-0.807552f},{-0.458733f,0.348468f,-0.817394f},{-0.319241f,0.444994f,-0.836699f}, -{-0.405583f,0.269649f,-0.87338f},{-0.29274f,0.414652f,-0.861608f},{-0.32327f,0.212094f,-0.922232f}, -{-0.249939f,0.399549f,-0.881981f},{-0.0759488f,-0.244867f,-0.966577f},{0.0372174f,-0.181635f,-0.982661f}, -{0.339106f,-0.0810758f,-0.937248f},{0.630476f,0.204915f,-0.748672f},{0.71242f,0.539226f,-0.449103f}, -{0.6053f,0.763821f,-0.224031f},{0.425226f,0.896448f,-0.124756f},{0.206691f,0.972417f,-0.108088f}, -{-0.0370999f,0.98819f,-0.148678f},{-0.285431f,0.926163f,-0.246478f},{-0.498494f,0.773669f,-0.391077f}, -{-0.627033f,0.56197f,-0.539462f},{-0.662496f,0.357666f,-0.658159f},{-0.62848f,0.192969f,-0.753509f}, -{-0.53626f,0.0552887f,-0.84224f},{-0.389472f,-0.0657248f,-0.91869f},{-0.295455f,0.0568416f,-0.953664f}, -{-0.316847f,0.0475212f,-0.947285f},{0.0397307f,-0.599632f,-0.799289f},{0.189195f,-0.569456f,-0.799953f}, -{0.578897f,-0.496711f,-0.64665f},{0.925553f,-0.191262f,-0.326758f},{0.975049f,0.218034f,0.0417234f}, -{0.819003f,0.512483f,0.258062f},{0.611015f,0.715488f,0.338728f},{0.354073f,0.868841f,0.346045f}, -{0.0474661f,0.956162f,0.288965f},{-0.295731f,0.944569f,0.142591f},{-0.617106f,0.78058f,-0.0993727f}, -{-0.798058f,0.491737f,-0.348278f},{-0.826967f,0.210536f,-0.521344f},{-0.770201f,-0.00938315f,-0.637733f}, -{-0.637273f,-0.202705f,-0.743501f},{-0.413738f,-0.379248f,-0.827642f},{-0.2762f,-0.263918f,-0.924154f}, -{-0.324592f,-0.293701f,-0.8991f},{0.0896339f,-0.686727f,-0.721368f},{0.196968f,-0.709494f,-0.676625f}, -{0.57606f,-0.656331f,-0.487222f},{0.907761f,-0.396806f,-0.136069f},{0.971751f,0.001078f,0.236008f}, -{0.843724f,0.309278f,0.438722f},{0.667858f,0.529876f,0.522683f},{0.437969f,0.71117f,0.549927f}, -{0.146691f,0.841099f,0.520609f},{-0.203011f,0.895177f,0.396793f},{-0.586122f,0.798484f,0.137422f}, -{-0.843686f,0.503519f,-0.186178f},{-0.89133f,0.172678f,-0.419182f},{-0.830646f,-0.0802122f,-0.550993f}, -{-0.698204f,-0.297244f,-0.651273f},{-0.46035f,-0.500613f,-0.733119f},{-0.239203f,-0.601519f,-0.762205f}, -{-0.275863f,-0.623816f,-0.731268f},{-0.180068f,0.577236f,0.796476f},{-0.184464f,0.761676f,0.621147f}, -{-0.263986f,0.684387f,0.679651f},{-0.233173f,0.53943f,0.809102f},{-0.360888f,0.565359f,0.741707f}, -{-0.281882f,0.476613f,0.832696f},{-0.413008f,0.435886f,0.799642f},{-0.307999f,0.408132f,0.859398f}, -{-0.423679f,0.331379f,0.843021f},{-0.309908f,0.360869f,0.87962f},{-0.407224f,0.266101f,0.873704f}, -{-0.302213f,0.339523f,0.890725f},{-0.371172f,0.229158f,0.899843f},{-0.289523f,0.327562f,0.899378f}, -{-0.31079f,0.203294f,0.928483f},{-0.259276f,0.319654f,0.911371f},{-0.221476f,0.186725f,0.957122f}, -{-0.208676f,0.329032f,0.920974f},{-0.105951f,0.197938f,0.974472f},{-0.152893f,0.361911f,0.919589f}, -{0.0247945f,0.266447f,0.963531f},{-0.105696f,0.412464f,0.904821f},{0.139783f,0.401472f,0.905141f}, -{-0.0747584f,0.471703f,0.878582f},{0.194322f,0.559025f,0.806058f},{-0.065496f,0.526649f,0.847556f}, -{0.173984f,0.683979f,0.708451f},{-0.0765603f,0.565675f,0.821066f},{0.0973667f,0.758329f,0.64456f}, -{-0.101272f,0.586349f,0.803703f},{-0.0128182f,0.784094f,0.620509f},{-0.13559f,0.590702f,0.795416f}, -{-0.167613f,0.95658f,0.238456f},{-0.302976f,0.868131f,0.393134f},{-0.492446f,0.677089f,0.546852f}, -{-0.580527f,0.448426f,0.679634f},{-0.58693f,0.263618f,0.765519f},{-0.554051f,0.148408f,0.819147f}, -{-0.493685f,0.0752757f,0.866377f},{-0.383034f,0.00329912f,0.923728f},{-0.205087f,-0.0772348f,0.975691f}, -{0.0313089f,-0.126159f,0.991516f},{0.314577f,-0.0622055f,0.947191f},{0.572765f,0.183372f,0.798947f}, -{0.652539f,0.501707f,0.567876f},{0.561476f,0.73558f,0.379034f},{0.392032f,0.876671f,0.278852f}, -{0.180957f,0.951871f,0.247377f},{0.0093866f,0.885281f,0.464963f},{-0.00263635f,0.88147f,0.472233f}, -{-0.124483f,0.975732f,-0.180142f},{-0.318931f,0.947771f,-0.00348479f},{-0.623523f,0.739693f,0.253129f}, -{-0.76216f,0.422483f,0.49053f},{-0.758436f,0.156186f,0.632756f},{-0.704104f,-0.0146938f,0.709945f}, -{-0.618543f,-0.14637f,0.771998f},{-0.444527f,-0.300675f,0.843795f},{-0.148418f,-0.459723f,0.875572f}, -{0.208804f,-0.548394f,0.809731f},{0.584935f,-0.489972f,0.646358f},{0.905722f,-0.196085f,0.37579f}, -{0.97087f,0.227395f,0.0755174f},{0.825811f,0.553351f,-0.10881f},{0.607682f,0.772688f,-0.183509f}, -{0.337269f,0.919679f,-0.201098f},{0.141443f,0.989923f,0.00676962f},{0.143487f,0.989641f,0.00480806f}, -{-0.0933005f,0.94115f,-0.324855f},{-0.231626f,0.939611f,-0.251951f},{-0.604057f,0.796837f,0.0128559f}, -{-0.825195f,0.463072f,0.323448f},{-0.840198f,0.136845f,0.524729f},{-0.776581f,-0.0757791f,0.625444f}, -{-0.684572f,-0.236751f,0.689427f},{-0.505898f,-0.425245f,0.750489f},{-0.17675f,-0.62361f,0.761492f}, -{0.21899f,-0.722456f,0.65582f},{0.585977f,-0.671017f,0.454276f},{0.893638f,-0.418293f,0.162611f}, -{0.990147f,-0.00181478f,-0.140023f},{0.881177f,0.355667f,-0.311494f},{0.694655f,0.61195f,-0.378116f}, -{0.438808f,0.804679f,-0.399924f},{0.236289f,0.887341f,-0.39597f},{0.228909f,0.892442f,-0.388777f}, -{0.184464f,0.761676f,0.621147f},{0.180068f,0.577236f,0.796476f},{0.263986f,0.684387f,0.679651f}, -{0.233173f,0.53943f,0.809102f},{0.360888f,0.565359f,0.741707f},{0.281881f,0.476613f,0.832696f}, -{0.413008f,0.435886f,0.799643f},{0.307998f,0.408132f,0.859398f},{0.423679f,0.331378f,0.843021f}, -{0.309908f,0.360868f,0.87962f},{0.407224f,0.266101f,0.873704f},{0.302213f,0.339523f,0.890725f}, -{0.371172f,0.229158f,0.899843f},{0.289523f,0.327562f,0.899377f},{0.310791f,0.203294f,0.928483f}, -{0.259276f,0.319654f,0.911371f},{0.221476f,0.186725f,0.957122f},{0.208676f,0.329032f,0.920974f}, -{0.105951f,0.197938f,0.974472f},{0.152893f,0.361911f,0.919589f},{-0.0247946f,0.266447f,0.96353f}, -{0.105696f,0.412464f,0.904821f},{-0.139783f,0.401473f,0.905141f},{0.0747584f,0.471704f,0.878582f}, -{-0.194321f,0.559026f,0.806058f},{0.065496f,0.526648f,0.847556f},{-0.173984f,0.683979f,0.708451f}, -{0.0765603f,0.565675f,0.821066f},{-0.0973666f,0.758329f,0.64456f},{0.101272f,0.586349f,0.803703f}, -{0.0128182f,0.784094f,0.620509f},{0.13559f,0.590702f,0.795416f},{0.167613f,0.95658f,0.238456f}, -{0.302976f,0.868131f,0.393134f},{0.492446f,0.677089f,0.546852f},{0.580527f,0.448426f,0.679635f}, -{0.58693f,0.263618f,0.765518f},{0.554051f,0.148408f,0.819147f},{0.493685f,0.0752757f,0.866377f}, -{0.383034f,0.00329909f,0.923728f},{0.205088f,-0.0772348f,0.975691f},{-0.0313088f,-0.126159f,0.991516f}, -{-0.314577f,-0.0622053f,0.947191f},{-0.572765f,0.183371f,0.798946f},{-0.65254f,0.501707f,0.567876f}, -{-0.561476f,0.73558f,0.379034f},{-0.392032f,0.876671f,0.278852f},{-0.180957f,0.951871f,0.247377f}, -{-0.00938683f,0.885281f,0.464963f},{0.0026364f,0.88147f,0.472233f},{0.124484f,0.975732f,-0.180142f}, -{0.318931f,0.947771f,-0.00348472f},{0.623523f,0.739693f,0.253129f},{0.76216f,0.422484f,0.49053f}, -{0.758436f,0.156185f,0.632756f},{0.704104f,-0.0146936f,0.709945f},{0.618543f,-0.14637f,0.771998f}, -{0.444527f,-0.300675f,0.843795f},{0.148418f,-0.459723f,0.875572f},{-0.208804f,-0.548394f,0.809732f}, -{-0.584935f,-0.489972f,0.646358f},{-0.905722f,-0.196085f,0.37579f},{-0.97087f,0.227394f,0.0755171f}, -{-0.825811f,0.55335f,-0.10881f},{-0.607682f,0.772688f,-0.183509f},{-0.337269f,0.919679f,-0.201098f}, -{-0.141444f,0.989923f,0.0067696f},{-0.143487f,0.989641f,0.00480797f},{0.0933005f,0.94115f,-0.324856f}, -{0.231626f,0.939611f,-0.251951f},{0.604057f,0.796837f,0.012856f},{0.825195f,0.463072f,0.323448f}, -{0.840198f,0.136845f,0.524729f},{0.77658f,-0.0757789f,0.625444f},{0.684572f,-0.236751f,0.689427f}, -{0.505898f,-0.425245f,0.750489f},{0.17675f,-0.62361f,0.761492f},{-0.21899f,-0.722456f,0.65582f}, -{-0.585977f,-0.671017f,0.454276f},{-0.893638f,-0.418292f,0.162611f},{-0.990147f,-0.00181415f,-0.140023f}, -{-0.881177f,0.355667f,-0.311494f},{-0.694655f,0.61195f,-0.378116f},{-0.438808f,0.804679f,-0.399924f}, -{-0.236289f,0.887341f,-0.39597f},{-0.228909f,0.892442f,-0.388777f} -}, - -//lid 4 -{ -{0.197806f,0.252423f,-0.947183f},{0.152974f,-0.0131419f,-0.988143f},{0.076402f,0.0291397f,-0.996651f}, -{0.141586f,0.282977f,-0.948619f},{-0.0651858f,0.114567f,-0.991275f},{0.0907763f,0.340981f,-0.935677f}, -{-0.188783f,0.288503f,-0.938684f},{0.0551476f,0.4203f,-0.905708f},{-0.240493f,0.497493f,-0.833465f}, -{0.0456548f,0.499267f,-0.865244f},{-0.202638f,0.66064f,-0.722836f},{0.0611606f,0.557154f,-0.828154f}, -{-0.105771f,0.750916f,-0.651872f},{0.0934525f,0.590793f,-0.801393f},{0.0175425f,0.780671f,-0.624695f}, -{0.139504f,0.603068f,-0.785397f},{0.15047f,0.76202f,-0.629829f},{0.198294f,0.591171f,-0.781791f}, -{0.281108f,0.697071f,-0.659599f},{0.261657f,0.550939f,-0.792465f},{0.391376f,0.589919f,-0.706272f}, -{0.313791f,0.487662f,-0.814691f},{0.461111f,0.461151f,-0.758101f},{0.342101f,0.418757f,-0.841195f}, -{0.483411f,0.338155f,-0.807443f},{0.346951f,0.359543f,-0.86623f},{0.463587f,0.232429f,-0.855022f}, -{0.33397f,0.311178f,-0.889737f},{0.407038f,0.141258f,-0.902422f},{0.302905f,0.271678f,-0.913477f}, -{0.318994f,0.0666247f,-0.945412f},{0.25442f,0.249147f,-0.93445f},{0.0393542f,-0.403638f,-0.914072f}, -{-0.0633284f,-0.348984f,-0.934987f},{-0.341741f,-0.268004f,-0.90077f},{-0.622255f,0.00424061f,-0.782803f}, -{-0.723034f,0.396393f,-0.565769f},{-0.608206f,0.699392f,-0.375414f},{-0.40421f,0.8671f,-0.291121f}, -{-0.172562f,0.943235f,-0.283777f},{0.0704847f,0.944233f,-0.321646f},{0.30922f,0.863119f,-0.39926f}, -{0.508772f,0.695251f,-0.507717f},{0.627113f,0.478984f,-0.61425f},{0.661072f,0.274946f,-0.698133f}, -{0.629603f,0.100423f,-0.7704f},{0.533618f,-0.0611259f,-0.843514f},{0.373406f,-0.207599f,-0.904141f}, -{0.272005f,-0.0903327f,-0.958047f},{0.308413f,-0.102804f,-0.945681f},{-0.0753382f,-0.721378f,-0.688431f}, -{-0.221636f,-0.685687f,-0.693333f},{-0.580906f,-0.600102f,-0.549932f},{-0.906914f,-0.30141f,-0.294379f}, -{-0.990017f,0.14083f,-0.00574827f},{-0.844923f,0.508554f,0.165766f},{-0.615889f,0.760283f,0.206519f}, -{-0.333857f,0.926152f,0.175449f},{-0.012656f,0.99492f,0.0998718f},{0.322707f,0.945914f,-0.0332746f}, -{0.619119f,0.751467f,-0.22801f},{0.787733f,0.452378f,-0.418129f},{0.823064f,0.161486f,-0.544508f}, -{0.775054f,-0.0856956f,-0.626057f},{0.638683f,-0.318141f,-0.700622f},{0.397172f,-0.52005f,-0.756176f}, -{0.246139f,-0.418283f,-0.874331f},{0.294987f,-0.443073f,-0.846563f},{-0.116264f,-0.796737f,-0.593036f}, -{-0.226117f,-0.802769f,-0.551755f},{-0.586943f,-0.715357f,-0.379158f},{-0.89438f,-0.440125f,-0.0798445f}, -{-0.973234f,-0.0311641f,0.227692f},{-0.864269f,0.318505f,0.389351f},{-0.684692f,0.588076f,0.430538f}, -{-0.433616f,0.80353f,0.40782f},{-0.11501f,0.932725f,0.341755f},{0.240096f,0.946978f,0.213511f}, -{0.593785f,0.804597f,-0.00656442f},{0.829619f,0.49272f,-0.262602f},{0.884967f,0.146821f,-0.441901f}, -{0.834044f,-0.142061f,-0.533093f},{0.699282f,-0.404508f,-0.589388f},{0.447792f,-0.634866f,-0.629625f}, -{0.219984f,-0.737571f,-0.638433f},{0.244461f,-0.748524f,-0.616401f},{-0.152973f,-0.0131418f,-0.988143f}, -{-0.197805f,0.252424f,-0.947183f},{-0.0764017f,0.0291398f,-0.996651f},{-0.141586f,0.282977f,-0.948619f}, -{0.0651859f,0.114567f,-0.991275f},{-0.0907765f,0.340981f,-0.935677f},{0.188783f,0.288503f,-0.938684f}, -{-0.0551476f,0.4203f,-0.905708f},{0.240493f,0.497493f,-0.833465f},{-0.0456548f,0.499267f,-0.865244f}, -{0.202638f,0.66064f,-0.722836f},{-0.0611606f,0.557154f,-0.828154f},{0.105771f,0.750916f,-0.651872f}, -{-0.0934527f,0.590793f,-0.801393f},{-0.0175423f,0.780672f,-0.624695f},{-0.139504f,0.603067f,-0.785397f}, -{-0.15047f,0.76202f,-0.629829f},{-0.198294f,0.591171f,-0.781791f},{-0.281108f,0.697071f,-0.659599f}, -{-0.261658f,0.550939f,-0.792466f},{-0.391376f,0.589919f,-0.706272f},{-0.313791f,0.487663f,-0.81469f}, -{-0.46111f,0.46115f,-0.758101f},{-0.342102f,0.418756f,-0.841196f},{-0.483411f,0.338154f,-0.807443f}, -{-0.346951f,0.359543f,-0.86623f},{-0.463587f,0.23243f,-0.855022f},{-0.333971f,0.311179f,-0.889737f}, -{-0.407039f,0.141259f,-0.902422f},{-0.302905f,0.271678f,-0.913477f},{-0.318994f,0.0666247f,-0.945412f}, -{-0.25442f,0.249147f,-0.93445f},{-0.0393541f,-0.403638f,-0.914072f},{0.0633285f,-0.348984f,-0.934987f}, -{0.341741f,-0.268004f,-0.90077f},{0.622255f,0.00424059f,-0.782803f},{0.723034f,0.396392f,-0.565769f}, -{0.608206f,0.699393f,-0.375414f},{0.40421f,0.8671f,-0.291121f},{0.172562f,0.943235f,-0.283777f}, -{-0.0704845f,0.944233f,-0.321646f},{-0.30922f,0.863119f,-0.39926f},{-0.508772f,0.695251f,-0.507717f}, -{-0.627113f,0.478984f,-0.61425f},{-0.661072f,0.274945f,-0.698133f},{-0.629603f,0.100424f,-0.7704f}, -{-0.533618f,-0.0611257f,-0.843514f},{-0.373405f,-0.207599f,-0.904141f},{-0.272005f,-0.0903328f,-0.958047f}, -{-0.308413f,-0.102804f,-0.945681f},{0.0753384f,-0.721378f,-0.688431f},{0.221636f,-0.685687f,-0.693333f}, -{0.580906f,-0.600103f,-0.549932f},{0.906914f,-0.301409f,-0.294379f},{0.990017f,0.14083f,-0.00574841f}, -{0.844923f,0.508554f,0.165766f},{0.615889f,0.760283f,0.206519f},{0.333857f,0.926152f,0.175449f}, -{0.012656f,0.99492f,0.0998718f},{-0.322707f,0.945914f,-0.0332747f},{-0.619119f,0.751468f,-0.22801f}, -{-0.787733f,0.452378f,-0.418128f},{-0.823064f,0.161485f,-0.544508f},{-0.775054f,-0.0856957f,-0.626057f}, -{-0.638683f,-0.318141f,-0.700622f},{-0.397172f,-0.52005f,-0.756176f},{-0.246138f,-0.418282f,-0.874332f}, -{-0.294987f,-0.443073f,-0.846563f},{0.116265f,-0.796737f,-0.593037f},{0.226117f,-0.802769f,-0.551755f}, -{0.586943f,-0.715357f,-0.379159f},{0.89438f,-0.440125f,-0.0798443f},{0.973234f,-0.031164f,0.227692f}, -{0.864269f,0.318505f,0.389351f},{0.684692f,0.588076f,0.430539f},{0.433616f,0.803529f,0.40782f}, -{0.11501f,0.932725f,0.341755f},{-0.240096f,0.946978f,0.213511f},{-0.593785f,0.804597f,-0.00656453f}, -{-0.829619f,0.49272f,-0.262602f},{-0.884968f,0.146821f,-0.4419f},{-0.834045f,-0.142061f,-0.533093f}, -{-0.699282f,-0.404508f,-0.589388f},{-0.447792f,-0.634866f,-0.629625f},{-0.219984f,-0.737571f,-0.638433f}, -{-0.24446f,-0.748524f,-0.616401f},{-0.208426f,0.467505f,0.859068f},{-0.21141f,0.645342f,0.734057f}, -{-0.282958f,0.5677f,0.773079f},{-0.258987f,0.431703f,0.864036f},{-0.368601f,0.458411f,0.808698f}, -{-0.303103f,0.374109f,0.876454f},{-0.416668f,0.346642f,0.840374f},{-0.324375f,0.31716f,0.891174f}, -{-0.430617f,0.259782f,0.864339f},{-0.325747f,0.282993f,0.902111f},{-0.420251f,0.203556f,0.884282f}, -{-0.320713f,0.268048f,0.908457f},{-0.386943f,0.162916f,0.907598f},{-0.307412f,0.253854f,0.917091f}, -{-0.322163f,0.122735f,0.938695f},{-0.27108f,0.240458f,0.932038f},{-0.223762f,0.0878124f,0.97068f}, -{-0.21604f,0.245468f,0.945025f},{-0.10262f,0.0825365f,0.991291f},{-0.16423f,0.272449f,0.948051f}, -{0.0234933f,0.139016f,0.990011f},{-0.126689f,0.312363f,0.941477f},{0.125261f,0.270589f,0.954511f}, -{-0.103528f,0.360547f,0.926978f},{0.165273f,0.437098f,0.884098f},{-0.0972457f,0.411136f,0.906372f}, -{0.133677f,0.573686f,0.808093f},{-0.109202f,0.451287f,0.885672f},{0.0521017f,0.651921f,0.756495f}, -{-0.133792f,0.473599f,0.870519f},{-0.0551972f,0.673656f,0.736981f},{-0.166331f,0.479272f,0.861761f}, -{-0.194724f,0.892923f,0.40592f},{-0.321362f,0.778328f,0.539381f},{-0.489835f,0.58226f,0.648872f}, -{-0.569077f,0.369664f,0.734506f},{-0.583491f,0.204904f,0.785845f},{-0.565193f,0.0957166f,0.819387f}, -{-0.512484f,0.00638424f,0.858673f},{-0.392507f,-0.0996617f,0.914333f},{-0.192249f,-0.211968f,0.958181f}, -{0.0562841f,-0.275946f,0.959524f},{0.32738f,-0.221716f,0.918512f},{0.573276f,0.0211426f,0.819089f}, -{0.653155f,0.381962f,0.65383f},{0.546416f,0.668325f,0.504748f},{0.357923f,0.829639f,0.428475f}, -{0.140622f,0.899867f,0.412874f},{-0.0284427f,0.788122f,0.614862f},{-0.0532601f,0.776915f,0.627349f}, -{-0.157489f,0.987401f,-0.0154112f},{-0.342529f,0.926003f,0.158719f},{-0.619782f,0.690843f,0.372299f}, -{-0.744927f,0.377356f,0.550169f},{-0.752895f,0.119041f,0.647285f},{-0.717327f,-0.0636677f,0.693822f}, -{-0.639658f,-0.233703f,0.732271f},{-0.449197f,-0.43605f,0.779796f},{-0.124989f,-0.610088f,0.782413f}, -{0.23555f,-0.675885f,0.698352f},{0.5842f,-0.598166f,0.54855f},{0.89061f,-0.305432f,0.336936f}, -{0.982168f,0.152087f,0.110523f},{0.839266f,0.543118f,-0.0256032f},{0.599899f,0.797656f,-0.0621713f}, -{0.313645f,0.948255f,-0.0493838f},{0.112243f,0.977134f,0.180584f},{0.109262f,0.976934f,0.183471f}, -{-0.130507f,0.977203f,-0.167459f},{-0.261054f,0.960363f,-0.0977477f},{-0.60797f,0.781317f,0.141124f}, -{-0.806985f,0.441576f,0.392157f},{-0.831542f,0.116681f,0.543069f},{-0.785144f,-0.11618f,0.608318f}, -{-0.700039f,-0.321851f,0.637462f},{-0.505872f,-0.56167f,0.654691f},{-0.151627f,-0.765957f,0.624755f}, -{0.241223f,-0.821394f,0.51684f},{0.585322f,-0.732453f,0.347723f},{0.87707f,-0.467825f,0.109029f}, -{0.989822f,-0.0383588f,-0.137044f},{0.893267f,0.361677f,-0.266953f},{0.695714f,0.656377f,-0.291808f}, -{0.422793f,0.86367f,-0.274445f},{0.208815f,0.94524f,-0.250834f},{0.208427f,0.945437f,-0.250415f}, -{0.21141f,0.645342f,0.734057f},{0.208426f,0.467506f,0.859068f},{0.282958f,0.5677f,0.773079f}, -{0.258987f,0.431703f,0.864036f},{0.368601f,0.458412f,0.808698f},{0.303103f,0.374109f,0.876454f}, -{0.416668f,0.346641f,0.840374f},{0.324375f,0.317159f,0.891174f},{0.430617f,0.259782f,0.864339f}, -{0.325748f,0.282993f,0.90211f},{0.420251f,0.203557f,0.884282f},{0.320713f,0.268048f,0.908457f}, -{0.386943f,0.162916f,0.907598f},{0.307412f,0.253853f,0.917091f},{0.322162f,0.122735f,0.938695f}, -{0.27108f,0.240458f,0.932038f},{0.223762f,0.0878123f,0.97068f},{0.21604f,0.245468f,0.945025f}, -{0.10262f,0.0825365f,0.991291f},{0.16423f,0.272449f,0.948051f},{-0.0234933f,0.139016f,0.990011f}, -{0.126689f,0.312363f,0.941477f},{-0.125261f,0.270589f,0.954511f},{0.103528f,0.360547f,0.926978f}, -{-0.165273f,0.437098f,0.884099f},{0.0972457f,0.411136f,0.906372f},{-0.133677f,0.573686f,0.808093f}, -{0.109202f,0.451287f,0.885672f},{-0.0521018f,0.651921f,0.756495f},{0.133792f,0.473599f,0.870519f}, -{0.0551972f,0.673656f,0.736981f},{0.166331f,0.479272f,0.861761f},{0.194723f,0.892923f,0.40592f}, -{0.321362f,0.778328f,0.539381f},{0.489835f,0.58226f,0.648872f},{0.569077f,0.369664f,0.734506f}, -{0.583491f,0.204904f,0.785845f},{0.565193f,0.0957165f,0.819387f},{0.512484f,0.00638429f,0.858673f}, -{0.392507f,-0.0996618f,0.914333f},{0.192249f,-0.211968f,0.95818f},{-0.0562842f,-0.275946f,0.959524f}, -{-0.32738f,-0.221716f,0.918512f},{-0.573277f,0.0211428f,0.819089f},{-0.653155f,0.381962f,0.65383f}, -{-0.546416f,0.668325f,0.504748f},{-0.357923f,0.829639f,0.428475f},{-0.140621f,0.899867f,0.412874f}, -{0.0284431f,0.788121f,0.614862f},{0.0532601f,0.776915f,0.627349f},{0.157489f,0.987401f,-0.015411f}, -{0.342529f,0.926003f,0.158719f},{0.619782f,0.690843f,0.372299f},{0.744927f,0.377355f,0.55017f}, -{0.752895f,0.119041f,0.647285f},{0.717327f,-0.0636679f,0.693822f},{0.639658f,-0.233703f,0.732271f}, -{0.449197f,-0.43605f,0.779796f},{0.124989f,-0.610088f,0.782413f},{-0.23555f,-0.675885f,0.698352f}, -{-0.5842f,-0.598167f,0.54855f},{-0.89061f,-0.305431f,0.336936f},{-0.982168f,0.152087f,0.110523f}, -{-0.839266f,0.543117f,-0.0256036f},{-0.5999f,0.797656f,-0.0621718f},{-0.313645f,0.948255f,-0.0493838f}, -{-0.112243f,0.977134f,0.180583f},{-0.109261f,0.976934f,0.183472f},{0.130507f,0.977203f,-0.167459f}, -{0.261054f,0.960363f,-0.0977474f},{0.607969f,0.781317f,0.141124f},{0.806984f,0.441576f,0.392157f}, -{0.831542f,0.116681f,0.543069f},{0.785144f,-0.11618f,0.608318f},{0.700039f,-0.32185f,0.637462f}, -{0.505872f,-0.56167f,0.654691f},{0.151627f,-0.765957f,0.624755f},{-0.241224f,-0.821394f,0.51684f}, -{-0.585322f,-0.732453f,0.347722f},{-0.87707f,-0.467826f,0.109028f},{-0.989822f,-0.0383587f,-0.137044f}, -{-0.893267f,0.361677f,-0.266952f},{-0.695714f,0.656377f,-0.291808f},{-0.422793f,0.86367f,-0.274445f}, -{-0.208815f,0.94524f,-0.250834f},{-0.208427f,0.945437f,-0.250415f} -}, - -//lid 3 -{ -{0.19311f,0.19139f,-0.96233f},{0.142208f,-0.0774502f,-0.986802f},{0.0678547f,-0.0384938f,-0.996952f}, -{0.13967f,0.219289f,-0.965611f},{-0.0696221f,0.0408271f,-0.996738f},{0.0926616f,0.273519f,-0.957393f}, -{-0.188488f,0.211241f,-0.959088f},{0.0595677f,0.351221f,-0.934396f},{-0.237285f,0.427549f,-0.872294f}, -{0.0513543f,0.433495f,-0.899691f},{-0.196157f,0.604068f,-0.772415f},{0.0685151f,0.496912f,-0.865092f}, -{-0.0957246f,0.703615f,-0.704104f},{0.102755f,0.534448f,-0.838932f},{0.0293679f,0.736459f,-0.675844f}, -{0.149571f,0.54853f,-0.822644f},{0.161603f,0.717349f,-0.677713f},{0.207462f,0.537636f,-0.817256f}, -{0.289597f,0.651122f,-0.701551f},{0.268886f,0.498353f,-0.824224f},{0.3962f,0.544012f,-0.739646f}, -{0.318634f,0.436497f,-0.841393f},{0.462795f,0.417077f,-0.782219f},{0.345075f,0.369444f,-0.862806f}, -{0.483462f,0.295309f,-0.824049f},{0.349167f,0.310606f,-0.884085f},{0.462611f,0.187373f,-0.866535f}, -{0.335206f,0.259551f,-0.905688f},{0.403961f,0.0904898f,-0.91029f},{0.301477f,0.215711f,-0.928752f}, -{0.312545f,0.00928211f,-0.949858f},{0.250059f,0.189983f,-0.949409f},{0.0226189f,-0.461349f,-0.88693f}, -{-0.0777483f,-0.407964f,-0.909682f},{-0.347637f,-0.331404f,-0.877109f},{-0.62028f,-0.0696448f,-0.781283f}, -{-0.72716f,0.332372f,-0.600639f},{-0.61173f,0.662993f,-0.431541f},{-0.39808f,0.845991f,-0.354728f}, -{-0.160319f,0.923082f,-0.349597f},{0.0827605f,0.919205f,-0.384985f},{0.317574f,0.832385f,-0.454183f}, -{0.511501f,0.661363f,-0.548603f},{0.625966f,0.446074f,-0.639675f},{0.659684f,0.2427f,-0.711276f}, -{0.629048f,0.0628337f,-0.774823f},{0.530845f,-0.10926f,-0.840396f},{0.36452f,-0.264439f,-0.892859f}, -{0.259041f,-0.148767f,-0.954341f},{0.299861f,-0.161339f,-0.940241f},{-0.0884018f,-0.762538f,-0.640876f}, -{-0.235609f,-0.723775f,-0.648566f},{-0.585528f,-0.630369f,-0.509698f},{-0.900905f,-0.335078f,-0.275848f}, -{-0.993743f,0.110014f,-0.0192989f},{-0.855874f,0.50061f,0.129883f},{-0.618627f,0.770592f,0.15326f}, -{-0.32579f,0.939296f,0.107627f},{0.000229109f,0.999641f,0.0267795f},{0.331651f,0.938181f,-0.09912f}, -{0.618913f,0.735647f,-0.275264f},{0.783293f,0.435371f,-0.443738f},{0.821251f,0.141209f,-0.552817f}, -{0.775996f,-0.117576f,-0.619682f},{0.637531f,-0.364574f,-0.678704f},{0.389838f,-0.573292f,-0.720668f}, -{0.234329f,-0.478618f,-0.846177f},{0.280671f,-0.500188f,-0.819167f},{-0.125194f,-0.832553f,-0.539613f}, -{-0.23729f,-0.832272f,-0.501016f},{-0.593865f,-0.730879f,-0.336364f},{-0.891521f,-0.44951f,-0.0559531f}, -{-0.973153f,-0.0412239f,0.226436f},{-0.872411f,0.319219f,0.370133f},{-0.691725f,0.605878f,0.392973f}, -{-0.431433f,0.831836f,0.349162f},{-0.103034f,0.957642f,0.268899f},{0.252442f,0.957152f,0.141888f}, -{0.595298f,0.801204f,-0.0607619f},{0.823888f,0.48597f,-0.291617f},{0.882366f,0.135114f,-0.450749f}, -{0.834461f,-0.168251f,-0.524753f},{0.697484f,-0.446476f,-0.560514f},{0.441864f,-0.682478f,-0.58222f}, -{0.213859f,-0.783387f,-0.583584f},{0.2332f,-0.79081f,-0.565895f},{-0.142208f,-0.0774502f,-0.986802f}, -{-0.19311f,0.19139f,-0.96233f},{-0.0678546f,-0.0384938f,-0.996952f},{-0.13967f,0.219289f,-0.965611f}, -{0.0696222f,0.0408271f,-0.996738f},{-0.0926615f,0.273519f,-0.957393f},{0.188488f,0.211241f,-0.959088f}, -{-0.0595678f,0.351221f,-0.934396f},{0.237285f,0.427549f,-0.872294f},{-0.0513544f,0.433495f,-0.899691f}, -{0.196157f,0.604068f,-0.772415f},{-0.0685151f,0.496912f,-0.865092f},{0.0957247f,0.703616f,-0.704104f}, -{-0.102755f,0.534448f,-0.838932f},{-0.029368f,0.73646f,-0.675844f},{-0.149571f,0.548531f,-0.822644f}, -{-0.161603f,0.717349f,-0.677713f},{-0.207461f,0.537636f,-0.817256f},{-0.289597f,0.651122f,-0.701551f}, -{-0.268886f,0.498353f,-0.824224f},{-0.396201f,0.544011f,-0.739646f},{-0.318635f,0.436497f,-0.841393f}, -{-0.462795f,0.417077f,-0.782219f},{-0.345075f,0.369444f,-0.862806f},{-0.483462f,0.295309f,-0.824049f}, -{-0.349167f,0.310605f,-0.884085f},{-0.462611f,0.187373f,-0.866535f},{-0.335206f,0.259552f,-0.905687f}, -{-0.403961f,0.09049f,-0.910289f},{-0.301477f,0.215711f,-0.928752f},{-0.312545f,0.00928195f,-0.949857f}, -{-0.250059f,0.189983f,-0.949409f},{-0.0226189f,-0.46135f,-0.88693f},{0.0777483f,-0.407964f,-0.909681f}, -{0.347638f,-0.331404f,-0.877109f},{0.62028f,-0.0696447f,-0.781283f},{0.72716f,0.332372f,-0.600639f}, -{0.61173f,0.662993f,-0.431541f},{0.39808f,0.845991f,-0.354728f},{0.160319f,0.923082f,-0.349597f}, -{-0.0827604f,0.919205f,-0.384985f},{-0.317574f,0.832385f,-0.454183f},{-0.511501f,0.661363f,-0.548603f}, -{-0.625966f,0.446074f,-0.639675f},{-0.659685f,0.242701f,-0.711275f},{-0.629047f,0.0628333f,-0.774824f}, -{-0.530845f,-0.10926f,-0.840396f},{-0.36452f,-0.26444f,-0.892859f},{-0.259042f,-0.148767f,-0.954341f}, -{-0.299861f,-0.161339f,-0.940241f},{0.0884017f,-0.762538f,-0.640876f},{0.235608f,-0.723775f,-0.648566f}, -{0.585528f,-0.630369f,-0.509698f},{0.900905f,-0.335078f,-0.275848f},{0.993743f,0.110014f,-0.0192989f}, -{0.855874f,0.50061f,0.129883f},{0.618627f,0.770592f,0.153259f},{0.325789f,0.939296f,0.107627f}, -{-0.000229102f,0.999641f,0.0267794f},{-0.331651f,0.938181f,-0.0991201f},{-0.618913f,0.735647f,-0.275264f}, -{-0.783293f,0.435371f,-0.443739f},{-0.821251f,0.141209f,-0.552817f},{-0.775996f,-0.117575f,-0.619682f}, -{-0.637531f,-0.364574f,-0.678704f},{-0.389838f,-0.573292f,-0.720668f},{-0.234329f,-0.478618f,-0.846177f}, -{-0.280672f,-0.500188f,-0.819167f},{0.125194f,-0.832552f,-0.539614f},{0.23729f,-0.832272f,-0.501016f}, -{0.593865f,-0.730879f,-0.336363f},{0.891521f,-0.44951f,-0.0559528f},{0.973153f,-0.0412245f,0.226437f}, -{0.872411f,0.319219f,0.370134f},{0.691726f,0.605878f,0.392973f},{0.431433f,0.831836f,0.349161f}, -{0.103034f,0.957642f,0.268899f},{-0.252442f,0.957152f,0.141888f},{-0.595298f,0.801204f,-0.0607619f}, -{-0.823888f,0.485971f,-0.291617f},{-0.882366f,0.135114f,-0.45075f},{-0.834461f,-0.168251f,-0.524753f}, -{-0.697484f,-0.446475f,-0.560514f},{-0.441864f,-0.682478f,-0.58222f},{-0.213859f,-0.783387f,-0.583584f}, -{-0.2332f,-0.79081f,-0.565895f},{-0.229669f,0.394981f,0.889518f},{-0.231123f,0.558736f,0.79649f}, -{-0.296793f,0.48526f,0.822458f},{-0.27818f,0.361869f,0.889757f},{-0.375088f,0.387567f,0.842082f}, -{-0.3186f,0.309805f,0.895832f},{-0.421505f,0.290791f,0.858938f},{-0.336716f,0.261486f,0.90457f}, -{-0.438512f,0.215537f,0.872497f},{-0.337864f,0.234783f,0.911441f},{-0.432128f,0.162153f,0.887114f}, -{-0.333658f,0.221571f,0.916285f},{-0.399382f,0.113997f,0.909669f},{-0.318071f,0.203324f,0.926008f}, -{-0.329136f,0.0589227f,0.942442f},{-0.276121f,0.184141f,0.943318f},{-0.221544f,0.00826323f,0.975115f}, -{-0.217713f,0.184842f,0.95835f},{-0.0944669f,-0.00852958f,0.995491f},{-0.168781f,0.207319f,0.963604f}, -{0.0290205f,0.0408228f,0.998745f},{-0.137636f,0.239871f,0.960999f},{0.120965f,0.170167f,0.977962f}, -{-0.119261f,0.280395f,0.952447f},{0.148983f,0.342616f,0.927587f},{-0.114791f,0.328866f,0.937374f}, -{0.106802f,0.487704f,0.866452f},{-0.128197f,0.372061f,0.919313f},{0.0195776f,0.569159f,0.821994f}, -{-0.154669f,0.397586f,0.904435f},{-0.0864364f,0.588895f,0.803574f},{-0.188131f,0.405089f,0.894712f}, -{-0.213787f,0.826684f,0.520469f},{-0.33275f,0.699806f,0.632099f},{-0.486569f,0.510276f,0.709133f}, -{-0.562541f,0.316054f,0.763975f},{-0.58474f,0.166721f,0.793903f},{-0.577003f,0.0581446f,0.81467f}, -{-0.5284f,-0.0497126f,0.847539f},{-0.398676f,-0.186188f,0.897993f},{-0.17981f,-0.319832f,0.930256f}, -{0.0771954f,-0.387706f,0.918545f},{0.338345f,-0.336226f,0.878906f},{0.573425f,-0.101638f,0.812929f}, -{0.654623f,0.279956f,0.702206f},{0.53579f,0.60401f,0.590001f},{0.329575f,0.779685f,0.532421f}, -{0.106662f,0.843401f,0.526591f},{-0.0582746f,0.705608f,0.706202f},{-0.0917435f,0.688008f,0.719881f}, -{-0.18003f,0.977476f,0.110137f},{-0.357939f,0.891518f,0.277623f},{-0.615207f,0.644291f,0.454323f}, -{-0.732591f,0.34145f,0.588832f},{-0.750623f,0.0927056f,0.654195f},{-0.728923f,-0.0996895f,0.677299f}, -{-0.654723f,-0.300832f,0.693425f},{-0.44952f,-0.535469f,0.714986f},{-0.106872f,-0.711745f,0.69426f}, -{0.252943f,-0.755576f,0.604256f},{0.582754f,-0.663256f,0.469562f},{0.876843f,-0.377081f,0.298256f}, -{0.987578f,0.0908329f,0.128218f},{0.85011f,0.525354f,0.0362723f},{0.592618f,0.80484f,0.0321829f}, -{0.293156f,0.953591f,0.0687309f},{0.0880785f,0.946859f,0.309353f},{0.0767341f,0.944294f,0.320033f}, -{-0.156098f,0.986732f,-0.0446366f},{-0.281294f,0.959401f,0.0205867f},{-0.610051f,0.757103f,0.233735f}, -{-0.794174f,0.419187f,0.439966f},{-0.826092f,0.100254f,0.554546f},{-0.792747f,-0.146156f,0.59177f}, -{-0.710556f,-0.384711f,0.589158f},{-0.501651f,-0.653698f,0.566591f},{-0.133125f,-0.849606f,0.510341f}, -{0.253964f,-0.875214f,0.411708f},{0.584528f,-0.765206f,0.269789f},{0.86544f,-0.496404f,0.0677977f}, -{0.988373f,-0.0650512f,-0.13743f},{0.90281f,0.361254f,-0.2333f},{0.696363f,0.682041f,-0.223379f}, -{0.410113f,0.895258f,-0.174126f},{0.189645f,0.972416f,-0.135803f},{0.191705f,0.971681f,-0.138152f}, -{0.231123f,0.558736f,0.79649f},{0.229668f,0.394981f,0.889518f},{0.296793f,0.48526f,0.822458f}, -{0.27818f,0.361869f,0.889757f},{0.375088f,0.387566f,0.842082f},{0.318601f,0.309804f,0.895832f}, -{0.421505f,0.290791f,0.858938f},{0.336717f,0.261487f,0.90457f},{0.438512f,0.215537f,0.872497f}, -{0.337864f,0.234783f,0.911441f},{0.432128f,0.162153f,0.887114f},{0.333659f,0.221571f,0.916285f}, -{0.399382f,0.113997f,0.909669f},{0.318071f,0.203323f,0.926008f},{0.329136f,0.0589225f,0.942442f}, -{0.27612f,0.184141f,0.943319f},{0.221544f,0.00826301f,0.975115f},{0.217714f,0.184842f,0.95835f}, -{0.0944672f,-0.00852984f,0.995491f},{0.168781f,0.207319f,0.963604f},{-0.0290205f,0.0408228f,0.998745f}, -{0.137636f,0.23987f,0.960999f},{-0.120965f,0.170168f,0.977962f},{0.119261f,0.280396f,0.952447f}, -{-0.148983f,0.342615f,0.927587f},{0.114791f,0.328866f,0.937374f},{-0.106802f,0.487704f,0.866452f}, -{0.128197f,0.372061f,0.919313f},{-0.0195775f,0.569159f,0.821994f},{0.154669f,0.397586f,0.904435f}, -{0.0864366f,0.588895f,0.803574f},{0.188132f,0.405089f,0.894712f},{0.213787f,0.826684f,0.52047f}, -{0.332749f,0.699806f,0.632099f},{0.486569f,0.510276f,0.709133f},{0.562541f,0.316053f,0.763975f}, -{0.58474f,0.166722f,0.793903f},{0.577003f,0.0581448f,0.81467f},{0.5284f,-0.0497127f,0.847539f}, -{0.398676f,-0.186189f,0.897993f},{0.17981f,-0.319832f,0.930256f},{-0.0771954f,-0.387706f,0.918545f}, -{-0.338345f,-0.336226f,0.878906f},{-0.573425f,-0.101638f,0.812929f},{-0.654623f,0.279956f,0.702206f}, -{-0.535791f,0.60401f,0.590001f},{-0.329575f,0.779685f,0.53242f},{-0.106662f,0.843401f,0.526591f}, -{0.0582748f,0.705608f,0.706202f},{0.0917444f,0.688007f,0.719881f},{0.18003f,0.977476f,0.110137f}, -{0.35794f,0.891518f,0.277623f},{0.615207f,0.644291f,0.454323f},{0.732591f,0.341449f,0.588832f}, -{0.750623f,0.0927057f,0.654195f},{0.728923f,-0.0996895f,0.677299f},{0.654723f,-0.300832f,0.693425f}, -{0.44952f,-0.535469f,0.714986f},{0.106872f,-0.711745f,0.69426f},{-0.252943f,-0.755576f,0.604256f}, -{-0.582754f,-0.663256f,0.469562f},{-0.876843f,-0.377081f,0.298256f},{-0.987578f,0.0908331f,0.128219f}, -{-0.85011f,0.525354f,0.0362722f},{-0.592618f,0.80484f,0.0321824f},{-0.293156f,0.953591f,0.0687308f}, -{-0.0880785f,0.946859f,0.309353f},{-0.0767339f,0.944294f,0.320033f},{0.156098f,0.986732f,-0.0446371f}, -{0.281294f,0.959401f,0.0205868f},{0.610051f,0.757103f,0.233736f},{0.794174f,0.419187f,0.439966f}, -{0.826092f,0.100253f,0.554546f},{0.792747f,-0.146156f,0.591769f},{0.710556f,-0.384711f,0.589158f}, -{0.501651f,-0.653698f,0.566591f},{0.133125f,-0.849606f,0.510341f},{-0.253964f,-0.875214f,0.411708f}, -{-0.584528f,-0.765207f,0.269788f},{-0.86544f,-0.496404f,0.0677973f},{-0.988373f,-0.0650511f,-0.137429f}, -{-0.90281f,0.361254f,-0.2333f},{-0.696363f,0.682041f,-0.223379f},{-0.410113f,0.895258f,-0.174126f}, -{-0.189645f,0.972416f,-0.135803f},{-0.191705f,0.971681f,-0.138152f} -}, - -//lid 2 -{ -{0.187256f,0.116412f,-0.975389f},{0.129319f,-0.155775f,-0.979291f},{0.0579089f,-0.120735f,-0.990994f}, -{0.137498f,0.140876f,-0.980433f},{-0.0738917f,-0.0492811f,-0.996048f},{0.0954745f,0.189637f,-0.977201f}, -{-0.186073f,0.114379f,-0.975856f},{0.0656717f,0.26388f,-0.962317f},{-0.230893f,0.336505f,-0.912936f}, -{0.0590603f,0.34927f,-0.935159f},{-0.185953f,0.52868f,-0.828202f},{0.0783567f,0.419768f,-0.904243f}, -{-0.081558f,0.640475f,-0.763636f},{0.115249f,0.462736f,-0.878973f},{0.0452996f,0.67806f,-0.733609f}, -{0.163262f,0.479446f,-0.862251f},{0.176397f,0.659123f,-0.731054f},{0.220148f,0.470118f,-0.854707f}, -{0.301033f,0.59221f,-0.74744f},{0.279072f,0.432589f,-0.857313f},{0.403142f,0.486599f,-0.775047f}, -{0.325609f,0.373537f,-0.86859f},{0.466056f,0.363663f,-0.806561f},{0.349637f,0.31003f,-0.884101f}, -{0.484992f,0.244556f,-0.839628f},{0.352937f,0.25237f,-0.900969f},{0.462945f,0.13394f,-0.876209f}, -{0.337758f,0.197705f,-0.920235f},{0.401344f,0.0292842f,-0.915459f},{0.300295f,0.147658f,-0.942348f}, -{0.305224f,-0.0606399f,-0.950348f},{0.24473f,0.117415f,-0.962456f},{0.00340102f,-0.529962f,-0.848015f}, -{-0.0938613f,-0.478074f,-0.87329f},{-0.352454f,-0.406562f,-0.842902f},{-0.61385f,-0.160057f,-0.773027f}, -{-0.728006f,0.248101f,-0.639103f},{-0.613132f,0.611566f,-0.500057f},{-0.387794f,0.814176f,-0.432126f}, -{-0.143534f,0.892502f,-0.427596f},{0.0984222f,0.883124f,-0.458699f},{0.328302f,0.790308f,-0.51733f}, -{0.515789f,0.617037f,-0.594329f},{0.626024f,0.405388f,-0.666149f},{0.660135f,0.204925f,-0.722654f}, -{0.630921f,0.0188943f,-0.775617f},{0.52944f,-0.167059f,-0.831736f},{0.354696f,-0.333342f,-0.873541f}, -{0.243538f,-0.22025f,-0.944552f},{0.289875f,-0.232645f,-0.928358f},{-0.102856f,-0.809156f,-0.578522f}, -{-0.250447f,-0.767445f,-0.590174f},{-0.588122f,-0.665757f,-0.459217f},{-0.891009f,-0.37675f,-0.253303f}, -{-0.996878f,0.0697304f,-0.0370518f},{-0.868428f,0.488907f,0.0824813f},{-0.61914f,0.780765f,0.0840951f}, -{-0.313284f,0.949395f,0.0224016f},{0.0164307f,0.997917f,-0.0623912f},{0.342913f,0.922407f,-0.177695f}, -{0.620304f,0.711419f,-0.330312f},{0.779717f,0.412151f,-0.471353f},{0.821408f,0.11749f,-0.558109f}, -{0.780344f,-0.153673f,-0.606174f},{0.638631f,-0.418378f,-0.645841f},{0.382109f,-0.635191f,-0.671212f}, -{0.220792f,-0.550559f,-0.805069f},{0.263945f,-0.568498f,-0.779194f},{-0.135299f,-0.871634f,-0.471114f}, -{-0.249238f,-0.864706f,-0.436078f},{-0.599387f,-0.748603f,-0.283423f},{-0.885957f,-0.462876f,-0.0287339f}, -{-0.973386f,-0.055693f,0.222302f},{-0.882814f,0.320471f,0.343421f},{-0.69843f,0.628487f,0.342344f}, -{-0.425676f,0.863021f,0.272019f},{-0.0871386f,0.980548f,0.175874f},{0.268067f,0.961922f,0.0533471f}, -{0.599281f,0.790612f,-0.12568f},{0.819088f,0.473157f,-0.324372f},{0.881267f,0.120534f,-0.45699f}, -{0.838241f,-0.197245f,-0.508376f},{0.698173f,-0.493499f,-0.518664f},{0.435853f,-0.735407f,-0.518853f}, -{0.206757f,-0.833563f,-0.512273f},{0.22074f,-0.837852f,-0.499277f},{-0.129319f,-0.155775f,-0.979291f}, -{-0.187257f,0.116412f,-0.975389f},{-0.0579092f,-0.120735f,-0.990994f},{-0.137498f,0.140876f,-0.980433f}, -{0.0738916f,-0.0492814f,-0.996048f},{-0.0954751f,0.189636f,-0.977201f},{0.186073f,0.11438f,-0.975855f}, -{-0.0656712f,0.263882f,-0.962317f},{0.230893f,0.336506f,-0.912936f},{-0.05906f,0.349268f,-0.93516f}, -{0.185953f,0.528679f,-0.828203f},{-0.0783569f,0.419768f,-0.904243f},{0.0815577f,0.640475f,-0.763636f}, -{-0.11525f,0.462736f,-0.878973f},{-0.0452998f,0.67806f,-0.733609f},{-0.163262f,0.479446f,-0.862251f}, -{-0.176397f,0.659123f,-0.731054f},{-0.220148f,0.470118f,-0.854707f},{-0.301033f,0.592211f,-0.747439f}, -{-0.279072f,0.432589f,-0.857313f},{-0.403142f,0.486599f,-0.775047f},{-0.32561f,0.373536f,-0.86859f}, -{-0.466056f,0.363663f,-0.806561f},{-0.349637f,0.310031f,-0.884101f},{-0.484992f,0.244557f,-0.839628f}, -{-0.352937f,0.25237f,-0.900969f},{-0.462945f,0.13394f,-0.876209f},{-0.337758f,0.197703f,-0.920235f}, -{-0.401345f,0.0292838f,-0.915459f},{-0.300296f,0.147658f,-0.942348f},{-0.305224f,-0.0606397f,-0.950348f}, -{-0.24473f,0.117415f,-0.962456f},{-0.00340093f,-0.529962f,-0.848015f},{0.0938612f,-0.478075f,-0.87329f}, -{0.352454f,-0.406562f,-0.842902f},{0.61385f,-0.160057f,-0.773027f},{0.728006f,0.248101f,-0.639103f}, -{0.613132f,0.611566f,-0.500057f},{0.387794f,0.814176f,-0.432126f},{0.143534f,0.892502f,-0.427596f}, -{-0.0984221f,0.883124f,-0.458699f},{-0.328302f,0.790308f,-0.517331f},{-0.515789f,0.617037f,-0.594329f}, -{-0.626024f,0.405389f,-0.666149f},{-0.660135f,0.204925f,-0.722653f},{-0.63092f,0.018894f,-0.775617f}, -{-0.529439f,-0.167059f,-0.831736f},{-0.354696f,-0.333342f,-0.873541f},{-0.243538f,-0.22025f,-0.944552f}, -{-0.289875f,-0.232645f,-0.928358f},{0.102856f,-0.809156f,-0.578522f},{0.250447f,-0.767445f,-0.590174f}, -{0.588122f,-0.665757f,-0.459217f},{0.891009f,-0.37675f,-0.253303f},{0.996878f,0.0697302f,-0.0370519f}, -{0.868427f,0.488908f,0.0824812f},{0.61914f,0.780765f,0.0840952f},{0.313285f,0.949395f,0.0224016f}, -{-0.0164307f,0.997917f,-0.0623912f},{-0.342913f,0.922407f,-0.177696f},{-0.620304f,0.711419f,-0.330313f}, -{-0.779717f,0.412152f,-0.471352f},{-0.821408f,0.11749f,-0.558108f},{-0.780344f,-0.153673f,-0.606175f}, -{-0.638631f,-0.418378f,-0.645841f},{-0.38211f,-0.635191f,-0.671212f},{-0.220793f,-0.550559f,-0.805068f}, -{-0.263945f,-0.568497f,-0.779194f},{0.135299f,-0.871634f,-0.471114f},{0.249238f,-0.864706f,-0.436078f}, -{0.599387f,-0.748603f,-0.283424f},{0.885957f,-0.462876f,-0.0287343f},{0.973386f,-0.0556929f,0.222302f}, -{0.882814f,0.32047f,0.343421f},{0.69843f,0.628487f,0.342344f},{0.425676f,0.863021f,0.272019f}, -{0.0871387f,0.980548f,0.175874f},{-0.268067f,0.961922f,0.0533472f},{-0.599281f,0.790612f,-0.12568f}, -{-0.819088f,0.473157f,-0.324372f},{-0.881267f,0.120534f,-0.45699f},{-0.838241f,-0.197244f,-0.508376f}, -{-0.698173f,-0.4935f,-0.518664f},{-0.435853f,-0.735407f,-0.518853f},{-0.206757f,-0.833563f,-0.512274f}, -{-0.220741f,-0.837852f,-0.499276f},{-0.25909f,0.275155f,0.925831f},{-0.260689f,0.411094f,0.873524f}, -{-0.317162f,0.351731f,0.880735f},{-0.303933f,0.249266f,0.919506f},{-0.386375f,0.278498f,0.879291f}, -{-0.337758f,0.208897f,0.917759f},{-0.432851f,0.205417f,0.877749f},{-0.352056f,0.172151f,0.920011f}, -{-0.456366f,0.140033f,0.878704f},{-0.353222f,0.148434f,0.923689f},{-0.455199f,0.074466f,0.88727f}, -{-0.346659f,0.125659f,0.929536f},{-0.417496f,-0.00714653f,0.908651f},{-0.320588f,0.0897104f,0.942961f}, -{-0.327345f,-0.104932f,0.93906f},{-0.26398f,0.0534085f,0.963048f},{-0.192886f,-0.188203f,0.963003f}, -{-0.19785f,0.0430034f,0.979288f},{-0.0492551f,-0.219339f,0.974405f},{-0.152308f,0.0574572f,0.986662f}, -{0.0717795f,-0.1755f,0.981859f},{-0.129198f,0.08014f,0.988375f},{0.147879f,-0.0481031f,0.987835f}, -{-0.116173f,0.112476f,0.98684f},{0.154069f,0.137754f,0.97841f},{-0.114789f,0.165197f,0.979558f}, -{0.0873191f,0.307741f,0.947455f},{-0.135074f,0.224582f,0.965048f},{-0.0179641f,0.406632f,0.913415f}, -{-0.172292f,0.265112f,0.9487f},{-0.128381f,0.433488f,0.891968f},{-0.214693f,0.280536f,0.935525f}, -{-0.245676f,0.670307f,0.700237f},{-0.3474f,0.544072f,0.76374f},{-0.479751f,0.386625f,0.78763f}, -{-0.557924f,0.231905f,0.796832f},{-0.598018f,0.101114f,0.795079f},{-0.607651f,-0.027379f,0.793732f}, -{-0.558296f,-0.19439f,0.806547f},{-0.397246f,-0.396803f,0.827492f},{-0.137564f,-0.552716f,0.821937f}, -{0.13254f,-0.603532f,0.786246f},{0.372904f,-0.543639f,0.751931f},{0.581714f,-0.336158f,0.74068f}, -{0.668633f,0.0458593f,0.742177f},{0.534189f,0.433018f,0.726043f},{0.285923f,0.644991f,0.708685f}, -{0.0453926f,0.700839f,0.711874f},{-0.108407f,0.543837f,0.832159f},{-0.14636f,0.521887f,0.840365f}, -{-0.21819f,0.908956f,0.355236f},{-0.37833f,0.784453f,0.491427f},{-0.599202f,0.541926f,0.589299f}, -{-0.711835f,0.275202f,0.646185f},{-0.754253f,0.0427209f,0.655192f},{-0.755977f,-0.18121f,0.629016f}, -{-0.675388f,-0.448443f,0.585449f},{-0.432908f,-0.72345f,0.537783f},{-0.0651935f,-0.876173f,0.477568f}, -{0.28624f,-0.870309f,0.400785f},{0.585434f,-0.749534f,0.308975f},{0.849956f,-0.483778f,0.208648f}, -{0.988981f,-0.0370003f,0.143341f},{0.877374f,0.453848f,0.15568f},{0.581119f,0.781752f,0.226196f}, -{0.246531f,0.919117f,0.307321f},{0.0350671f,0.839431f,0.542334f},{0.00382345f,0.823531f,0.567259f}, -{-0.199301f,0.957252f,0.209638f},{-0.313378f,0.912873f,0.261643f},{-0.604842f,0.684644f,0.40673f}, -{-0.768845f,0.368021f,0.522913f},{-0.820627f,0.0645513f,0.567806f},{-0.811706f,-0.213571f,0.543618f}, -{-0.72293f,-0.512783f,0.463062f},{-0.476565f,-0.803756f,0.356177f},{-0.0965455f,-0.958156f,0.269474f}, -{0.275182f,-0.938919f,0.206655f},{0.589036f,-0.798747f,0.122636f},{0.849483f,-0.527538f,-0.00910188f}, -{0.984391f,-0.112052f,-0.135719f},{0.925676f,0.342887f,-0.159849f},{0.702208f,0.708021f,-0.0749055f}, -{0.382441f,0.923041f,0.0416495f},{0.150729f,0.982769f,0.106983f},{0.147868f,0.982829f,0.110375f}, -{0.260689f,0.411093f,0.873524f},{0.25909f,0.275155f,0.92583f},{0.317162f,0.351731f,0.880735f}, -{0.303932f,0.249266f,0.919506f},{0.386375f,0.278498f,0.879291f},{0.337757f,0.208897f,0.917759f}, -{0.432851f,0.205417f,0.877749f},{0.352056f,0.172151f,0.920011f},{0.456366f,0.140033f,0.878704f}, -{0.353222f,0.148434f,0.923689f},{0.455199f,0.0744661f,0.88727f},{0.346659f,0.125659f,0.929536f}, -{0.417496f,-0.00714663f,0.908651f},{0.320588f,0.0897105f,0.942961f},{0.327345f,-0.104932f,0.93906f}, -{0.26398f,0.0534084f,0.963048f},{0.192886f,-0.188203f,0.963003f},{0.197851f,0.0430034f,0.979288f}, -{0.0492551f,-0.219339f,0.974405f},{0.152308f,0.0574573f,0.986662f},{-0.0717796f,-0.1755f,0.981859f}, -{0.129198f,0.0801399f,0.988375f},{-0.147879f,-0.048103f,0.987835f},{0.116173f,0.112476f,0.98684f}, -{-0.154069f,0.137754f,0.97841f},{0.114789f,0.165197f,0.979558f},{-0.0873192f,0.307741f,0.947455f}, -{0.135074f,0.224582f,0.965048f},{0.0179641f,0.406632f,0.913415f},{0.172292f,0.265112f,0.9487f}, -{0.128382f,0.433487f,0.891968f},{0.214693f,0.280536f,0.935525f},{0.245676f,0.670307f,0.700237f}, -{0.3474f,0.544072f,0.76374f},{0.479751f,0.386625f,0.78763f},{0.557924f,0.231905f,0.796832f}, -{0.598018f,0.101113f,0.795079f},{0.607651f,-0.0273789f,0.793732f},{0.558296f,-0.19439f,0.806547f}, -{0.397246f,-0.396803f,0.827492f},{0.137564f,-0.552716f,0.821937f},{-0.13254f,-0.603532f,0.786246f}, -{-0.372904f,-0.543639f,0.751931f},{-0.581714f,-0.336158f,0.740679f},{-0.668633f,0.0458594f,0.742177f}, -{-0.534188f,0.433018f,0.726043f},{-0.285924f,0.644991f,0.708685f},{-0.0453924f,0.700838f,0.711874f}, -{0.108408f,0.543836f,0.83216f},{0.14636f,0.521887f,0.840365f},{0.21819f,0.908956f,0.355237f}, -{0.37833f,0.784453f,0.491427f},{0.599202f,0.541926f,0.589299f},{0.711835f,0.275203f,0.646185f}, -{0.754253f,0.0427209f,0.655192f},{0.755977f,-0.18121f,0.629017f},{0.675388f,-0.448443f,0.585449f}, -{0.432908f,-0.72345f,0.537783f},{0.0651936f,-0.876173f,0.477568f},{-0.28624f,-0.870309f,0.400785f}, -{-0.585434f,-0.749534f,0.308976f},{-0.849956f,-0.483778f,0.208648f},{-0.988981f,-0.0370008f,0.14334f}, -{-0.877374f,0.453849f,0.15568f},{-0.581118f,0.781752f,0.226197f},{-0.246531f,0.919117f,0.307321f}, -{-0.0350672f,0.839431f,0.542333f},{-0.0038228f,0.823531f,0.567259f},{0.199301f,0.957252f,0.209638f}, -{0.313378f,0.912873f,0.261644f},{0.604842f,0.684644f,0.40673f},{0.768845f,0.368021f,0.522914f}, -{0.820627f,0.0645516f,0.567806f},{0.811706f,-0.213571f,0.543618f},{0.722929f,-0.512783f,0.463062f}, -{0.476565f,-0.803756f,0.356177f},{0.0965456f,-0.958156f,0.269474f},{-0.275182f,-0.938919f,0.206655f}, -{-0.589036f,-0.798747f,0.122636f},{-0.849483f,-0.527538f,-0.00910149f},{-0.984391f,-0.112052f,-0.135719f}, -{-0.925676f,0.342887f,-0.159849f},{-0.702208f,0.708021f,-0.0749052f},{-0.382441f,0.923041f,0.0416498f}, -{-0.150728f,0.982769f,0.106983f},{-0.147869f,0.982829f,0.110375f} -}, - -//lid 1 -{ -{0.170033f,-0.0808841f,-0.982113f},{0.0991637f,-0.351643f,-0.930867f},{0.0327961f,-0.322779f,-0.945906f}, -{0.127706f,-0.063447f,-0.989781f},{-0.086217f,-0.267487f,-0.959696f},{0.0961476f,-0.0272848f,-0.994993f}, -{-0.181751f,-0.127272f,-0.975074f},{0.0739063f,0.0353914f,-0.996637f},{-0.215664f,0.0915415f,-0.972167f}, -{0.0716391f,0.12319f,-0.989794f},{-0.16116f,0.311979f,-0.936321f},{0.0969912f,0.209661f,-0.972952f}, -{-0.046894f,0.454896f,-0.889309f},{0.141817f,0.267782f,-0.952985f},{0.0844277f,0.508821f,-0.856722f}, -{0.194301f,0.292492f,-0.93632f},{0.212463f,0.495016f,-0.842507f},{0.24922f,0.287968f,-0.924643f}, -{0.328265f,0.43128f,-0.840381f},{0.300985f,0.256755f,-0.918415f},{0.419234f,0.333799f,-0.844287f}, -{0.338886f,0.207317f,-0.917701f},{0.473826f,0.221963f,-0.852186f},{0.35754f,0.153168f,-0.921252f}, -{0.489045f,0.106572f,-0.865724f},{0.359076f,0.0964688f,-0.928309f},{0.463733f,-0.0144368f,-0.885857f}, -{0.339982f,0.0312277f,-0.939913f},{0.394368f,-0.138702f,-0.908425f},{0.293215f,-0.0338574f,-0.955447f}, -{0.28677f,-0.245835f,-0.92592f},{0.228639f,-0.0745071f,-0.970656f},{-0.0325453f,-0.68793f,-0.725047f}, -{-0.127355f,-0.639044f,-0.758554f},{-0.364076f,-0.573592f,-0.733786f},{-0.596709f,-0.366853f,-0.713692f}, -{-0.722067f,0.0228584f,-0.691446f},{-0.613531f,0.44611f,-0.651587f},{-0.35934f,0.699754f,-0.61743f}, -{-0.0981476f,0.785488f,-0.611045f},{0.139556f,0.766936f,-0.626366f},{0.355613f,0.66565f,-0.656087f}, -{0.527228f,0.494736f,-0.690845f},{0.628305f,0.295939f,-0.719481f},{0.663179f,0.0997115f,-0.741789f}, -{0.635683f,-0.105603f,-0.764693f},{0.52601f,-0.323037f,-0.78674f},{0.334451f,-0.507225f,-0.79427f}, -{0.212833f,-0.406554f,-0.888491f},{0.263052f,-0.41547f,-0.87074f},{-0.128016f,-0.904378f,-0.407079f}, -{-0.279766f,-0.859132f,-0.428513f},{-0.595541f,-0.737597f,-0.318249f},{-0.867722f,-0.465516f,-0.174224f}, -{-0.997693f,-0.0361903f,-0.0574295f},{-0.89954f,0.435753f,-0.03076f},{-0.618557f,0.779961f,-0.0951219f}, -{-0.277132f,0.94154f,-0.191575f},{0.0567628f,0.959392f,-0.276306f},{0.367868f,0.857611f,-0.359411f}, -{0.623082f,0.636977f,-0.453903f},{0.771953f,0.34731f,-0.532415f},{0.820825f,0.0532505f,-0.568692f}, -{0.786007f,-0.245625f,-0.567328f},{0.636046f,-0.542784f,-0.548481f},{0.366481f,-0.767941f,-0.525317f}, -{0.19982f,-0.715118f,-0.669835f},{0.230048f,-0.72379f,-0.650543f},{-0.153901f,-0.944866f,-0.289037f}, -{-0.27318f,-0.925861f,-0.261063f},{-0.612847f,-0.778574f,-0.135058f},{-0.871441f,-0.486954f,0.0588787f}, -{-0.968914f,-0.0944346f,0.228664f},{-0.908279f,0.309565f,0.281424f},{-0.714681f,0.667427f,0.209219f}, -{-0.406015f,0.911098f,0.0710771f},{-0.0481226f,0.997305f,-0.0553851f},{0.299353f,0.941114f,-0.15714f}, -{0.604763f,0.747553f,-0.274638f},{0.80719f,0.435193f,-0.398812f},{0.877878f,0.0840118f,-0.471458f}, -{0.843833f,-0.263295f,-0.46757f},{0.69423f,-0.590936f,-0.4109f},{0.421959f,-0.834474f,-0.354407f}, -{0.195816f,-0.924426f,-0.327249f},{0.200539f,-0.924982f,-0.322788f},{-0.0991637f,-0.351643f,-0.930867f}, -{-0.170033f,-0.080884f,-0.982113f},{-0.0327961f,-0.322779f,-0.945906f},{-0.127706f,-0.0634469f,-0.989781f}, -{0.0862171f,-0.267487f,-0.959696f},{-0.0961476f,-0.0272849f,-0.994993f},{0.181751f,-0.127272f,-0.975074f}, -{-0.0739063f,0.0353914f,-0.996637f},{0.215664f,0.0915414f,-0.972167f},{-0.0716392f,0.12319f,-0.989794f}, -{0.16116f,0.311979f,-0.936321f},{-0.0969912f,0.209661f,-0.972952f},{0.0468939f,0.454896f,-0.889309f}, -{-0.141817f,0.267782f,-0.952985f},{-0.0844277f,0.508821f,-0.856722f},{-0.194301f,0.292492f,-0.93632f}, -{-0.212463f,0.495016f,-0.842507f},{-0.24922f,0.287968f,-0.924643f},{-0.328265f,0.43128f,-0.840381f}, -{-0.300984f,0.256755f,-0.918415f},{-0.419234f,0.333799f,-0.844287f},{-0.338886f,0.207317f,-0.917701f}, -{-0.473826f,0.221963f,-0.852186f},{-0.35754f,0.153168f,-0.921252f},{-0.489045f,0.106571f,-0.865724f}, -{-0.359076f,0.0964685f,-0.928309f},{-0.463733f,-0.014437f,-0.885857f},{-0.339982f,0.0312277f,-0.939913f}, -{-0.394368f,-0.138702f,-0.908425f},{-0.293215f,-0.0338572f,-0.955447f},{-0.28677f,-0.245835f,-0.92592f}, -{-0.228639f,-0.0745069f,-0.970656f},{0.0325452f,-0.68793f,-0.725047f},{0.127355f,-0.639044f,-0.758554f}, -{0.364076f,-0.573592f,-0.733786f},{0.596709f,-0.366853f,-0.713692f},{0.722066f,0.0228584f,-0.691446f}, -{0.613531f,0.446109f,-0.651587f},{0.35934f,0.699754f,-0.61743f},{0.0981477f,0.785488f,-0.611045f}, -{-0.139556f,0.766936f,-0.626366f},{-0.355613f,0.66565f,-0.656087f},{-0.527228f,0.494736f,-0.690845f}, -{-0.628305f,0.295939f,-0.719481f},{-0.663179f,0.0997115f,-0.741789f},{-0.635683f,-0.105603f,-0.764693f}, -{-0.52601f,-0.323037f,-0.78674f},{-0.334451f,-0.507225f,-0.79427f},{-0.212833f,-0.406554f,-0.888491f}, -{-0.263052f,-0.41547f,-0.87074f},{0.128016f,-0.904378f,-0.407079f},{0.279766f,-0.859132f,-0.428513f}, -{0.595541f,-0.737597f,-0.318249f},{0.867721f,-0.465516f,-0.174224f},{0.997693f,-0.0361901f,-0.0574301f}, -{0.89954f,0.435753f,-0.0307605f},{0.618557f,0.779961f,-0.0951221f},{0.277132f,0.94154f,-0.191575f}, -{-0.0567628f,0.959392f,-0.276306f},{-0.367868f,0.857611f,-0.359411f},{-0.623082f,0.636978f,-0.453903f}, -{-0.771953f,0.34731f,-0.532415f},{-0.820825f,0.0532507f,-0.568692f},{-0.786007f,-0.245625f,-0.567328f}, -{-0.636046f,-0.542784f,-0.548481f},{-0.366481f,-0.767941f,-0.525317f},{-0.199821f,-0.715118f,-0.669835f}, -{-0.230048f,-0.723789f,-0.650544f},{0.153902f,-0.944866f,-0.289038f},{0.27318f,-0.925861f,-0.261063f}, -{0.612847f,-0.778574f,-0.135058f},{0.871441f,-0.486954f,0.058879f},{0.968914f,-0.0944348f,0.228664f}, -{0.908278f,0.309565f,0.281425f},{0.714681f,0.667427f,0.209219f},{0.406015f,0.911098f,0.0710772f}, -{0.0481226f,0.997305f,-0.0553851f},{-0.299353f,0.941114f,-0.157141f},{-0.604763f,0.747553f,-0.274638f}, -{-0.80719f,0.435193f,-0.398812f},{-0.877878f,0.084012f,-0.471458f},{-0.843833f,-0.263295f,-0.46757f}, -{-0.69423f,-0.590936f,-0.410901f},{-0.421959f,-0.834474f,-0.354407f},{-0.195816f,-0.924426f,-0.327249f}, -{-0.200539f,-0.924982f,-0.322788f},{-0.274592f,0.174388f,0.945615f},{-0.279076f,0.301266f,0.911787f}, -{-0.329298f,0.2523f,0.909894f},{-0.314928f,0.1548f,0.936406f},{-0.393562f,0.19355f,0.898692f}, -{-0.344531f,0.121609f,0.930865f},{-0.440573f,0.129756f,0.88829f},{-0.358316f,0.0865385f,0.929581f}, -{-0.468003f,0.0598531f,0.881698f},{-0.359773f,0.0538913f,0.931482f},{-0.468217f,-0.0283813f,0.883158f}, -{-0.348396f,0.0130349f,0.937257f},{-0.422712f,-0.146026f,0.894422f},{-0.311357f,-0.0425276f,0.949341f}, -{-0.314744f,-0.27671f,0.907947f},{-0.244768f,-0.0926729f,0.965143f},{-0.162371f,-0.373759f,0.913203f}, -{-0.175774f,-0.11056f,0.978202f},{-0.0114407f,-0.403112f,0.915079f},{-0.132327f,-0.100493f,0.986099f}, -{0.105896f,-0.3578f,0.927774f},{-0.111692f,-0.0809213f,0.990443f},{0.173376f,-0.234368f,0.956563f}, -{-0.0998722f,-0.0481502f,0.993835f},{0.168055f,-0.0433064f,0.984826f},{-0.101326f,0.0145724f,0.994747f}, -{0.0843648f,0.148394f,0.985323f},{-0.130019f,0.0931257f,0.987129f},{-0.0359753f,0.269135f,0.96243f}, -{-0.178792f,0.15071f,0.972276f},{-0.151761f,0.310221f,0.938473f},{-0.229283f,0.174998f,0.957499f}, -{-0.2678f,0.5358f,0.800751f},{-0.35637f,0.423467f,0.832872f},{-0.476561f,0.294623f,0.828304f}, -{-0.558104f,0.164185f,0.813365f},{-0.609262f,0.0354151f,0.792178f},{-0.62625f,-0.121961f,0.770023f}, -{-0.567602f,-0.338786f,0.750368f},{-0.380861f,-0.573083f,0.725617f},{-0.102764f,-0.720569f,0.685726f}, -{0.167181f,-0.746836f,0.643651f},{0.393748f,-0.676346f,0.62251f},{0.583979f,-0.49102f,0.646427f}, -{0.672544f,-0.139115f,0.726865f},{0.53245f,0.270395f,0.802112f},{0.252808f,0.510165f,0.822083f}, -{-0.000430566f,0.567174f,0.823598f},{-0.144443f,0.416356f,0.897655f},{-0.17502f,0.398991f,0.900097f}, -{-0.244077f,0.810462f,0.532521f},{-0.388554f,0.67049f,0.632036f},{-0.585245f,0.450842f,0.673966f}, -{-0.698492f,0.217713f,0.681697f},{-0.757717f,-0.00531936f,0.652561f},{-0.770035f,-0.256798f,0.584039f}, -{-0.673661f,-0.561197f,0.480873f},{-0.405964f,-0.834516f,0.372525f},{-0.037435f,-0.955912f,0.291259f}, -{0.30449f,-0.923199f,0.234498f},{0.590489f,-0.787303f,0.177417f},{0.834721f,-0.536296f,0.125006f}, -{0.983082f,-0.12496f,0.133923f},{0.894006f,0.377014f,0.242101f},{0.565197f,0.73007f,0.384122f}, -{0.199286f,0.847592f,0.491806f},{-0.012911f,0.718485f,0.695423f},{-0.0557474f,0.689361f,0.722269f}, -{-0.227453f,0.884551f,0.407227f},{-0.333236f,0.830407f,0.446518f},{-0.595902f,0.602506f,0.530931f}, -{-0.750001f,0.315665f,0.581252f},{-0.817264f,0.0288773f,0.575539f},{-0.822818f,-0.269884f,0.500134f}, -{-0.71988f,-0.598072f,0.352255f},{-0.447652f,-0.874512f,0.186644f},{-0.0739497f,-0.993583f,0.0855858f}, -{0.287303f,-0.956873f,0.0430333f},{0.596468f,-0.802625f,-0.0044153f},{0.842439f,-0.531975f,-0.0854336f}, -{0.979279f,-0.138682f,-0.147577f},{0.942167f,0.319173f,-0.102225f},{0.704603f,0.707437f,0.0553817f}, -{0.351449f,0.908373f,0.226586f},{0.114208f,0.945229f,0.305776f},{0.0986314f,0.941089f,0.323454f}, -{0.279076f,0.301266f,0.911787f},{0.274592f,0.174388f,0.945615f},{0.329298f,0.2523f,0.909894f}, -{0.314929f,0.1548f,0.936406f},{0.393563f,0.19355f,0.898692f},{0.344531f,0.121608f,0.930865f}, -{0.440574f,0.129756f,0.88829f},{0.358316f,0.0865388f,0.929581f},{0.468003f,0.0598537f,0.881698f}, -{0.359773f,0.0538922f,0.931482f},{0.468217f,-0.0283817f,0.883158f},{0.348396f,0.0130332f,0.937257f}, -{0.422711f,-0.146026f,0.894422f},{0.311357f,-0.0425282f,0.949341f},{0.314744f,-0.27671f,0.907947f}, -{0.244769f,-0.0926728f,0.965142f},{0.162371f,-0.373759f,0.913203f},{0.175773f,-0.11056f,0.978203f}, -{0.0114408f,-0.403112f,0.915079f},{0.132328f,-0.100494f,0.986099f},{-0.105896f,-0.3578f,0.927774f}, -{0.111692f,-0.0809209f,0.990443f},{-0.173376f,-0.234368f,0.956563f},{0.0998722f,-0.0481507f,0.993835f}, -{-0.168055f,-0.0433065f,0.984826f},{0.101326f,0.0145723f,0.994747f},{-0.0843647f,0.148394f,0.985323f}, -{0.130019f,0.0931262f,0.987128f},{0.0359753f,0.269135f,0.96243f},{0.178792f,0.150709f,0.972276f}, -{0.151761f,0.310221f,0.938473f},{0.229284f,0.174998f,0.957499f},{0.2678f,0.5358f,0.800751f}, -{0.35637f,0.423467f,0.832872f},{0.476561f,0.294623f,0.828304f},{0.558104f,0.164184f,0.813365f}, -{0.609262f,0.0354153f,0.792177f},{0.626251f,-0.121961f,0.770023f},{0.567602f,-0.338786f,0.750368f}, -{0.380861f,-0.573083f,0.725617f},{0.102764f,-0.720569f,0.685726f},{-0.167181f,-0.746836f,0.643651f}, -{-0.393747f,-0.676347f,0.622509f},{-0.583979f,-0.49102f,0.646427f},{-0.672543f,-0.139115f,0.726865f}, -{-0.53245f,0.270395f,0.802112f},{-0.252808f,0.510165f,0.822083f},{0.000430498f,0.567174f,0.823598f}, -{0.144443f,0.416356f,0.897655f},{0.17502f,0.398991f,0.900097f},{0.244077f,0.810462f,0.532521f}, -{0.388554f,0.67049f,0.632036f},{0.585245f,0.450842f,0.673966f},{0.698492f,0.217713f,0.681697f}, -{0.757717f,-0.00531963f,0.652562f},{0.770035f,-0.256798f,0.584039f},{0.673661f,-0.561197f,0.480873f}, -{0.405965f,-0.834516f,0.372525f},{0.0374351f,-0.955912f,0.291259f},{-0.30449f,-0.923199f,0.234498f}, -{-0.590489f,-0.787303f,0.177417f},{-0.834721f,-0.536297f,0.125006f},{-0.983082f,-0.12496f,0.133923f}, -{-0.894006f,0.377014f,0.242101f},{-0.565197f,0.73007f,0.384122f},{-0.199286f,0.847592f,0.491806f}, -{0.012911f,0.718485f,0.695423f},{0.0557474f,0.689362f,0.722269f},{0.227453f,0.884551f,0.407227f}, -{0.333236f,0.830407f,0.446518f},{0.595902f,0.602506f,0.53093f},{0.750001f,0.315666f,0.581252f}, -{0.817264f,0.0288774f,0.575539f},{0.822817f,-0.269884f,0.500134f},{0.71988f,-0.598072f,0.352255f}, -{0.447652f,-0.874512f,0.186644f},{0.0739498f,-0.993583f,0.0855857f},{-0.287303f,-0.956873f,0.0430335f}, -{-0.596468f,-0.802625f,-0.00441504f},{-0.842439f,-0.531975f,-0.0854334f},{-0.979279f,-0.138682f,-0.147577f}, -{-0.942167f,0.319173f,-0.102225f},{-0.704604f,0.707437f,0.0553818f},{-0.351449f,0.908373f,0.226586f}, -{-0.114207f,0.945229f,0.305777f},{-0.0986314f,0.941089f,0.323454f} -} - -}; - -static GLfloat textures [84][2] = { -//lid 1 -{0.0f,1.0f},{0.0f,0.875f},{0.0625f,0.875f}, -{0.0625f,1.0f},{0.125f,0.875f},{0.125f,1.0f}, -{0.1875f,0.875f},{0.1875f,1.0f},{0.25f,0.875f}, -{0.25f,1.0f},{0.3125f,0.875f},{0.3125f,1.0f}, -{0.375f,0.875f},{0.375f,1.0f},{0.4375f,0.875f}, -{0.4375f,1.0f},{0.5f,0.875f},{0.5f,1.0f}, -{0.5625f,0.875f},{0.5625f,1.0f},{0.625f,0.875f}, -{0.625f,1.0f},{0.6875f,0.875f},{0.6875f,1.0f}, -{0.75f,0.875f},{0.75f,1.0f},{0.8125f,0.875f}, -{0.8125f,1.0f},{0.875f,0.875f},{0.875f,1.0f}, -{0.9375f,0.875f},{0.9375f,1.0f},{1.0f,0.875f}, -{0.0f,0.75f},{0.0625f,0.75f},{0.125f,0.75f}, -{0.1875f,0.75f},{0.25f,0.75f},{0.3125f,0.75f}, -{0.375f,0.75f},{0.4375f,0.75f},{0.5f,0.75f}, -{0.5625f,0.75f},{0.625f,0.75f},{0.6875f,0.75f}, -{0.75f,0.75f},{0.8125f,0.75f},{0.875f,0.75f}, -{0.9375f,0.75f},{1.0f,0.75f},{0.0f,0.625f}, -{0.0625f,0.625f},{0.125f,0.625f},{0.1875f,0.625f}, -{0.25f,0.625f},{0.3125f,0.625f},{0.375f,0.625f}, -{0.4375f,0.625f},{0.5f,0.625f},{0.5625f,0.625f}, -{0.625f,0.625f},{0.6875f,0.625f},{0.75f,0.625f}, -{0.8125f,0.625f},{0.875f,0.625f},{0.9375f,0.625f}, -{1.0f,0.625f},{0.0f,0.5f},{0.0625f,0.5f}, -{0.125f,0.5f},{0.1875f,0.5f},{0.25f,0.5f}, -{0.3125f,0.5f},{0.375f,0.5f},{0.4375f,0.5f}, -{0.5f,0.5f},{0.5625f,0.5f},{0.625f,0.5f}, -{0.6875f,0.5f},{0.75f,0.5f},{0.8125f,0.5f}, -{0.875f,0.5f},{0.9375f,0.5f},{1.0f,0.5f} -}; - -static int material_ref [1][2] = { -{0,448} -}; - -static void MyMaterial(GLenum mode,GLfloat *f,GLfloat alpha) -{ - GLfloat d[4]; - d[0]=f[0]; - d[1]=f[1]; - d[2]=f[2]; - d[3]=alpha; - glMaterialfv (GL_FRONT_AND_BACK,mode,d); -}; - - -static void SelectMaterial(int i) -{ - // - // Define the reflective properties of the 3D Object faces. - // - glEnd(); - GLfloat alpha=materials[i].alpha; - MyMaterial (GL_AMBIENT, materials[i].ambient,alpha); - MyMaterial (GL_DIFFUSE, materials[i].diffuse,alpha); - MyMaterial (GL_SPECULAR, materials[i].specular,alpha); - MyMaterial (GL_EMISSION, materials[i].emission,alpha); - glMaterialf (GL_FRONT_AND_BACK,GL_SHININESS,materials[i].phExp); - glBegin(GL_TRIANGLES); - -}; - -static GLint Gen3DObjectList(int numlid) -{ - int i; - int j; - - GLint lid=glGenLists(1); - int mcount=0; - int mindex=0; - glNewList(lid, GL_COMPILE); - - glBegin (GL_TRIANGLES); - for(i=0;i<sizeof(face_indicies[numlid])/sizeof(face_indicies[numlid][0]);i++) - { - if(!mcount) - { - SelectMaterial(material_ref[mindex][0]); - mcount=material_ref[mindex][1]; - mindex++; - } - mcount--; - for(j=0;j<3;j++) - { - int vi=face_indicies[numlid][i][j]; - int ni=face_indicies[numlid][i][j+3];//Normal index - int ti=face_indicies[numlid][i][j+6];//Texture index - glNormal3f (normals[numlid][ni][0],normals[numlid][ni][1],normals[numlid][ni][2]); - glTexCoord2f(textures[ti][0],textures[ti][1]); - glVertex3f (vertices[numlid][vi][0],vertices[numlid][vi][1],vertices[numlid][vi][2]); - } - } - glEnd (); - - glEndList(); - return lid; -}; - -void initLids(){ - GLint test; - int i; - for(i=0;i<NUM_LIDS;i++){ - lidLists[i]=Gen3DObjectList(i); - } -}; - -void drawLids(int num) { - glCallList(lidLists[num]); -}
--- a/plugins/crazychat/lids.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -void initLids(); - -void drawLid(int num); \ No newline at end of file
--- a/plugins/crazychat/main.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/sw/#ifdef __APPLE_CC__ -#include <Carbon/Carbon.h> -#else -#include <Carbon.h> -#endif - - -#include "Utilities.h" -#include "QTUtilities.h" - -#include "camdata.h" -#include "camproc.h" - - -#define BailErr(err) {if(err != noErr) goto bail;} - - -int main(void) -{ - EnterMovies(); - CamProc(); // change this prototype-> no windows - fprintf(stderr, "you have just murdered 1000 people."); - RunApplicationEventLoop(); - return 0; -} \ No newline at end of file
--- a/plugins/crazychat/mat_struct.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -#include <GL/gl.h> -#include <GL/glu.h> - -typedef struct sample_MATERIAL{ - GLfloat ambient[3]; - GLfloat diffuse[3]; - GLfloat specular[3]; - GLfloat emission[3]; - GLfloat alpha; - GLfloat phExp; - int texture; -}sample_MATERIAL; \ No newline at end of file
--- a/plugins/crazychat/models.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -#include"glm.h" -#include <GL/gl.h> -#include <GL/glu.h> -#include "face.h" - -#define ASCII_DIGITS 48 - -void init_lists(GLint** lists, GLMmodel*** models, int num_lists, char* name, float my_scale){ - int i; - char c; - GLint* temp_lists; - GLMmodel** temp_models; - char* temp = (char*)malloc(sizeof(char) * (strlen(name) + strlen(".obj" + 3))); - GLMmodel* model; - float dum; - temp_lists = (GLint*)malloc(sizeof(GLint) * num_lists); - temp_models = (GLMmodel**)malloc(sizeof(GLMmodel*) * num_lists); - - for(i=0;i<num_lists;i++) { - strcpy(temp, name); - if(i<10){ - c = (char)(ASCII_DIGITS+i); - strncat(temp, &c, 1); - } - else{ - c = (char)(i/10+ASCII_DIGITS); - strncat(temp, &c, 1); - c = (char)(i%10 + ASCII_DIGITS); - strncat(temp, &c, 1); - } - strcat(temp, ".obj"); - temp_models[i]=glmReadOBJ(temp); - glmScale(temp_models[i], my_scale); - dum =glmUnitize(temp_models[i]); // this actually just centers - //printf("%s factor %f", temp, dum); - temp_lists[i]=glmList(temp_models[i], GLM_SMOOTH); - } - - *lists = temp_lists; - *models = temp_models; - free(temp); -} - -int compute_lid(BOOL open, int curr_lid, int max){ - if(open) { - if(curr_lid < max){ - curr_lid++; - } - else - curr_lid=max; - } - else { - if(curr_lid >=2){ - curr_lid-=2; - } - else if(curr_lid==1){ - curr_lid--; - } - curr_lid=0; - } - return curr_lid; -} - -void apply_output_mode(FACE f, GLfloat* angle, GLfloat* yangle, BOOL* left_open, BOOL* right_open, GLfloat* open, DIRECTION* dir) -{ - struct doggy_struct* dog = (struct doggy_struct*)f->char_struct; - if(f->my_mode==NORMAL){ - f->curr_z_angle=0; - return; - } - if(f->my_mode==CRAZY1){ - f->curr_z_angle = f->curr_z_angle+ANGLE_INC; - *angle = f->curr_z_angle; - } -}
--- a/plugins/crazychat/models.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -#include"glm.h" -#include <GL/gl.h> -#include <GL/glu.h> - -void init_lists(GLint** lists, GLMmodel*** models, int num_lists, char* name, float my_scale); - -int compute_lid(BOOL open, int curr_lid, int max); - -void apply_output_mode(FACE f, GLfloat* angle, GLfloat* yangle, BOOL* left_open, BOOL* right_open, GLfloat* open, DIRECTION* dir); \ No newline at end of file
--- a/plugins/crazychat/sharky.c Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,249 +0,0 @@ -#include "face.h" -#include "sharky.h" -#include <GL/gl.h> -#include <GL/glu.h> -#include "models.h" - -#define NUM_SHARKS 12 -#define NUM_SHARK_LIDS 10 -#define NUM_FINS 4 -#define NUM_SHARK_EYES 1 -#define NUM_SHARK_PUPILS 1 -#define NUM_SHARK_IRIS 1 -#define SHARK_SCALE .025 -#define SHARK_EYES_Y 7.5*SHARK_SCALE // .295 -#define SHARK_EYES_X 28.89*SHARK_SCALE // .26 -#define SHARK_EYES_Z 56*SHARK_SCALE // .38 -#define SHARK_FINS_X 75*SHARK_SCALE //.65 -#define SHARK_FINS_Y -44*SHARK_SCALE//.18 -#define SHARK_FINS_Z -15*SHARK_SCALE //.05 -#define SHARK_IRIS_X 0*SHARK_SCALE -#define SHARK_IRIS_Y 1.67*SHARK_SCALE//.015 -#define SHARK_IRIS_Z 5.0*SHARK_SCALE//.08 -#define SHARK_PUP_X 0*SHARK_SCALE -#define SHARK_PUP_Y 0*SHARK_SCALE -#define SHARK_PUP_Z 2.5*SHARK_SCALE //.028 -#define SHARK_IRIS_SCALE .10*SHARK_SCALE -#define SHARK_PUP_SCALE .08*SHARK_SCALE -#define SHARK_FIN_SCALE .9*SHARK_SCALE -#define SHARK_EYE_SCALE .7*SHARK_SCALE -#define SHARK_LID_SCALE .84*SHARK_SCALE -#define SHARK_HEAD_SCALE .58*SHARK_SCALE -#define TOP_FIN_X 0*SHARK_SCALE -#define TOP_FIN_Y 4*SHARK_SCALE -#define TOP_FIN_Z 25*SHARK_SCALE -#define BOT_FIN_X 0*SHARK_SCALE -#define BOT_FIN_Y 9*SHARK_SCALE -#define BOT_FIN_Z -70*SHARK_SCALE -#define TOP_FIN_SCALE 2*SHARK_SCALE -#define MAX_FIN_ANGLE 90.0 -#define MIN_FIN_ANGLE -20.0 -#define ANGLE_INC 60 -float fins=0; - - -char shark_mtl_file[MAX_FILE_LEN] = "dog.mtl"; -// the initial dog materials -GLint init_shark_mats[NUM_PARTS] = {1, 2, 3, 4, 5, 3, 5, 0, 0, 0}; - -void draw_shark_pupil(FACE f, PART p) { - struct shark_struct* shark=(struct shark_struct*)f->char_struct; - glPushMatrix(); - glTranslatef(SHARK_IRIS_X, -SHARK_IRIS_Z, SHARK_IRIS_Y); - if(p==LEFT_IRIS) - glmSetMat(f->materials, f->mat_indeces[LEFT_IRIS]); - else - glmSetMat(f->materials, f->mat_indeces[RIGHT_IRIS]); - glCallList(shark->iris[0]); - glTranslatef(SHARK_PUP_X, -SHARK_PUP_Z, SHARK_PUP_Y); - glmSetMat(f->materials, f->mat_indeces[PUPIL]); - glCallList(shark->pupil[0]); - glPopMatrix(); -} - -void draw_shark_left_eye(FACE f, BOOL open, int max) { - struct shark_struct* shark=(struct shark_struct*)f->char_struct; - if(f->my_mode==CRAZY2) - shark->curr_left_lid=NUM_SHARK_LIDS-1; - else - shark->curr_left_lid = compute_lid(open, shark->curr_left_lid, max); - glPushMatrix(); - glTranslatef(-SHARK_EYES_X, 0.0, 0.0); - glPushMatrix(); - glTranslatef(0.0, -f->curr_eye_pop, 0.0); - draw_shark_pupil(f, LEFT_IRIS); - glmSetMat(f->materials, f->mat_indeces[EYES]); - glCallList(shark->eyes[shark->curr_left_eye]); - glPopMatrix(); - glmSetMat(f->materials, f->mat_indeces[LIDS]); - glCallList(shark->lids[shark->curr_left_lid]); - glPopMatrix(); -} - -void draw_shark_right_eye(FACE f, BOOL open, int max) { - struct shark_struct* shark=(struct shark_struct*)f->char_struct; - if(f->my_mode==CRAZY2) - shark->curr_right_lid=NUM_SHARK_LIDS-1; - else - shark->curr_right_lid = compute_lid(open, shark->curr_right_lid, max); - glPushMatrix(); - glTranslatef(SHARK_EYES_X, 0.0, 0.0); - glPushMatrix(); - glTranslatef(0.0, -f->curr_eye_pop, 0.0); - draw_shark_pupil(f, RIGHT_IRIS); - glmSetMat(f->materials, f->mat_indeces[EYES]); - glCallList(shark->eyes[shark->curr_right_eye]); - glPopMatrix(); - glmSetMat(f->materials, f->mat_indeces[LIDS]); - glCallList(shark->lids[shark->curr_right_lid]); - glPopMatrix(); -} - -void shark_eyes(FACE f, GLfloat angle, GLfloat yangle, BOOL left_open, BOOL right_open, DIRECTION dir) -{ - struct shark_struct* shark=(struct shark_struct*)f->char_struct; - int max_eye; - if(dir==CONST) { //then not moving, eyes are gettin sleepy - f->eye_count--; - } - else{ - f->eye_count=EYE_TIME*NUM_SHARK_LIDS-1; - } - max_eye=f->eye_count/EYE_TIME; - if(max_eye<0) - max_eye=0; - if(f->my_mode==CRAZY2) - f->curr_eye_pop=f->curr_eye_pop + (MAX_EYE_POP - f->curr_eye_pop)/2; - else - f->curr_eye_pop=f->curr_eye_pop - (f->curr_eye_pop-0)/2; - glPushMatrix(); - glTranslatef(0, 0, SHARK_EYES_Y); - glTranslatef(0, -SHARK_EYES_Z,0); - draw_shark_left_eye(f, left_open, max_eye); - draw_shark_right_eye(f, right_open, max_eye); - glPopMatrix(); -} - -void shark_fins(FACE f, DIRECTION dir){ - struct shark_struct* shark=(struct shark_struct*)f->char_struct; - - if(dir==DOWN){ - if(shark->curr_fin < (NUM_FINS-1)) - shark->curr_fin++; - shark->curr_fin_angle = shark->curr_fin_angle+(MAX_FIN_ANGLE-shark->curr_fin_angle)/2; - } - if(dir==UP){ - if(shark->curr_fin > 0) - shark->curr_fin--; - shark->curr_fin_angle = shark->curr_fin_angle+(MIN_FIN_ANGLE-shark->curr_fin_angle)/2; - } - else if(dir==CONST){ - shark->curr_fin=1; - shark->curr_fin_angle = shark->curr_fin_angle+(0-shark->curr_fin_angle)/3; - } - - glPushMatrix(); - glTranslatef(-SHARK_FINS_X, -SHARK_FINS_Z, SHARK_FINS_Y); - if(f->my_mode==CRAZY1) - glRotatef(MAX_FIN_ANGLE, 0.0, 1.0, 0.0); - else - glRotatef(shark->curr_fin_angle, 0.0, 1.0, 0.0); - glmSetMat(f->materials, f->mat_indeces[APPENDAGE]); - glCallList(shark->fins[shark->curr_fin]); - glPopMatrix(); - glPushMatrix(); - glTranslatef(SHARK_FINS_X, -SHARK_FINS_Z, SHARK_FINS_Y); - glScalef(-1, 1, 1); - if(f->my_mode==CRAZY1) - glRotatef(MIN_FIN_ANGLE, 0.0, 1.0, 0.0); - else - glRotatef(shark->curr_fin_angle, 0.0, 1.0, 0.0); - glCallList(shark->fins[shark->curr_fin]); - glPopMatrix(); -} - -void draw_back_fins(FACE f){ - struct shark_struct* shark=(struct shark_struct*)f->char_struct; - glPushMatrix(); - glTranslatef(0, fins, TOP_FIN_Y); - glRotatef(180, 0.0, 1.0, 0.0); - glScalef(.5*TOP_FIN_SCALE,TOP_FIN_SCALE,TOP_FIN_SCALE); - glmSetMat(f->materials, f->mat_indeces[APPENDAGE]); - glCallList(shark->fins[2]); - glPopMatrix(); - -} - -void draw_shark(FACE f, GLfloat angle, GLfloat yangle, BOOL left_open, BOOL right_open, GLfloat open, DIRECTION dir, OUTPUT_MODE mode){ - int next_face; - struct shark_struct* shark; - - f->crazy_count--; - if(f->crazy_count==0){ - f->my_mode = mode; - if(mode!=NORMAL) - f->crazy_count = CRAZY_COUNT; - else - f->crazy_count = 1; - } - apply_output_mode(f, &angle, &yangle, &left_open, &right_open, &open, &dir); - next_face = NUM_SHARKS - open*NUM_SHARKS - 1; - shark = (struct shark_struct*)f->char_struct; - if(next_face > shark->curr_face) - shark->curr_face++; - else if(next_face < shark->curr_face) - shark->curr_face--; - - glPushMatrix(); - glRotatef(-90, 1.0, 0.0, 0.0); - glRotatef(-yangle, 0.0, 0.0, -1.0); - glRotatef(-angle, 0, 1, 0); - shark_eyes(f, angle, yangle, left_open, right_open, dir); - shark_fins(f, dir); - //draw_back_fins(f); - glmSetMat(f->materials, f->mat_indeces[HEAD]); - glCallList(shark->faces[shark->curr_face]); - glPopMatrix(); -} - - -void init_shark(FACE f){ - int i; - struct shark_struct* shark; - f->char_struct = (struct shark_struct*)malloc(sizeof(struct shark_struct)); - f->materials = glmMTL(shark_mtl_file); - f->mat_indeces=(GLint*)malloc(sizeof(GLint)*NUM_PARTS); - //initialize all of the parts to some colors - change_materials(f, init_shark_mats, NUM_PARTS); - f->my_mode = NORMAL; - f->eye_count = EYE_TIME*NUM_SHARK_LIDS-1; - f->crazy_count = 1; - f->curr_z_angle = 0; - f->curr_eye_pop = 0; - f->name = strdup("sharky"); - f->draw_func = draw_shark; - shark = (struct shark_struct*)f->char_struct; - - printf("\nReading models: "); - fflush(0); - - //initialize the draw lists - init_lists(&shark->faces, &shark->m_faces, NUM_SHARKS, f->name, SHARK_HEAD_SCALE); - init_lists(&shark->lids, &shark->m_lids, NUM_SHARK_LIDS, "sharkylid", SHARK_LID_SCALE); - init_lists(&shark->fins, &shark->m_fins, NUM_FINS, "sharkyfin", SHARK_FIN_SCALE); - init_lists(&shark->eyes, &shark->m_eyes, NUM_SHARK_EYES, "sharkyeye", SHARK_EYE_SCALE); - init_lists(&shark->pupil, &shark->m_pupil, NUM_SHARK_PUPILS, "sharkypupil", SHARK_PUP_SCALE); - init_lists(&shark->iris, &shark->m_iris, NUM_SHARK_IRIS, "sharkyiris", SHARK_IRIS_SCALE); - - printf("\n"); - fflush(0); - - shark->curr_face = 0; - shark->curr_fin = 1; - shark->curr_left_lid = 0; - shark->curr_right_lid = 0; - shark->curr_left_eye = 0; - shark->curr_right_eye = 0; - shark->curr_pupil = 0; - shark->curr_fin_angle = 0; -}
--- a/plugins/crazychat/sharky.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -#include "glm.h" - -struct shark_struct{ - GLint* faces, *lids, *fins, *eyes, *iris, *pupil; - GLMmodel** m_faces, **m_lids, **m_fins, **m_eyes, **m_iris, **m_pupil; - int curr_face, curr_fin, curr_left_lid, curr_right_lid, curr_right_eye, curr_left_eye, curr_pupil, eye_count; - float curr_fin_angle; -}; - -void init_shark(FACE f); \ No newline at end of file
--- a/plugins/crazychat/test.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ -class Test { - public: - Test(); - ~Test(); - void runTest(); - private: - asdfint fake; -}; \ No newline at end of file
--- a/plugins/crazychat/util.h Tue Aug 09 07:10:23 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -#ifndef __UTIL_H__ -#define __UTIL_H__ - -#include <pthread.h> -#include <debug.h> - -#define THREAD_CREATE(thread, func, args) \ - do { \ - assert(!pthread_create(thread, NULL, func, args)); \ - } while(0) - -#define THREAD_JOIN(thread) \ - do { \ - assert(!pthread_join(thread, NULL)); \ - } while(0) - -#define MUTEX_INIT(mutex) \ - do { \ - assert(!pthread_mutex_init(mutex, NULL)); \ - } while(0) - -#define MUTEX_DESTROY(mutex) \ - do { \ - assert(!pthread_mutex_destroy(mutex)); \ - } while(0) - -#define MUTEX_LOCK(mutex) \ - do { \ - assert(!pthread_mutex_lock(mutex)); \ - } while(0) - -#define MUTEX_UNLOCK(mutex) \ - do { \ - assert(!pthread_mutex_unlock(mutex)); \ - } while(0) - -#define COND_INIT(cond) \ - do { \ - assert(!pthread_cond_init(cond, NULL)); \ - } while(0) - -#define COND_SIGNAL(cond, mutex) \ - do { \ - MUTEX_LOCK(mutex); \ - assert(!pthread_cond_signal(cond)); \ - MUTEX_UNLOCK(mutex); \ - } while(0) - -#define COND_WAIT(cond, mutex) \ - do { \ - assert(!pthread_cond_wait(cond, mutex)); \ - } while(0) - -#define COND_DESTROY(cond) \ - do { \ - assert(!pthread_cond_destroy(cond)); \ - } while(0) - -#define SET_TIME(x) \ - do { \ - assert(!gettimeofday((x), NULL)); \ - } while(0) - -#define SET_TIMEOUT(timespec, given_timeout) /* timeout is in ms */ \ - do { \ - struct timeval* curr = (struct timeval*)(timespec); \ - unsigned int tout; \ - if (given_timeout > 100) { \ - tout = given_timeout; \ - } else { \ - tout = 100; \ - } \ - SET_TIME(curr); \ - curr->tv_sec += (tout / 1000); \ - curr->tv_usec /= 1000; /* set to ms */ \ - curr->tv_usec += (tout % 1000); \ - curr->tv_sec += (curr->tv_usec / 1000); \ - curr->tv_usec = (curr->tv_usec % 1000); \ - curr->tv_usec *= 1000000; \ - } while (0) - -#endif - -/* -- gcc specific vararg macro support ... but its so nice! -- */ -#ifdef _DEBUG_ -#define Debug(x, args...) \ - do { \ - printf(x, ## args); \ - gaim_debug(GAIM_DEBUG_INFO, "crazychat", x, ## args); \ - } while (0) -#else -#define Debug(x, args...) do{}while(0) -#endif