Skip to content

Commit

Permalink
Merge pull request urho3d#3 from urho3d/master
Browse files Browse the repository at this point in the history
Update fork
  • Loading branch information
MonkeyFirst committed Dec 23, 2015
2 parents 18d6d0d + 65c8125 commit 101b771
Show file tree
Hide file tree
Showing 19 changed files with 71 additions and 78 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ env:
matrix:
fast_finish: true
before_script:
- if [ $IOS ]; then export CI_START_TIME=$(date +%s); fi
- SECONDS=0
- export TRAVIS_COMMIT=$TRAVIS_COMMIT~
- export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
- export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
Expand All @@ -337,7 +337,7 @@ before_script:
- export PATH=$(brew info ccache |grep -o '\S*lib\S*'):$PATH
- if [ $XCODE ]; then sudo cp -p $(which ccache) $(dirname $(xcodebuild -find-executable clang)) && for compiler in clang clang++; do path=$(xcodebuild -find-executable $compiler); sudo mv $path{,.orig} && sudo ln -sf $(dirname $path)/clang.orig /usr/bin/$compiler && sudo ln -sf ccache $path; done; fi
- rake ci_setup_cache
script: rake ci && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload; fi
script: rake ci && if [ $PACKAGE_UPLOAD ] && (($SECONDS / 60 < 40)); then rake ci_package_upload; fi
after_script: rake ci_teardown_cache

---
Expand Down
11 changes: 7 additions & 4 deletions CMake/Modules/FindUrho3D.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -188,16 +188,19 @@ else ()
endif ()
endif ()
# Ensure the module has found the library with the right ABI for the chosen compiler and URHO3D_64BIT build option
if (URHO3D_LIBRARIES AND NOT IOS)
if (URHO3D_LIBRARIES)
if (NOT URHO3D_64BIT AND NOT MSVC AND NOT MINGW AND NOT ANDROID AND NOT RPI AND NOT EMSCRIPTEN)
set (COMPILER_32BIT_FLAG -DCOMPILE_DEFINITIONS:STRING=-m32)
endif ()
if (ANDROID)
if (IOS)
set (CMAKE_OSX_SYSROOT iphoneos) # Since this is anyway the correct sysroot setting for IOS platform, we do not revert the setting back after we are done
set (IOS_FLAGS -DCMAKE_MACOSX_BUNDLE=1 -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=0)
elseif (ANDROID)
set (ANDROID_LIBRARIES "log\;android\;GLESv1_CM\;GLESv2")
endif ()
# xxx_LIBRARIES variable is only populated when targeting respective platform and empty otherwise, so it is safe to always append the variable
# BCM_VC_LIBRARIES variable is already set by FindBCM_VC module on RPI platform
try_compile (COMPILE_RESULT ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_LIST_DIR}/CheckUrho3DLibrary.cpp
CMAKE_FLAGS -DLINK_LIBRARIES:STRING=${URHO3D_LIBRARIES}\;${BCM_VC_LIBRARIES}\;${ANDROID_LIBRARIES} -DINCLUDE_DIRECTORIES:STRING=${URHO3D_INCLUDE_DIRS} ${COMPILER_32BIT_FLAG} ${COMPILER_STATIC_FLAG}
CMAKE_FLAGS ${IOS_FLAGS} -DLINK_LIBRARIES:STRING=${URHO3D_LIBRARIES}\;${BCM_VC_LIBRARIES}\;${ANDROID_LIBRARIES} -DINCLUDE_DIRECTORIES:STRING=${URHO3D_INCLUDE_DIRS} ${COMPILER_32BIT_FLAG} ${COMPILER_STATIC_FLAG}
OUTPUT_VARIABLE TRY_COMPILE_OUT)
endif ()
# For shared library type, also initialize the URHO3D_DLL variable for later use
Expand Down
1 change: 1 addition & 0 deletions Docs/AngelScriptAPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -13956,6 +13956,7 @@ uint MASK_INSTANCEMATRIX2;
uint MASK_INSTANCEMATRIX3;
uint MASK_NONE;
uint MASK_NORMAL;
uint MASK_OBJECTINDEX;
uint MASK_POSITION;
uint MASK_TANGENT;
uint MASK_TEXCOORD1;
Expand Down
2 changes: 2 additions & 0 deletions Docs/LuaScriptAPI.dox
Original file line number Diff line number Diff line change
Expand Up @@ -7650,6 +7650,7 @@ Properties:
- int ELEMENT_INSTANCEMATRIX1
- int ELEMENT_INSTANCEMATRIX2
- int ELEMENT_INSTANCEMATRIX3
- int ELEMENT_OBJECTINDEX
- int MAX_VERTEX_ELEMENTS

