| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include "lc_dimensionsbuilder.h" |
| |
|
| | #include "lc_dimarc.h" |
| | #include "lc_dimordinate.h" |
| | #include "rs_debug.h" |
| | #include "rs_dimaligned.h" |
| | #include "rs_dimangular.h" |
| | #include "rs_dimdiametric.h" |
| | #include "rs_dimension.h" |
| | #include "rs_dimlinear.h" |
| | #include "rs_dimradial.h" |
| | #include "rs_graphic.h" |
| | #include "rs_leader.h" |
| | #include "rs_line.h" |
| |
|
| | LC_DimensionsBuilder::LC_DimensionsBuilder(RS_Graphic* graphic, RS_Dimension* dim): m_graphic{graphic}, m_dimension{dim}{ |
| | |
| | } |
| |
|
| | void LC_DimensionsBuilder::build() { |
| | RS2::EntityType rtti = m_dimension->rtti(); |
| | switch (rtti) { |
| | case RS2::EntityDimAligned: { |
| | auto* dim = static_cast<RS_DimAligned*>(m_dimension); |
| | buildAligned(dim); |
| | break; |
| | } |
| | case RS2::EntityDimLinear: { |
| | auto dim = static_cast<RS_DimLinear*>(m_dimension); |
| | buildLinear(dim); |
| | break; |
| | } |
| | case RS2::EntityDimRadial: { |
| | auto dim = static_cast<RS_DimRadial*>(m_dimension); |
| | buildRadial(dim); |
| | break; |
| | } |
| | case RS2::EntityDimDiametric: { |
| | auto dim = static_cast<RS_DimDiametric*>(m_dimension); |
| | buildDiametric(dim); |
| | break; |
| | } |
| | case RS2::EntityDimAngular: { |
| | auto dim = static_cast<RS_DimAngular*>(m_dimension); |
| | buildAngular(dim); |
| | break; |
| | } |
| | case RS2::EntityDimArc: { |
| | auto dim = static_cast<LC_DimArc*>(m_dimension); |
| | buildArc(dim); |
| | break; |
| | } |
| | case RS2::EntityDimOrdinate: { |
| | auto dim = static_cast<LC_DimOrdinate*>(m_dimension); |
| | buildOrdinate(dim); |
| | break; |
| | } |
| | |
| | |
| | |
| | |
| | |
| | |
| | default: { |
| | LC_ERR << "Unexpected dimension type for building dimension!. Value: " << rtti; |
| | } |
| | } |
| | } |
| |
|
| | void LC_DimensionsBuilder::buildLinear(RS_DimLinear* dimLinear) { |
| | } |
| |
|
| | void LC_DimensionsBuilder::buildAligned(RS_DimAligned* dimLinear) { |
| | } |
| |
|
| | void LC_DimensionsBuilder::buildDiametric(RS_DimDiametric* dimLinear) { |
| | } |
| |
|
| | void LC_DimensionsBuilder::buildAngular(RS_DimAngular* dimLinear) { |
| | } |
| |
|
| | void LC_DimensionsBuilder::buildArc(LC_DimArc* dimLinear) { |
| | } |
| |
|
| | void LC_DimensionsBuilder::buildLeader(RS_Leader* dimLinear) { |
| | } |
| |
|
| | void LC_DimensionsBuilder::buildRadial(RS_DimRadial* dimLinear) { |
| | } |
| |
|
| | void LC_DimensionsBuilder::buildOrdinate(LC_DimOrdinate* dimLinear) { |
| | } |
| |
|
| |
|
| | RS_Line* LC_DimensionsBuilder::addDimComponentLine(RS_Vector start, RS_Vector end, const RS_Pen &pen) { |
| | auto line = new RS_Line(m_dimension, {start, end}); |
| | line->setPen(pen); |
| | line->setLayer(nullptr); |
| | m_dimension->addEntity(line); |
| | return line; |
| | } |
| |
|
| |
|
| | RS_Pen LC_DimensionsBuilder::getPenForText() { |
| | auto text = m_dimStyle->text(); |
| | RS_Pen result(text->color(), RS2::WidthByBlock, RS2::SolidLine); |
| | return result; |
| | } |
| |
|
| | RS_Pen LC_DimensionsBuilder::getPenExtensionLine() { |
| | auto extLine = m_dimStyle->extensionLine(); |
| | RS_Pen result(extLine->color(), extLine->lineWidth(), RS2::LineByBlock); |
| | return result; |
| | } |
| |
|
| | RS_Pen LC_DimensionsBuilder::getPenDimensionLine() { |
| | auto dimLine = m_dimStyle->dimensionLine(); |
| | RS_Pen result(dimLine->color(), dimLine->lineWidth(), RS2::LineByBlock); |
| | return result; |
| | } |
| |
|