more work on Bullet serialization (added support for btConvexHullSupport)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
SUBDIRS( OpenGL BasicDemo Benchmarks Box2dDemo SerializeDemo )
|
||||
SUBDIRS( OpenGL BasicDemo Benchmarks Box2dDemo ConvexDecompositionDemo SerializeDemo )
|
||||
|
||||
|
||||
#todo: re-enable the rest of the demos again
|
||||
|
||||
@@ -12,15 +12,36 @@ SET(GLUT_ROOT ${BULLET_PHYSICS_SOURCE_DIR}/Glut)
|
||||
########################################################
|
||||
|
||||
INCLUDE_DIRECTORIES(
|
||||
${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL ${BULLET_PHYSICS_SOURCE_DIR}/Extras/ConvexDecomposition
|
||||
${BULLET_PHYSICS_SOURCE_DIR}/src
|
||||
${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL
|
||||
${BULLET_PHYSICS_SOURCE_DIR}/Extras/ConvexDecomposition
|
||||
${BULLET_PHYSICS_SOURCE_DIR}/Extras/Serialize/BulletFileLoader
|
||||
)
|
||||
|
||||
IF (USE_GLUT)
|
||||
|
||||
LINK_LIBRARIES(
|
||||
OpenGLSupport BulletDynamics BulletCollision LinearMath BulletFileLoader ConvexDecomposition ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}
|
||||
)
|
||||
|
||||
ADD_EXECUTABLE(AppConvexDecompositionDemo
|
||||
main.cpp
|
||||
ConvexDecompositionDemo.cpp
|
||||
ConvexDecompositionDemo.h
|
||||
)
|
||||
ELSE (USE_GLUT)
|
||||
|
||||
LINK_LIBRARIES(
|
||||
OpenGLSupport BulletDynamics BulletCollision LinearMath ConvexDecomposition ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}
|
||||
)
|
||||
OpenGLSupport BulletDynamics BulletCollision LinearMath BulletFileLoader ConvexDecomposition ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}
|
||||
)
|
||||
|
||||
ADD_EXECUTABLE(AppConvexDecompositionDemo
|
||||
main.cpp
|
||||
ConvexDecompositionDemo.cpp
|
||||
)
|
||||
ADD_EXECUTABLE(AppConvexDecompositionDemo
|
||||
WIN32
|
||||
../OpenGL/Win32AppMain.cpp
|
||||
ConvexDecompositionDemo.cpp
|
||||
ConvexDecompositionDemo.h
|
||||
Win32ConvexDecompositionDemo.cpp
|
||||
)
|
||||
|
||||
ENDIF (USE_GLUT)
|
||||
|
||||
|
||||
@@ -23,6 +23,14 @@ subject to the following restrictions:
|
||||
#include "LinearMath/btGeometryUtil.h"
|
||||
#include "BulletCollision/CollisionShapes/btShapeHull.h"
|
||||
|
||||
#define TEST_SERIALIZATION
|
||||
|
||||
#ifdef TEST_SERIALIZATION
|
||||
#include "LinearMath/btSerializer.h"
|
||||
#include "btBulletFile.h"
|
||||
#include "btBulletFileLoader.h"
|
||||
#endif
|
||||
|
||||
//#define USE_PARALLEL_DISPATCHER 1
|
||||
#ifdef USE_PARALLEL_DISPATCHER
|
||||
#include "../../Extras/BulletMultiThreaded/SpuGatheringCollisionDispatcher.h"
|
||||
@@ -91,27 +99,9 @@ bool MyContactCallback (
|
||||
}
|
||||
|
||||
|
||||
void ConvexDecompositionDemo::initPhysics(const char* filename)
|
||||
void ConvexDecompositionDemo::setupEmptyDynamicsWorld()
|
||||
{
|
||||
gContactAddedCallback = &MyContactCallback;
|
||||
|
||||
setTexturing(true);
|
||||
setShadows(true);
|
||||
|
||||
setCameraDistance(26.f);
|
||||
|
||||
ConvexDecomposition::WavefrontObj wo;
|
||||
|
||||
tcount = wo.loadObj(filename);
|
||||
|
||||
if (!tcount)
|
||||
{
|
||||
//when running this app from visual studio, the default starting folder is different, so make a second attempt...
|
||||
tcount = wo.loadObj("../../file.obj");
|
||||
}
|
||||
|
||||
|
||||
m_collisionConfiguration = new btDefaultCollisionConfiguration();
|
||||
m_collisionConfiguration = new btDefaultCollisionConfiguration();
|
||||
|
||||
#ifdef USE_PARALLEL_DISPATCHER
|
||||
#ifdef USE_WIN32_THREADING
|
||||
@@ -151,6 +141,30 @@ void ConvexDecompositionDemo::initPhysics(const char* filename)
|
||||
m_dynamicsWorld->getDispatchInfo().m_enableSPU = true;
|
||||
#endif //USE_PARALLEL_DISPATCHER
|
||||
|
||||
}
|
||||
|
||||
void ConvexDecompositionDemo::initPhysics(const char* filename)
|
||||
{
|
||||
gContactAddedCallback = &MyContactCallback;
|
||||
|
||||
setTexturing(true);
|
||||
setShadows(true);
|
||||
|
||||
setCameraDistance(26.f);
|
||||
|
||||
ConvexDecomposition::WavefrontObj wo;
|
||||
|
||||
tcount = wo.loadObj(filename);
|
||||
|
||||
if (!tcount)
|
||||
{
|
||||
//when running this app from visual studio, the default starting folder is different, so make a second attempt...
|
||||
tcount = wo.loadObj("../../file.obj");
|
||||
}
|
||||
|
||||
|
||||
setupEmptyDynamicsWorld();
|
||||
|
||||
btTransform startTransform;
|
||||
startTransform.setIdentity();
|
||||
startTransform.setOrigin(btVector3(0,-4.5,0));
|
||||
@@ -293,7 +307,7 @@ void ConvexDecompositionDemo::initPhysics(const char* filename)
|
||||
btConvexHullShape* convexShape = new btConvexHullShape(&(vertices[0].getX()),vertices.size());
|
||||
#endif
|
||||
|
||||
convexShape->setMargin(0.01);
|
||||
convexShape->setMargin(0.01f);
|
||||
m_convexShapes.push_back(convexShape);
|
||||
m_convexCentroids.push_back(centroid);
|
||||
m_convexDemo->m_collisionShapes.push_back(convexShape);
|
||||
@@ -371,7 +385,7 @@ void ConvexDecompositionDemo::initPhysics(const char* filename)
|
||||
|
||||
btTransform startTransform;
|
||||
startTransform.setIdentity();
|
||||
startTransform.setOrigin(btVector3(0,2,0));
|
||||
startTransform.setOrigin(btVector3(0,2,14));
|
||||
|
||||
localCreateRigidBody(mass, startTransform,convexShape);
|
||||
|
||||
@@ -438,6 +452,9 @@ void ConvexDecompositionDemo::initPhysics(const char* filename)
|
||||
trans.setOrigin(centroid);
|
||||
btConvexHullShape* convexShape = convexDecomposition.m_convexShapes[i];
|
||||
compound->addChildShape(trans,convexShape);
|
||||
|
||||
btRigidBody* body = localCreateRigidBody( 1.0, trans,convexShape);
|
||||
|
||||
}
|
||||
btScalar mass=10.f;
|
||||
trans.setOrigin(-convexDecompositionObjectOffset);
|
||||
@@ -464,6 +481,30 @@ void ConvexDecompositionDemo::initPhysics(const char* filename)
|
||||
}
|
||||
|
||||
|
||||
#ifdef TEST_SERIALIZATION
|
||||
//test serializing this
|
||||
|
||||
int maxSerializeBufferSize = 1024*1024*5;
|
||||
|
||||
btDefaultSerializer* serializer = new btDefaultSerializer(maxSerializeBufferSize);
|
||||
m_dynamicsWorld->serialize(serializer);
|
||||
|
||||
FILE* f2 = fopen("testFile.bullet","wb");
|
||||
fwrite(serializer->getBufferPointer(),serializer->getCurrentBufferSize(),1,f2);
|
||||
fclose(f2);
|
||||
|
||||
exitPhysics();
|
||||
|
||||
//now try again from the loaded file
|
||||
setupEmptyDynamicsWorld();
|
||||
|
||||
btBulletFileLoader* fileLoader = new btBulletFileLoader(m_dynamicsWorld);
|
||||
|
||||
fileLoader->loadFileFromMemory("testFile.bullet");
|
||||
|
||||
|
||||
|
||||
#endif //TEST_SERIALIZATION
|
||||
|
||||
}
|
||||
|
||||
@@ -481,7 +522,7 @@ void ConvexDecompositionDemo::clientMoveAndDisplay()
|
||||
renderme();
|
||||
|
||||
glFlush();
|
||||
glutSwapBuffers();
|
||||
swapBuffers();
|
||||
|
||||
}
|
||||
|
||||
@@ -499,7 +540,7 @@ void ConvexDecompositionDemo::displayCallback(void) {
|
||||
|
||||
|
||||
glFlush();
|
||||
glutSwapBuffers();
|
||||
swapBuffers();
|
||||
}
|
||||
|
||||
|
||||
@@ -532,12 +573,16 @@ void ConvexDecompositionDemo::exitPhysics()
|
||||
delete shape;
|
||||
}
|
||||
|
||||
m_collisionShapes.clear();
|
||||
|
||||
for (i=0;i<m_trimeshes.size();i++)
|
||||
{
|
||||
btTriangleMesh* mesh = m_trimeshes[i];
|
||||
delete mesh;
|
||||
}
|
||||
|
||||
m_trimeshes.clear();
|
||||
|
||||
|
||||
//delete dynamics world
|
||||
delete m_dynamicsWorld;
|
||||
|
||||
@@ -15,7 +15,15 @@ subject to the following restrictions:
|
||||
#ifndef CONVEX_DECOMPOSITION_DEMO_H
|
||||
#define CONVEX_DECOMPOSITION_DEMO_H
|
||||
|
||||
|
||||
#ifdef _WINDOWS
|
||||
#include "Win32DemoApplication.h"
|
||||
#define PlatformDemoApplication Win32DemoApplication
|
||||
#else
|
||||
#include "GlutDemoApplication.h"
|
||||
#define PlatformDemoApplication GlutDemoApplication
|
||||
#endif
|
||||
|
||||
#include "LinearMath/btAlignedObjectArray.h"
|
||||
|
||||
class btBroadphaseInterface;
|
||||
@@ -28,9 +36,10 @@ class btDefaultCollisionConfiguration;
|
||||
class btTriangleMesh;
|
||||
|
||||
///ConvexDecompositionDemo shows automatic convex decomposition of a concave mesh
|
||||
class ConvexDecompositionDemo : public GlutDemoApplication
|
||||
class ConvexDecompositionDemo : public PlatformDemoApplication
|
||||
{
|
||||
|
||||
void setupEmptyDynamicsWorld();
|
||||
public:
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
#ifdef _WINDOWS
|
||||
/*
|
||||
Bullet Continuous Collision Detection and Physics Library
|
||||
Copyright (c) 2003-2010 Erwin Coumans http://bulletphysics.org
|
||||
|
||||
This software is provided 'as-is', without any express or implied warranty.
|
||||
In no event will the authors be held liable for any damages arising from the use of this software.
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it freely,
|
||||
subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
|
||||
#include "ConvexDecompositionDemo.h"
|
||||
|
||||
///The 'createDemo' function is called from Bullet/Demos/OpenGL/Win32AppMain.cpp to instantiate this particular demo
|
||||
DemoApplication* createDemo()
|
||||
{
|
||||
return new ConvexDecompositionDemo();
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -25,7 +25,6 @@ IF (USE_GLUT)
|
||||
|
||||
ADD_EXECUTABLE(AppSerializeDemo
|
||||
main.cpp
|
||||
${SERIALIZE_FILES}
|
||||
SerializeDemo.cpp
|
||||
SerializeDemo.h
|
||||
)
|
||||
@@ -39,7 +38,6 @@ ELSE (USE_GLUT)
|
||||
WIN32
|
||||
../OpenGL/Win32AppMain.cpp
|
||||
Win32SerializeDemo.cpp
|
||||
${SERIALIZE_FILES}
|
||||
SerializeDemo.cpp
|
||||
SerializeDemo.h
|
||||
)
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "bullet_btConvexInternalShapeData.h"
|
||||
#include "bullet_btPositionAndRadius.h"
|
||||
#include "bullet_btMultiSphereShapeData.h"
|
||||
#include "bullet_btConvexHullShapeData.h"
|
||||
#include "bullet_btCollisionObjectData.h"
|
||||
#include "bullet_btRigidBodyData.h"
|
||||
#endif//__BULLET_H__
|
||||
@@ -36,6 +36,7 @@ namespace Bullet {
|
||||
class btConvexInternalShapeData;
|
||||
class btPositionAndRadius;
|
||||
class btMultiSphereShapeData;
|
||||
class btConvexHullShapeData;
|
||||
class btCollisionObjectData;
|
||||
class btRigidBodyData;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
/* Copyright (C) 2006-2009 Erwin Coumans & Charlie C
|
||||
*
|
||||
* This software is provided 'as-is', without any express or implied
|
||||
* warranty. In no event will the authors be held liable for any damages
|
||||
* arising from the use of this software.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any purpose,
|
||||
* including commercial applications, and to alter it and redistribute it
|
||||
* freely, subject to the following restrictions:
|
||||
*
|
||||
* 1. The origin of this software must not be misrepresented; you must not
|
||||
* claim that you wrote the original software. If you use this software
|
||||
* in a product, an acknowledgment in the product documentation would be
|
||||
* appreciated but is not required.
|
||||
* 2. Altered source versions must be plainly marked as such, and must not be
|
||||
* misrepresented as being the original software.
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*/
|
||||
// Auto generated from makesdna dna.c
|
||||
#ifndef __BULLET_BTCONVEXHULLSHAPEDATA__H__
|
||||
#define __BULLET_BTCONVEXHULLSHAPEDATA__H__
|
||||
|
||||
|
||||
// -------------------------------------------------- //
|
||||
#include "bullet_Common.h"
|
||||
#include "bullet_btConvexInternalShapeData.h"
|
||||
|
||||
namespace Bullet {
|
||||
|
||||
|
||||
// ---------------------------------------------- //
|
||||
class btConvexHullShapeData
|
||||
{
|
||||
public:
|
||||
btConvexInternalShapeData m_convexInternalShapeData;
|
||||
btVector3Data *m_unscaledPointsPtr;
|
||||
int m_numUnscaledPoints;
|
||||
char m_padding[4];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endif//__BULLET_BTCONVEXHULLSHAPEDATA__H__
|
||||
@@ -65,6 +65,7 @@ bool btBulletFileLoader::loadFileFromMemory( bParse::btBulletFile* bulletFile2)
|
||||
case BOX_SHAPE_PROXYTYPE:
|
||||
case SPHERE_SHAPE_PROXYTYPE:
|
||||
case MULTI_SPHERE_SHAPE_PROXYTYPE:
|
||||
case CONVEX_HULL_SHAPE_PROXYTYPE:
|
||||
{
|
||||
btConvexInternalShapeData* bsd = (btConvexInternalShapeData*)shapeData;
|
||||
btVector3 implicitShapeDimensions;
|
||||
@@ -97,7 +98,6 @@ bool btBulletFileLoader::loadFileFromMemory( bParse::btBulletFile* bulletFile2)
|
||||
}
|
||||
case MULTI_SPHERE_SHAPE_PROXYTYPE:
|
||||
{
|
||||
#if 1
|
||||
btMultiSphereShapeData* mss = (btMultiSphereShapeData*)bsd;
|
||||
int numSpheres = mss->m_localPositionArraySize;
|
||||
|
||||
@@ -105,16 +105,26 @@ bool btBulletFileLoader::loadFileFromMemory( bParse::btBulletFile* bulletFile2)
|
||||
btAlignedObjectArray<btScalar> radii;
|
||||
radii.resize(numSpheres);
|
||||
tmpPos.resize(numSpheres);
|
||||
|
||||
for (int i=0;i<numSpheres;i++)
|
||||
{
|
||||
tmpPos[i].deSerialize(mss->m_localPositionArrayPtr[i].m_pos);
|
||||
radii[i] = mss->m_localPositionArrayPtr[i].m_radius;
|
||||
}
|
||||
|
||||
|
||||
shape = new btMultiSphereShape(&tmpPos[0],&radii[0],numSpheres);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
case CONVEX_HULL_SHAPE_PROXYTYPE:
|
||||
{
|
||||
btConvexHullShapeData* convexData = (btConvexHullShapeData*)bsd;
|
||||
int numPoints = convexData->m_numUnscaledPoints;
|
||||
|
||||
btAlignedObjectArray<btVector3> tmpPoints;
|
||||
tmpPoints.resize(numPoints);
|
||||
for (int i=0;i<numPoints;i++)
|
||||
{
|
||||
tmpPoints[i].deSerialize(convexData->m_unscaledPointsPtr[i]);
|
||||
}
|
||||
shape = new btConvexHullShape(&tmpPoints[0].getX(),numPoints,sizeof(btVector3));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
delete dnaString.txt
|
||||
|
||||
Debug\HeaderGenerator.exe
|
||||
|
||||
python bulletGenerate.py
|
||||
@@ -125,6 +125,7 @@ typedef unsigned long uintptr_t;
|
||||
#include "BulletCollision/CollisionShapes/btCollisionShape.h"
|
||||
#include "BulletCollision/CollisionShapes/btConvexInternalShape.h"
|
||||
#include "BulletCollision/CollisionShapes/btMultiSphereShape.h"
|
||||
#include "BulletCollision/CollisionShapes/btConvexHullShape.h"
|
||||
#include "BulletCollision/CollisionDispatch/btCollisionObject.h"
|
||||
#include "BulletDynamics/Dynamics/btRigidBody.h"
|
||||
|
||||
@@ -148,6 +149,7 @@ char *includefiles[] = {
|
||||
"../../../src/BulletCollision/CollisionShapes/btCollisionShape.h",
|
||||
"../../../src/BulletCollision/CollisionShapes/btConvexInternalShape.h",
|
||||
"../../../src/BulletCollision/CollisionShapes/btMultiSphereShape.h",
|
||||
"../../../src/BulletCollision/CollisionShapes/btConvexHullShape.h",
|
||||
"../../../src/BulletCollision/CollisionDispatch/btCollisionObject.h",
|
||||
"../../../src/BulletDynamics/Dynamics/btRigidBody.h",
|
||||
// empty string to indicate end of includefiles
|
||||
|
||||
@@ -17,7 +17,7 @@ subject to the following restrictions:
|
||||
#include "BulletCollision/CollisionShapes/btCollisionMargin.h"
|
||||
|
||||
#include "LinearMath/btQuaternion.h"
|
||||
|
||||
#include "LinearMath/btSerializer.h"
|
||||
|
||||
btConvexHullShape ::btConvexHullShape (const btScalar* points,int numPoints,int stride) : btPolyhedralConvexAabbCachingShape ()
|
||||
{
|
||||
@@ -186,3 +186,28 @@ bool btConvexHullShape::isInside(const btVector3& ,btScalar ) const
|
||||
return false;
|
||||
}
|
||||
|
||||
///fills the dataBuffer and returns the struct name (and 0 on failure)
|
||||
const char* btConvexHullShape::serialize(void* dataBuffer, btSerializer* serializer) const
|
||||
{
|
||||
btConvexHullShapeData* shapeData = (btConvexHullShapeData*) dataBuffer;
|
||||
btConvexInternalShape::serialize(&shapeData->m_convexInternalShapeData, serializer);
|
||||
|
||||
int numElem = m_unscaledPoints.size();
|
||||
shapeData->m_numUnscaledPoints = numElem;
|
||||
shapeData->m_unscaledPointsPtr = numElem ? (btVector3Data*)&m_unscaledPoints[0]: 0;
|
||||
|
||||
if (numElem)
|
||||
{
|
||||
btChunk* chunk = serializer->allocate(sizeof(btVector3Data),numElem);
|
||||
btVector3Data* memPtr = (btVector3Data*)chunk->m_oldPtr;
|
||||
for (int i=0;i<numElem;i++,memPtr++)
|
||||
{
|
||||
m_unscaledPoints[i].serialize(*memPtr);
|
||||
}
|
||||
serializer->finalizeChunk(chunk,"btVector3Data",BT_ARRAY_CODE,(void*)&m_unscaledPoints[0]);
|
||||
}
|
||||
|
||||
return "btConvexHullShapeData";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -89,8 +89,29 @@ public:
|
||||
///in case we receive negative scaling
|
||||
virtual void setLocalScaling(const btVector3& scaling);
|
||||
|
||||
virtual int calculateSerializeBufferSize();
|
||||
|
||||
///fills the dataBuffer and returns the struct name (and 0 on failure)
|
||||
virtual const char* serialize(void* dataBuffer, btSerializer* serializer) const;
|
||||
|
||||
};
|
||||
|
||||
|
||||
struct btConvexHullShapeData
|
||||
{
|
||||
btConvexInternalShapeData m_convexInternalShapeData;
|
||||
|
||||
btVector3Data *m_unscaledPointsPtr;
|
||||
int m_numUnscaledPoints;
|
||||
char m_padding[4];
|
||||
|
||||
};
|
||||
|
||||
SIMD_FORCE_INLINE int btConvexHullShape::calculateSerializeBufferSize()
|
||||
{
|
||||
return sizeof(btConvexHullShapeData);
|
||||
}
|
||||
|
||||
|
||||
#endif //CONVEX_HULL_SHAPE_H
|
||||
|
||||
|
||||
@@ -158,7 +158,7 @@ const char* btMultiSphereShape::serialize(void* dataBuffer, btSerializer* serial
|
||||
m_localPositionArray[i].serialize(memPtr->m_pos);
|
||||
memPtr->m_radius = m_radiArray[i];
|
||||
}
|
||||
serializer->finalizeChunk(chunk,"btVector3Data",BT_ARRAY_CODE,(void*)&m_localPositionArray[0]);
|
||||
serializer->finalizeChunk(chunk,"btPositionAndRadius",BT_ARRAY_CODE,(void*)&m_localPositionArray[0]);
|
||||
}
|
||||
|
||||
return "btMultiSphereShapeData";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
unsigned char sBulletDNAstr[]= {
|
||||
83,68,78,65,78,65,77,69,68,0,0,0,109,95,115,105,122,101,0,109,
|
||||
83,68,78,65,78,65,77,69,70,0,0,0,109,95,115,105,122,101,0,109,
|
||||
95,99,97,112,97,99,105,116,121,0,42,109,95,100,97,116,97,0,109,95,
|
||||
99,111,108,108,105,115,105,111,110,83,104,97,112,101,115,0,109,95,99,111,
|
||||
108,108,105,115,105,111,110,79,98,106,101,99,116,115,0,109,95,99,111,110,
|
||||
@@ -16,84 +16,89 @@ unsigned char sBulletDNAstr[]= {
|
||||
101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,68,97,116,97,0,
|
||||
42,109,95,108,111,99,97,108,80,111,115,105,116,105,111,110,65,114,114,97,
|
||||
121,80,116,114,0,109,95,108,111,99,97,108,80,111,115,105,116,105,111,110,
|
||||
65,114,114,97,121,83,105,122,101,0,109,95,119,111,114,108,100,84,114,97,
|
||||
110,115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,105,
|
||||
111,110,87,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,105,
|
||||
110,116,101,114,112,111,108,97,116,105,111,110,76,105,110,101,97,114,86,101,
|
||||
108,111,99,105,116,121,0,109,95,105,110,116,101,114,112,111,108,97,116,105,
|
||||
111,110,65,110,103,117,108,97,114,86,101,108,111,99,105,116,121,0,109,95,
|
||||
97,110,105,115,111,116,114,111,112,105,99,70,114,105,99,116,105,111,110,0,
|
||||
109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,99,
|
||||
116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,114,111,99,101,115,
|
||||
115,105,110,103,84,104,114,101,115,104,111,108,100,0,42,109,95,98,114,111,
|
||||
97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109,95,99,111,108,
|
||||
108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114,111,111,116,67,
|
||||
111,108,108,105,115,105,111,110,83,104,97,112,101,0,109,95,99,111,108,108,
|
||||
105,115,105,111,110,70,108,97,103,115,0,109,95,105,115,108,97,110,100,84,
|
||||
97,103,49,0,109,95,99,111,109,112,97,110,105,111,110,73,100,0,109,95,
|
||||
97,99,116,105,118,97,116,105,111,110,83,116,97,116,101,49,0,109,95,100,
|
||||
101,97,99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,102,114,
|
||||
105,99,116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,111,110,
|
||||
0,109,95,105,110,116,101,114,110,97,108,84,121,112,101,0,42,109,95,117,
|
||||
115,101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,109,95,104,
|
||||
105,116,70,114,97,99,116,105,111,110,0,109,95,99,99,100,83,119,101,112,
|
||||
116,83,112,104,101,114,101,82,97,100,105,117,115,0,109,95,99,99,100,77,
|
||||
111,116,105,111,110,84,104,114,101,115,104,111,108,100,0,109,95,99,104,101,
|
||||
99,107,67,111,108,108,105,100,101,87,105,116,104,0,109,95,99,111,108,108,
|
||||
105,115,105,111,110,79,98,106,101,99,116,68,97,116,97,0,109,95,105,110,
|
||||
118,73,110,101,114,116,105,97,84,101,110,115,111,114,87,111,114,108,100,0,
|
||||
109,95,108,105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,97,
|
||||
110,103,117,108,97,114,86,101,108,111,99,105,116,121,0,109,95,105,110,118,
|
||||
101,114,115,101,77,97,115,115,0,109,95,97,110,103,117,108,97,114,70,97,
|
||||
99,116,111,114,0,109,95,108,105,110,101,97,114,70,97,99,116,111,114,0,
|
||||
109,95,103,114,97,118,105,116,121,0,109,95,103,114,97,118,105,116,121,95,
|
||||
97,99,99,101,108,101,114,97,116,105,111,110,0,109,95,105,110,118,73,110,
|
||||
101,114,116,105,97,76,111,99,97,108,0,109,95,116,111,116,97,108,70,111,
|
||||
114,99,101,0,109,95,116,111,116,97,108,84,111,114,113,117,101,0,109,95,
|
||||
108,105,110,101,97,114,68,97,109,112,105,110,103,0,109,95,97,110,103,117,
|
||||
108,97,114,68,97,109,112,105,110,103,0,109,95,97,100,100,105,116,105,111,
|
||||
110,97,108,68,97,109,112,105,110,103,0,109,95,97,100,100,105,116,105,111,
|
||||
110,97,108,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,97,
|
||||
100,100,105,116,105,111,110,97,108,76,105,110,101,97,114,68,97,109,112,105,
|
||||
65,114,114,97,121,83,105,122,101,0,42,109,95,117,110,115,99,97,108,101,
|
||||
100,80,111,105,110,116,115,80,116,114,0,109,95,110,117,109,85,110,115,99,
|
||||
97,108,101,100,80,111,105,110,116,115,0,109,95,119,111,114,108,100,84,114,
|
||||
97,110,115,102,111,114,109,0,109,95,105,110,116,101,114,112,111,108,97,116,
|
||||
105,111,110,87,111,114,108,100,84,114,97,110,115,102,111,114,109,0,109,95,
|
||||
105,110,116,101,114,112,111,108,97,116,105,111,110,76,105,110,101,97,114,86,
|
||||
101,108,111,99,105,116,121,0,109,95,105,110,116,101,114,112,111,108,97,116,
|
||||
105,111,110,65,110,103,117,108,97,114,86,101,108,111,99,105,116,121,0,109,
|
||||
95,97,110,105,115,111,116,114,111,112,105,99,70,114,105,99,116,105,111,110,
|
||||
0,109,95,104,97,115,65,110,105,115,111,116,114,111,112,105,99,70,114,105,
|
||||
99,116,105,111,110,0,109,95,99,111,110,116,97,99,116,80,114,111,99,101,
|
||||
115,115,105,110,103,84,104,114,101,115,104,111,108,100,0,42,109,95,98,114,
|
||||
111,97,100,112,104,97,115,101,72,97,110,100,108,101,0,42,109,95,99,111,
|
||||
108,108,105,115,105,111,110,83,104,97,112,101,0,42,109,95,114,111,111,116,
|
||||
67,111,108,108,105,115,105,111,110,83,104,97,112,101,0,109,95,99,111,108,
|
||||
108,105,115,105,111,110,70,108,97,103,115,0,109,95,105,115,108,97,110,100,
|
||||
84,97,103,49,0,109,95,99,111,109,112,97,110,105,111,110,73,100,0,109,
|
||||
95,97,99,116,105,118,97,116,105,111,110,83,116,97,116,101,49,0,109,95,
|
||||
100,101,97,99,116,105,118,97,116,105,111,110,84,105,109,101,0,109,95,102,
|
||||
114,105,99,116,105,111,110,0,109,95,114,101,115,116,105,116,117,116,105,111,
|
||||
110,0,109,95,105,110,116,101,114,110,97,108,84,121,112,101,0,42,109,95,
|
||||
117,115,101,114,79,98,106,101,99,116,80,111,105,110,116,101,114,0,109,95,
|
||||
104,105,116,70,114,97,99,116,105,111,110,0,109,95,99,99,100,83,119,101,
|
||||
112,116,83,112,104,101,114,101,82,97,100,105,117,115,0,109,95,99,99,100,
|
||||
77,111,116,105,111,110,84,104,114,101,115,104,111,108,100,0,109,95,99,104,
|
||||
101,99,107,67,111,108,108,105,100,101,87,105,116,104,0,109,95,99,111,108,
|
||||
108,105,115,105,111,110,79,98,106,101,99,116,68,97,116,97,0,109,95,105,
|
||||
110,118,73,110,101,114,116,105,97,84,101,110,115,111,114,87,111,114,108,100,
|
||||
0,109,95,108,105,110,101,97,114,86,101,108,111,99,105,116,121,0,109,95,
|
||||
97,110,103,117,108,97,114,86,101,108,111,99,105,116,121,0,109,95,105,110,
|
||||
118,101,114,115,101,77,97,115,115,0,109,95,97,110,103,117,108,97,114,70,
|
||||
97,99,116,111,114,0,109,95,108,105,110,101,97,114,70,97,99,116,111,114,
|
||||
0,109,95,103,114,97,118,105,116,121,0,109,95,103,114,97,118,105,116,121,
|
||||
95,97,99,99,101,108,101,114,97,116,105,111,110,0,109,95,105,110,118,73,
|
||||
110,101,114,116,105,97,76,111,99,97,108,0,109,95,116,111,116,97,108,70,
|
||||
111,114,99,101,0,109,95,116,111,116,97,108,84,111,114,113,117,101,0,109,
|
||||
95,108,105,110,101,97,114,68,97,109,112,105,110,103,0,109,95,97,110,103,
|
||||
117,108,97,114,68,97,109,112,105,110,103,0,109,95,97,100,100,105,116,105,
|
||||
111,110,97,108,68,97,109,112,105,110,103,0,109,95,97,100,100,105,116,105,
|
||||
111,110,97,108,68,97,109,112,105,110,103,70,97,99,116,111,114,0,109,95,
|
||||
97,100,100,105,116,105,111,110,97,108,76,105,110,101,97,114,68,97,109,112,
|
||||
105,110,103,84,104,114,101,115,104,111,108,100,83,113,114,0,109,95,97,100,
|
||||
100,105,116,105,111,110,97,108,65,110,103,117,108,97,114,68,97,109,112,105,
|
||||
110,103,84,104,114,101,115,104,111,108,100,83,113,114,0,109,95,97,100,100,
|
||||
105,116,105,111,110,97,108,65,110,103,117,108,97,114,68,97,109,112,105,110,
|
||||
103,84,104,114,101,115,104,111,108,100,83,113,114,0,109,95,97,100,100,105,
|
||||
116,105,111,110,97,108,65,110,103,117,108,97,114,68,97,109,112,105,110,103,
|
||||
70,97,99,116,111,114,0,109,95,108,105,110,101,97,114,83,108,101,101,112,
|
||||
105,110,103,84,104,114,101,115,104,111,108,100,0,109,95,97,110,103,117,108,
|
||||
97,114,83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100,0,
|
||||
84,89,80,69,23,0,0,0,99,104,97,114,0,117,99,104,97,114,0,115,
|
||||
104,111,114,116,0,117,115,104,111,114,116,0,105,110,116,0,108,111,110,103,
|
||||
0,117,108,111,110,103,0,102,108,111,97,116,0,100,111,117,98,108,101,0,
|
||||
118,111,105,100,0,98,116,83,99,97,108,97,114,0,80,111,105,110,116,101,
|
||||
114,65,114,114,97,121,0,98,116,80,104,121,115,105,99,115,83,121,115,116,
|
||||
101,109,0,76,105,115,116,66,97,115,101,0,98,116,86,101,99,116,111,114,
|
||||
51,68,97,116,97,0,98,116,77,97,116,114,105,120,51,120,51,68,97,116,
|
||||
97,0,98,116,84,114,97,110,115,102,111,114,109,68,97,116,97,0,98,116,
|
||||
67,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,116,97,0,98,
|
||||
116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,104,97,112,101,
|
||||
68,97,116,97,0,98,116,80,111,115,105,116,105,111,110,65,110,100,82,97,
|
||||
100,105,117,115,0,98,116,77,117,108,116,105,83,112,104,101,114,101,83,104,
|
||||
97,112,101,68,97,116,97,0,98,116,67,111,108,108,105,115,105,111,110,79,
|
||||
98,106,101,99,116,68,97,116,97,0,98,116,82,105,103,105,100,66,111,100,
|
||||
121,68,97,116,97,0,0,0,84,76,69,78,1,0,1,0,2,0,2,0,
|
||||
4,0,4,0,4,0,4,0,8,0,0,0,4,0,12,0,36,0,8,0,
|
||||
16,0,48,0,64,0,12,0,52,0,20,0,64,0,-8,0,-32,1,0,0,
|
||||
83,84,82,67,12,0,0,0,11,0,3,0,4,0,0,0,4,0,1,0,
|
||||
9,0,2,0,12,0,3,0,11,0,3,0,11,0,4,0,11,0,5,0,
|
||||
13,0,2,0,9,0,6,0,9,0,7,0,14,0,1,0,10,0,8,0,
|
||||
15,0,1,0,14,0,9,0,16,0,2,0,15,0,10,0,14,0,11,0,
|
||||
17,0,3,0,9,0,12,0,4,0,13,0,0,0,14,0,18,0,5,0,
|
||||
17,0,15,0,14,0,16,0,14,0,17,0,10,0,18,0,0,0,14,0,
|
||||
19,0,2,0,14,0,19,0,10,0,20,0,20,0,4,0,18,0,21,0,
|
||||
19,0,22,0,4,0,23,0,0,0,14,0,21,0,23,0,16,0,24,0,
|
||||
16,0,25,0,14,0,26,0,14,0,27,0,14,0,28,0,4,0,29,0,
|
||||
10,0,30,0,9,0,31,0,9,0,32,0,17,0,33,0,4,0,34,0,
|
||||
4,0,35,0,4,0,36,0,4,0,37,0,10,0,38,0,10,0,39,0,
|
||||
10,0,40,0,4,0,41,0,9,0,42,0,10,0,43,0,10,0,44,0,
|
||||
10,0,45,0,4,0,46,0,22,0,21,0,21,0,47,0,15,0,48,0,
|
||||
14,0,49,0,14,0,50,0,10,0,51,0,14,0,52,0,14,0,53,0,
|
||||
14,0,54,0,14,0,55,0,14,0,56,0,14,0,57,0,14,0,58,0,
|
||||
10,0,59,0,10,0,60,0,4,0,61,0,10,0,62,0,10,0,63,0,
|
||||
10,0,64,0,10,0,65,0,10,0,66,0,10,0,67,0,};
|
||||
103,70,97,99,116,111,114,0,109,95,108,105,110,101,97,114,83,108,101,101,
|
||||
112,105,110,103,84,104,114,101,115,104,111,108,100,0,109,95,97,110,103,117,
|
||||
108,97,114,83,108,101,101,112,105,110,103,84,104,114,101,115,104,111,108,100,
|
||||
0,0,0,0,84,89,80,69,24,0,0,0,99,104,97,114,0,117,99,104,
|
||||
97,114,0,115,104,111,114,116,0,117,115,104,111,114,116,0,105,110,116,0,
|
||||
108,111,110,103,0,117,108,111,110,103,0,102,108,111,97,116,0,100,111,117,
|
||||
98,108,101,0,118,111,105,100,0,98,116,83,99,97,108,97,114,0,80,111,
|
||||
105,110,116,101,114,65,114,114,97,121,0,98,116,80,104,121,115,105,99,115,
|
||||
83,121,115,116,101,109,0,76,105,115,116,66,97,115,101,0,98,116,86,101,
|
||||
99,116,111,114,51,68,97,116,97,0,98,116,77,97,116,114,105,120,51,120,
|
||||
51,68,97,116,97,0,98,116,84,114,97,110,115,102,111,114,109,68,97,116,
|
||||
97,0,98,116,67,111,108,108,105,115,105,111,110,83,104,97,112,101,68,97,
|
||||
116,97,0,98,116,67,111,110,118,101,120,73,110,116,101,114,110,97,108,83,
|
||||
104,97,112,101,68,97,116,97,0,98,116,80,111,115,105,116,105,111,110,65,
|
||||
110,100,82,97,100,105,117,115,0,98,116,77,117,108,116,105,83,112,104,101,
|
||||
114,101,83,104,97,112,101,68,97,116,97,0,98,116,67,111,110,118,101,120,
|
||||
72,117,108,108,83,104,97,112,101,68,97,116,97,0,98,116,67,111,108,108,
|
||||
105,115,105,111,110,79,98,106,101,99,116,68,97,116,97,0,98,116,82,105,
|
||||
103,105,100,66,111,100,121,68,97,116,97,0,84,76,69,78,1,0,1,0,
|
||||
2,0,2,0,4,0,4,0,4,0,4,0,8,0,0,0,4,0,12,0,
|
||||
36,0,8,0,16,0,48,0,64,0,12,0,52,0,20,0,64,0,64,0,
|
||||
-8,0,-32,1,83,84,82,67,13,0,0,0,11,0,3,0,4,0,0,0,
|
||||
4,0,1,0,9,0,2,0,12,0,3,0,11,0,3,0,11,0,4,0,
|
||||
11,0,5,0,13,0,2,0,9,0,6,0,9,0,7,0,14,0,1,0,
|
||||
10,0,8,0,15,0,1,0,14,0,9,0,16,0,2,0,15,0,10,0,
|
||||
14,0,11,0,17,0,3,0,9,0,12,0,4,0,13,0,0,0,14,0,
|
||||
18,0,5,0,17,0,15,0,14,0,16,0,14,0,17,0,10,0,18,0,
|
||||
0,0,14,0,19,0,2,0,14,0,19,0,10,0,20,0,20,0,4,0,
|
||||
18,0,21,0,19,0,22,0,4,0,23,0,0,0,14,0,21,0,4,0,
|
||||
18,0,21,0,14,0,24,0,4,0,25,0,0,0,14,0,22,0,23,0,
|
||||
16,0,26,0,16,0,27,0,14,0,28,0,14,0,29,0,14,0,30,0,
|
||||
4,0,31,0,10,0,32,0,9,0,33,0,9,0,34,0,17,0,35,0,
|
||||
4,0,36,0,4,0,37,0,4,0,38,0,4,0,39,0,10,0,40,0,
|
||||
10,0,41,0,10,0,42,0,4,0,43,0,9,0,44,0,10,0,45,0,
|
||||
10,0,46,0,10,0,47,0,4,0,48,0,23,0,21,0,22,0,49,0,
|
||||
15,0,50,0,14,0,51,0,14,0,52,0,10,0,53,0,14,0,54,0,
|
||||
14,0,55,0,14,0,56,0,14,0,57,0,14,0,58,0,14,0,59,0,
|
||||
14,0,60,0,10,0,61,0,10,0,62,0,4,0,63,0,10,0,64,0,
|
||||
10,0,65,0,10,0,66,0,10,0,67,0,10,0,68,0,10,0,69,0,
|
||||
};
|
||||
int sBulletDNAlen= sizeof(sBulletDNAstr);
|
||||
|
||||
Reference in New Issue
Block a user