### VerticalAlignment
Expand Down Expand Up @@ -8002,6 +8003,7 @@ Properties:
- unsigned MASK_INSTANCEMATRIX3
- unsigned MASK_NONE
- unsigned MASK_NORMAL
- unsigned MASK_OBJECTINDEX
- unsigned MASK_POSITION
- unsigned MASK_TANGENT
- unsigned MASK_TEXCOORD1
Expand Down
1 change: 1 addition & 0 deletions Docs/ScriptAPI.dox
Original file line number Diff line number Diff line change
Expand Up @@ -14800,6 +14800,7 @@ Properties:
- uint MASK_INSTANCEMATRIX3
- uint MASK_NONE
- uint MASK_NORMAL
- uint MASK_OBJECTINDEX
- uint MASK_POSITION
- uint MASK_TANGENT
- uint MASK_TEXCOORD1
Expand Down
19 changes: 7 additions & 12 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ task :make do
cmake_build_options = ''
build_options = ''
unfilter = false
['config', 'target', 'sdk'].each { |var| ARGV << "#{var}=\"#{ENV[var]}\"" if ENV[var] and !ARGV.include? var }
['config', 'target', 'sdk'].each { |var| ARGV << "#{var}=\"#{ENV[var]}\"" if ENV[var] and !ARGV.find { |arg| /#{var}=/ =~ arg } }
ARGV.each { |option|
task option.to_sym do ; end; Rake::Task[option].clear # No-op hack
case option
Expand Down Expand Up @@ -330,7 +330,7 @@ task :ci_emscripten_samples_update do
# Pull or clone
system 'cd ../doc-Build 2>/dev/null && git pull -q -r || git clone --depth 1 -q https://github.com/urho3d/urho3d.github.io.git ../doc-Build' or abort 'Failed to pull/clone'
# Sync Emscripten samples
system "rsync -a --delete --exclude tool ../Build/bin/ ../doc-Build/samples" or abort 'Failed to rsync Emscripten samples'
system "rsync -a --delete --exclude tool --exclude *.pak ../Build/bin/ ../doc-Build/samples" or abort 'Failed to rsync Emscripten samples'
# Update Emscripten json data file
update_emscripten_data or abort 'Failed to update Emscripten json data file'
root_commit, _ = get_root_commit_and_recipients
Expand Down Expand Up @@ -403,16 +403,6 @@ task :ci_package_upload do
end
# Make the package
if ENV['IOS']
# Skip Mach-O universal binary build if Travis-CI VM took too long to get here, as otherwise overall build time may exceed 50 minutes time limit
if ENV['CI_START_TIME'] then
elapsed_time = (Time.now - Time.at(ENV['CI_START_TIME'].to_i)) / 60
puts "\niOS checkpoint reached, elapsed time: #{elapsed_time}\n\n"
end
if !ENV['CI_START_TIME'] || elapsed_time < 20 # minutes
# Build Mach-O universal binary consisting of iphoneos (universal ARM archs including 'arm64' if 64-bit is enabled) and iphonesimulator (i386 arch and also x86_64 arch if 64-bit is enabled)
system 'echo Rebuilding Urho3D library as Mach-O universal binary...'
xcode_build(0, '../Build/Urho3D.xcodeproj', 'Urho3D_universal') or abort 'Failed to build Mach-O universal binary'
end
# There is a bug in CMake/CPack that causes the 'package' target failed to build for IOS platform, workaround by calling cpack directly
system 'cd ../Build && cpack -G TGZ 2>/dev/null' or abort 'Failed to make binary package'
elsif ENV['XCODE']
Expand Down Expand Up @@ -730,6 +720,11 @@ def xcode_ci
end
system "./cmake_macosx.sh ../Build -DIOS=$IOS #{$build_options} -DURHO3D_DATABASE_SQLITE=1 -DURHO3D_LUA#{jit}=1 #{amalg} -DURHO3D_SAMPLES=1 -DURHO3D_TOOLS=1 -DURHO3D_EXTRAS=1 -DURHO3D_TESTING=#{$testing}" or abort 'Failed to configure Urho3D library build'
xcode_build(ENV['IOS'], '../Build/Urho3D.xcodeproj') or abort 'Failed to build or test Urho3D library'
if ENV['IOS']
# Build Mach-O universal binary consisting of iphoneos (universal ARM archs including 'arm64' if 64-bit is enabled) and iphonesimulator (i386 arch and also x86_64 arch if 64-bit is enabled)
system 'echo Rebuilding Urho3D library as Mach-O universal binary...'
xcode_build(0, '../Build/Urho3D.xcodeproj', 'Urho3D_universal') or abort 'Failed to build Mach-O universal binary'
end
unless ENV['CI'] && ENV['IOS'] && ENV['PACKAGE_UPLOAD'] # Skip scaffolding test when packaging for iOS
# Create a new project on the fly that uses newly built Urho3D library in the build tree
scaffolding "../Build/generated/UsingBuildTree"
Expand Down
2 changes: 1 addition & 1 deletion Source/Urho3D/.soversion
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.0.181
0.0.182
1 change: 1 addition & 0 deletions Source/Urho3D/AngelScript/GraphicsAPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -703,6 +703,7 @@ static void RegisterBuffers(asIScriptEngine* engine)
engine->RegisterGlobalProperty("const uint MASK_INSTANCEMATRIX1", (void*)&MASK_INSTANCEMATRIX1);
engine->RegisterGlobalProperty("const uint MASK_INSTANCEMATRIX2", (void*)&MASK_INSTANCEMATRIX2);
engine->RegisterGlobalProperty("const uint MASK_INSTANCEMATRIX3", (void*)&MASK_INSTANCEMATRIX3);
engine->RegisterGlobalProperty("const uint MASK_OBJECTINDEX", (void*)&MASK_OBJECTINDEX);
engine->RegisterGlobalProperty("const uint MASK_DEFAULT", (void*)&MASK_DEFAULT);

engine->RegisterEnum("PrimitiveType");
Expand Down
12 changes: 8 additions & 4 deletions Source/Urho3D/Graphics/Direct3D11/D3D11VertexBuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ const unsigned VertexBuffer::elementSize[] =
4 * sizeof(unsigned char), // Blendindices
4 * sizeof(float), // Instancematrix1
4 * sizeof(float), // Instancematrix2
4 * sizeof(float) // Instancematrix3
4 * sizeof(float), // Instancematrix3
sizeof(int) // Objectindex
};

const char* VertexBuffer::elementSemantics[] =
Expand All @@ -63,7 +64,8 @@ const char* VertexBuffer::elementSemantics[] =
"BLENDINDICES",
"TEXCOORD",
"TEXCOORD",
"TEXCOORD"
"TEXCOORD",
"OBJECTINDEX"
};

const unsigned VertexBuffer::elementSemanticIndices[] =
Expand All @@ -80,7 +82,8 @@ const unsigned VertexBuffer::elementSemanticIndices[] =
0,
2,
3,
4
4,
0
};

