new architecture of Code for show cursor and Preview
This commit is contained in:
parent
227183bfe5
commit
d053170cf5
@ -22,7 +22,7 @@ file(GLOB_RECURSE TESTS test/*.cpp)
|
|||||||
set(LIB_PATH "${CMAKE_SOURCE_DIR}/../library")
|
set(LIB_PATH "${CMAKE_SOURCE_DIR}/../library")
|
||||||
|
|
||||||
include_directories(${LIB_PATH}/include)
|
include_directories(${LIB_PATH}/include)
|
||||||
add_executable(SimpleDraw ${SOURCES} ${HEADERS} main/main.cpp src/DrawRender.cpp src/DrawRender.hpp src/Circle.cpp src/Circle.hpp src/Rectangle.cpp src/Rectangle.hpp src/utils.cpp src/utils.hpp src/Shapes.cpp src/Shapes.hpp src/Cursor.cpp src/Cursor.hpp)
|
add_executable(SimpleDraw ${SOURCES} ${HEADERS} main/main.cpp)
|
||||||
|
|
||||||
target_link_libraries(SimpleDraw ${LIB_PATH}/lib/liblibrary.a)
|
target_link_libraries(SimpleDraw ${LIB_PATH}/lib/liblibrary.a)
|
||||||
|
|
||||||
|
@ -32,11 +32,11 @@ Circle::Circle(vkvm::Coordinates center, int radius, int penWidth, bool brush) {
|
|||||||
distance = utils::squareOfDistance(temp, center);
|
distance = utils::squareOfDistance(temp, center);
|
||||||
|
|
||||||
if(!brush) {
|
if(!brush) {
|
||||||
if( distance < (radius * radius) && distance > ((radius - penWidth) * (radius - penWidth)))
|
if( distance <= (radius * radius) && distance >= ((radius - penWidth) * (radius - penWidth)))
|
||||||
circle[y_draw][x_draw] = true;
|
circle[y_draw][x_draw] = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if( distance < (radius * radius))
|
if( distance <= (radius * radius))
|
||||||
circle[y_draw][x_draw] = true;
|
circle[y_draw][x_draw] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -96,6 +96,8 @@ void DrawRender::clear() {
|
|||||||
vkvm::setPixel(x, y, backgroundColor);
|
vkvm::setPixel(x, y, backgroundColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shapes = Shapes();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawRender::cursorCreator() {
|
void DrawRender::cursorCreator() {
|
||||||
@ -144,7 +146,6 @@ void DrawRender::clearToSharedMemory(std::vector<std::vector<bool>> shape, int s
|
|||||||
else {
|
else {
|
||||||
vkvm::setPixel(currentX, currentY, penColor);
|
vkvm::setPixel(currentX, currentY, penColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
currentX++;
|
currentX++;
|
||||||
}
|
}
|
||||||
|
@ -19,18 +19,19 @@ void Shapes::addShape(std::vector<std::vector<bool>> shape, int startX, int star
|
|||||||
endXs[count-1] = endX;
|
endXs[count-1] = endX;
|
||||||
endYs[count-1] = endY;
|
endYs[count-1] = endY;
|
||||||
|
|
||||||
shapes[count-1].resize(shape.size());
|
// shapes[count-1].resize(shape.size());
|
||||||
for(int y = 0; y < shape.size(); y++) {
|
// for(int y = 0; y < shape.size(); y++) {
|
||||||
shapes[count-1][y].resize(shape[y].size());
|
// shapes[count-1][y].resize(shape[y].size());
|
||||||
for(int x = 0; x < shape[y].size(); x++) {
|
// for(int x = 0; x < shape[y].size(); x++) {
|
||||||
shapes[count-1][y][x] = shape[y][x];
|
// shapes[count-1][y][x] = shape[y][x];
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
shapes[count-1] = shape;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Shapes::containsPixel(int x, int y) {
|
bool Shapes::containsPixel(int x, int y) {
|
||||||
for(int i = 0; i < count; i++) {
|
for(int i = 0; i < count; i++) {
|
||||||
if(x > startXs[i] && x < endXs[i] && y > startYs[i] && y < endYs[i]) {
|
if(x >= startXs[i] && x < endXs[i] && y >= startYs[i] && y < endYs[i]) {
|
||||||
if(shapes[i][y-startYs[i]][x-startXs[i]]) {
|
if(shapes[i][y-startYs[i]][x-startXs[i]]) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user