const unsigned VertexBuffer::elementFormats[] =
Expand All @@ -97,7 +100,8 @@ const unsigned VertexBuffer::elementFormats[] =
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32_SINT
};

VertexBuffer::VertexBuffer(Context* context, bool forceHeadless) :
Expand Down
3 changes: 2 additions & 1 deletion Source/Urho3D/Graphics/Direct3D9/D3D9VertexBuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ const unsigned VertexBuffer::elementSize[] =
4 * sizeof(unsigned char), // Blendindices
4 * sizeof(float), // Instancematrix1
4 * sizeof(float), // Instancematrix2
4 * sizeof(float) // Instancematrix3
4 * sizeof(float), // Instancematrix3
sizeof(int) // Object index, not supported on D3D9 but allowed for vertex data compatibility
};

VertexBuffer::VertexBuffer(Context* context, bool forceHeadless) :
Expand Down
14 changes: 12 additions & 2 deletions Source/Urho3D/Graphics/Direct3D9/D3D9VertexDeclaration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
#include "../../Graphics/GraphicsImpl.h"
#include "../../Graphics/VertexBuffer.h"
#include "../../Graphics/VertexDeclaration.h"
#include "../../IO/Log.h"

#include "../../DebugNew.h"

Expand Down Expand Up @@ -89,7 +90,10 @@ VertexDeclaration::VertexDeclaration(Graphics* graphics, unsigned elementMask) :
PODVector<VertexDeclarationElement> elements;
unsigned offset = 0;

for (unsigned i = 0; i < MAX_VERTEX_ELEMENTS; ++i)
if (elementMask & MASK_OBJECTINDEX)
URHO3D_LOGWARNING("Object index attribute is not supported on Direct3D9 and will be ignored");

for (unsigned i = 0; i < ELEMENT_OBJECTINDEX; ++i)
{
VertexElement element = (VertexElement)i;

Expand Down Expand Up @@ -129,7 +133,10 @@ VertexDeclaration::VertexDeclaration(Graphics* graphics, const PODVector<VertexB
return;
}

for (unsigned j = 0; j < MAX_VERTEX_ELEMENTS; ++j)
if (elementMask & MASK_OBJECTINDEX)
URHO3D_LOGWARNING("Object index attribute is not supported on Direct3D9 and will be ignored");

for (unsigned j = 0; j < ELEMENT_OBJECTINDEX; ++j)
{
VertexElement element = (VertexElement)j;

Expand Down Expand Up @@ -171,6 +178,9 @@ VertexDeclaration::VertexDeclaration(Graphics* graphics, const Vector<SharedPtr<
return;
}

if (elementMask & MASK_OBJECTINDEX)
URHO3D_LOGWARNING("Object index attribute is not supported on Direct3D9 and will be ignored");

for (unsigned j = 0; j < MAX_VERTEX_ELEMENTS; ++j)
{
VertexElement element = (VertexElement)j;
Expand Down
3 changes: 3 additions & 0 deletions Source/Urho3D/Graphics/GraphicsDefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,8 @@ enum VertexElement
ELEMENT_INSTANCEMATRIX1,
ELEMENT_INSTANCEMATRIX2,
ELEMENT_INSTANCEMATRIX3,
// Custom 32-bit integer object index. Due to API limitations, not supported on D3D9
ELEMENT_OBJECTINDEX,
MAX_VERTEX_ELEMENTS
};

Expand Down Expand Up @@ -361,6 +363,7 @@ static const unsigned MASK_BLENDINDICES = 0x200;
static const unsigned MASK_INSTANCEMATRIX1 = 0x400;
static const unsigned MASK_INSTANCEMATRIX2 = 0x800;
static const unsigned MASK_INSTANCEMATRIX3 = 0x1000;
static const unsigned MASK_OBJECTINDEX = 0x2000;
static const unsigned MASK_DEFAULT = 0xffffffff;
static const unsigned NO_ELEMENT = 0xffffffff;

Expand Down
4 changes: 2 additions & 2 deletions Source/Urho3D/Graphics/OpenGL/OGLGraphics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ static const unsigned glStencilOps[] =
// This avoids a skinning bug on GLES2 devices which only support 8.
static const unsigned glVertexAttrIndex[] =
{
0, 1, 2, 3, 4, 8, 9, 5, 6, 7, 10, 11, 12
0, 1, 2, 3, 4, 8, 9, 5, 6, 7, 10, 11, 12, 13
};

#ifdef GL_ES_VERSION_2_0
Expand Down Expand Up @@ -909,7 +909,7 @@ bool Graphics::SetVertexBuffers(const PODVector<VertexBuffer*>& buffers, const P
}

// Set the attribute pointer. Add instance offset for the instance matrix pointers
unsigned offset = j >= ELEMENT_INSTANCEMATRIX1 ? instanceOffset * vertexSize : 0;
unsigned offset = (j >= ELEMENT_INSTANCEMATRIX1 && j < ELEMENT_OBJECTINDEX) ? instanceOffset * vertexSize : 0;
glVertexAttribPointer(attrIndex, VertexBuffer::elementComponents[j], VertexBuffer::elementType[j],
(GLboolean)VertexBuffer::elementNormalize[j], vertexSize,
reinterpret_cast<const GLvoid*>(buffer->GetElementOffset((VertexElement)j) + offset));
Expand Down
1 change: 1 addition & 0 deletions Source/Urho3D/Graphics/OpenGL/OGLShaderProgram.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ bool ShaderProgram::Link()
glBindAttribLocation(object_, 11, "iInstanceMatrix2");
glBindAttribLocation(object_, 12, "iInstanceMatrix3");
#endif
glBindAttribLocation(object_, 13, "iObjectIndex");

glAttachShader(object_, vertexShader_->GetGPUObject());
glAttachShader(object_, pixelShader_->GetGPUObject());
Expand Down
12 changes: 8 additions & 4 deletions Source/Urho3D/Graphics/OpenGL/OGLVertexBuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ const unsigned VertexBuffer::elementSize[] =
4 * sizeof(unsigned char), // Blendindices
4 * sizeof(float), // Instancematrix1
4 * sizeof(float), // Instancematrix2
4 * sizeof(float) // Instancematrix3
4 * sizeof(float), // Instancematrix3
sizeof(int) // Object index
};

const unsigned VertexBuffer::elementType[] =
Expand All @@ -63,7 +64,8 @@ const unsigned VertexBuffer::elementType[] =
GL_UNSIGNED_BYTE, // Blendindices
GL_FLOAT, // Instancematrix1
GL_FLOAT, // Instancematrix2
GL_FLOAT // Instancematrix3
GL_FLOAT, // Instancematrix3
GL_INT // Object index
};

const unsigned VertexBuffer::elementComponents[] =
Expand All @@ -80,7 +82,8 @@ const unsigned VertexBuffer::elementComponents[] =
4, // Blendindices
4, // Instancematrix1
4, // Instancematrix2
4 // Instancematrix3
4, // Instancematrix3
1 // Object index
};

const unsigned VertexBuffer::elementNormalize[] =
Expand All @@ -97,7 +100,8 @@ const unsigned VertexBuffer::elementNormalize[] =
GL_FALSE, // Blendindices
GL_FALSE, // Instancematrix1
GL_FALSE, // Instancematrix2
GL_FALSE // Instancematrix3
GL_FALSE, // Instancematrix3
GL_FALSE // Object index
};

VertexBuffer::VertexBuffer(Context* context, bool forceHeadless) :
Expand Down
2 changes: 2 additions & 0 deletions Source/Urho3D/LuaScript/pkgs/Graphics/GraphicsDefs.pkg
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ enum VertexElement
ELEMENT_INSTANCEMATRIX1,
ELEMENT_INSTANCEMATRIX2,
ELEMENT_INSTANCEMATRIX3,
ELEMENT_OBJECTINDEX,
MAX_VERTEX_ELEMENTS
};

Expand Down Expand Up @@ -211,4 +212,5 @@ static const unsigned MASK_BLENDINDICES;
static const unsigned MASK_INSTANCEMATRIX1;
static const unsigned MASK_INSTANCEMATRIX2;
static const unsigned MASK_INSTANCEMATRIX3;
static const unsigned MASK_OBJECTINDEX;
static const unsigned MASK_DEFAULT;
51 changes: 7 additions & 44 deletions Source/Urho3D/Navigation/NavigationMesh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -525,58 +525,21 @@ Vector3 NavigationMesh::MoveAlongSurface(const Vector3& start, const Vector3& en
void NavigationMesh::FindPath(PODVector<Vector3>& dest, const Vector3& start, const Vector3& end, const Vector3& extents,
const dtQueryFilter* filter)
{
URHO3D_PROFILE(FindPath);
PODVector<NavigationPathPoint> navPathPoints;
FindPath(navPathPoints, start, end, extents, filter);

dest.Clear();

if (!InitializeQuery())
return;

// Navigation data is in local space. Transform path points from world to local
const Matrix3x4& transform = node_->GetWorldTransform();
Matrix3x4 inverse = transform.Inverse();

Vector3 localStart = inverse * start;
Vector3 localEnd = inverse * end;

const dtQueryFilter* queryFilter = filter ? filter : queryFilter_;
dtPolyRef startRef;
dtPolyRef endRef;
navMeshQuery_->findNearestPoly(&localStart.x_, &extents.x_, queryFilter, &startRef, 0);
navMeshQuery_->findNearestPoly(&localEnd.x_, &extents.x_, queryFilter, &endRef, 0);

if (!startRef || !endRef)
return;

int numPolys = 0;
int numPathPoints = 0;

navMeshQuery_->findPath(startRef, endRef, &localStart.x_, &localEnd.x_, queryFilter, pathData_->polys_, &numPolys,
MAX_POLYS);
if (!numPolys)
return;

Vector3 actualLocalEnd = localEnd;

// If full path was not found, clamp end point to the end polygon
if (pathData_->polys_[numPolys - 1] != endRef)
navMeshQuery_->closestPointOnPoly(pathData_->polys_[numPolys - 1], &localEnd.x_, &actualLocalEnd.x_, 0);

navMeshQuery_->findStraightPath(&localStart.x_, &actualLocalEnd.x_, pathData_->polys_, numPolys,
&pathData_->pathPoints_[0].x_, pathData_->pathFlags_, pathData_->pathPolys_, &numPathPoints, MAX_POLYS);

// Transform path result back to world space
for (int i = 0; i < numPathPoints; ++i)
dest.Push(transform * pathData_->pathPoints_[i]);
for (int i = 0; i < navPathPoints.Size(); ++i)
dest.Push(navPathPoints[i].position_);
}

void NavigationMesh::FindPath(PODVector<NavigationPathPoint>& dest, const Vector3& start, const Vector3& end, const Vector3& extents,
void NavigationMesh::FindPath(PODVector<NavigationPathPoint>& dest, const Vector3& start, const Vector3& end,
const Vector3& extents,
const dtQueryFilter* filter)
{
URHO3D_PROFILE(FindPath);
dest.Clear();


if (!InitializeQuery())
return;

Expand Down Expand Up @@ -618,7 +581,7 @@ void NavigationMesh::FindPath(PODVector<NavigationPathPoint>& dest, const Vector
{
NavigationPathPoint pt;
pt.position_ = transform * pathData_->pathPoints_[i];
pt.flag_ = (NavigationPathPointFlag) pathData_->pathFlags_[i];
pt.flag_ = (NavigationPathPointFlag)pathData_->pathFlags_[i];
pt.areaID_ = pathData_->pathAreras_[i];

dest.Push(pt);
Expand Down

0 comments on commit 101b771

Please sign in to comment.