2026-10-04 00:04:20 +08:00
|
|
|
//-----------------------------------------------------------------------------+
|
2026-09-28 15:28:50 +08:00
|
|
|
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
|
|
|
|
|
// = FileName : TWallData.h
|
|
|
|
|
// = Version : ver2.0
|
|
|
|
|
// = Author : xlc
|
|
|
|
|
// = CreateDate : 2002-09-09
|
2026-10-04 00:04:20 +08:00
|
|
|
// = Description: 墙体数据类的声明
|
2026-09-28 15:28:50 +08:00
|
|
|
// = Maintainers:
|
|
|
|
|
//
|
|
|
|
|
//-----------------------------------------------------------------------------+
|
|
|
|
|
#ifndef _TWALLDATA_H_
|
|
|
|
|
#define _TWALLDATA_H_
|
|
|
|
|
|
|
|
|
|
#ifndef __OPENINGDATA_H
|
|
|
|
|
#include "OpeningData.h"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef _TGGECURVESEGMENT_H_
|
|
|
|
|
#include "TGGeCurveSegment.h"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef _TSORTWALLONPT_H_
|
|
|
|
|
#include "TSortWallOnPt.h"
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifndef __DBOPENING_H
|
|
|
|
|
#include "dbopening.h"
|
|
|
|
|
#endif
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
#define WALLMATE_NoDefine _T("其它")
|
|
|
|
|
#define WALLMATE_Divider _T("石膏板")
|
|
|
|
|
#define WALLMATE_Curtain _T("玻璃幕")
|
|
|
|
|
#define WALLMATE_Fill _T("填充墙")
|
|
|
|
|
#define WALLMATE_Fill1 _T("加气块")
|
|
|
|
|
#define WALLMATE_Fill2 _T("空心砖")
|
|
|
|
|
#define WALLMATE_Brick _T("砖")
|
|
|
|
|
#define WALLMATE_Brick1 _T("耐火砖")
|
|
|
|
|
#define WALLMATE_Rocket _T("石材")
|
|
|
|
|
#define WALLMATE_Rocket1 _T("毛石")
|
|
|
|
|
#define WALLMATE_Concrete _T("钢筋砼")
|
|
|
|
|
#define WALLMATE_Concrete1 _T("混凝土")
|
2026-09-28 15:28:50 +08:00
|
|
|
|
|
|
|
|
class TARCH_EXP TWallData : public TGGeCurveSegment
|
|
|
|
|
{
|
|
|
|
|
friend class TSearchSpaceFromWall;
|
|
|
|
|
|
|
|
|
|
friend int DoubleWall(const TGGeCurveSegment &curve, int nwk);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
TWallData();
|
|
|
|
|
|
|
|
|
|
TWallData(const TWallData &src);
|
|
|
|
|
|
|
|
|
|
TWallData(const TEntitySet &ent);
|
|
|
|
|
|
|
|
|
|
TWallData(const TADSGePoint3d &ptStart, const TADSGePoint3d &ptEnd, ads_real nSweepAng = 0.0);
|
|
|
|
|
|
|
|
|
|
virtual void UpdateWallWidth();
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 用途标志
|
2026-09-28 15:28:50 +08:00
|
|
|
enum UsageFlag
|
|
|
|
|
{
|
2026-10-04 00:04:20 +08:00
|
|
|
kNormal = 0, //一般墙
|
|
|
|
|
kApartment = 1, //卫生断墙
|
|
|
|
|
kEdJig = 2, //交互拖曳
|
2026-09-28 15:28:50 +08:00
|
|
|
// TArch6
|
2026-10-04 00:04:20 +08:00
|
|
|
kVirtual = 3, //虚墙,仅仅作为空间的逻辑分隔
|
2026-09-28 15:28:50 +08:00
|
|
|
// TArch7
|
2026-10-04 00:04:20 +08:00
|
|
|
kParapet = 4, //矮墙,如女儿墙
|
2026-09-28 15:28:50 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum TWallStyle
|
|
|
|
|
{
|
2026-10-04 00:04:20 +08:00
|
|
|
kDivider = 10, //隔墙
|
|
|
|
|
kCurtain = 20, //玻璃幕墙
|
|
|
|
|
kFill = 30, //填充墙
|
|
|
|
|
kFill1 = 31, //填充墙1,TArch7
|
|
|
|
|
kFill2 = 32, //填充墙2,TArch7
|
|
|
|
|
kBrick = 40, //砖墙
|
|
|
|
|
kRocket = 50, //石墙
|
|
|
|
|
kConcrete = 60, //钢筋混凝土墙
|
2026-09-28 15:28:50 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TWallData & operator = (const TWallData &src);
|
|
|
|
|
|
|
|
|
|
int GetWallFlag() const;
|
|
|
|
|
void SetWallFlag(int nFlag);
|
|
|
|
|
void SetFlagData(int nFlag);
|
|
|
|
|
|
|
|
|
|
TWallStyle GetStyle() const;
|
|
|
|
|
void SetStyle(TWallStyle st);
|
2026-10-04 00:04:20 +08:00
|
|
|
//add by xlc on 101110 墙体材料字符串
|
2026-09-28 15:28:50 +08:00
|
|
|
CString GetStyle(TWallStyle st) const;
|
|
|
|
|
|
|
|
|
|
double GetInsulateThick(int nSide = 0) const ;
|
|
|
|
|
void SetInsulateThick(double nThick, int nSide = 0);
|
|
|
|
|
|
|
|
|
|
BOOL IsInsulateOnSide(int nSide) const;
|
2026-10-04 00:04:20 +08:00
|
|
|
void SetInsulateOnSide(int nSide, BOOL bAdd); // 增加或移除保温
|
2026-09-28 15:28:50 +08:00
|
|
|
|
|
|
|
|
BOOL HasTop() const;
|
|
|
|
|
void SetTop(BOOL bTrue);
|
|
|
|
|
|
|
|
|
|
BOOL HasBottom() const;
|
|
|
|
|
void SetBottom(BOOL bTrue);
|
|
|
|
|
|
|
|
|
|
BOOL HasColumnAt(int nTerm) const;
|
|
|
|
|
|
|
|
|
|
BOOL IsTermAt(int nTerm) const;
|
|
|
|
|
|
|
|
|
|
BOOL IsLowPriorityAt(int nTerm) const;
|
|
|
|
|
|
|
|
|
|
double GetWidth() const;
|
2026-10-04 00:04:20 +08:00
|
|
|
// 0--左侧; 1--右侧; 2--包括保温层左侧; 3--包括保温层右侧; 4--包括保温层的总厚度
|
2026-09-28 15:28:50 +08:00
|
|
|
double GetWidth(int nSide) const;
|
|
|
|
|
Acad::ErrorStatus SetWidth(int nSide, double nw);
|
|
|
|
|
|
|
|
|
|
double GetHeight() const;
|
|
|
|
|
Acad::ErrorStatus SetHeight(double nh);
|
|
|
|
|
|
|
|
|
|
void SetUsageFlag(UsageFlag flg) ;
|
|
|
|
|
UsageFlag GetUsageFlag() const;
|
2026-10-04 00:04:20 +08:00
|
|
|
//add by xlc on 101110 墙体用途字符串
|
2026-09-28 15:28:50 +08:00
|
|
|
CString GetUsageFlag(UsageFlag flg) const;
|
|
|
|
|
|
|
|
|
|
double GetElevation() const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
double GetAzimuth(int nSide) const; //朝向
|
2026-09-28 15:28:50 +08:00
|
|
|
|
|
|
|
|
double GetAzimuth(int nSide, TADSGePoint3d ptPos) const;
|
|
|
|
|
|
|
|
|
|
const TCHAR *GetStyleText() const;
|
|
|
|
|
|
|
|
|
|
AcDbObjectId GetEndColumnId() const;
|
|
|
|
|
|
|
|
|
|
AcDbObjectId GetStartColumnId() const;
|
|
|
|
|
|
|
|
|
|
struct TARCH_EXP IdDotStyle
|
|
|
|
|
{
|
|
|
|
|
AcDbObjectId id;
|
|
|
|
|
|
|
|
|
|
int nStyleEx;
|
|
|
|
|
|
|
|
|
|
IdDotStyle(AcDbObjectId id0, int st)
|
|
|
|
|
{
|
|
|
|
|
id = id0;
|
|
|
|
|
nStyleEx = st;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int GetPriority()const{return nStyleEx;}
|
|
|
|
|
};
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 按逆时针方向,以pt点为起点的射线,找下一个墙
|
2026-09-28 15:28:50 +08:00
|
|
|
AcDbObjectId GetNextWall(TADSGePoint3d pt) const;
|
|
|
|
|
|
|
|
|
|
AcDbObjectId GetSameStyleId(int st, const TDPtrList<IdDotStyle> &lstStyles, BOOL bReverse = FALSE) const;
|
|
|
|
|
|
|
|
|
|
void RemoveColumn(AcDbObjectId idColumn);
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 内外特征,内墙也可以有外侧,即房间外
|
|
|
|
|
//设置外墙标记,但还没有指定左右
|
2026-09-28 15:28:50 +08:00
|
|
|
void SetExternal(BOOL bTrue);
|
2026-10-04 00:04:20 +08:00
|
|
|
//设置外侧,但不改变外墙、内墙性质
|
2026-09-28 15:28:50 +08:00
|
|
|
void SetExternal(int nSide, BOOL bTrue);
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 0:左侧;1:右侧;2:双侧;-1:无外
|
2026-09-28 15:28:50 +08:00
|
|
|
int GetExtSide() const;
|
|
|
|
|
|
|
|
|
|
int GetPriority() const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//是外墙,并且nSide朝外
|
2026-09-28 15:28:50 +08:00
|
|
|
BOOL IsExternal(int nSide) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//nSide是否朝外(可以不是外墙)
|
2026-09-28 15:28:50 +08:00
|
|
|
BOOL IsExternal1(int nSide) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//是否为外墙
|
2026-09-28 15:28:50 +08:00
|
|
|
BOOL IsExternal() const;
|
|
|
|
|
|
|
|
|
|
BOOL Has3D() const;
|
|
|
|
|
|
|
|
|
|
int CompareLocation(const TADSGePoint3d &p1, const TADSGePoint3d &p2) const;
|
|
|
|
|
|
|
|
|
|
void SortOpening(TDPtrList<TOpeningData> &lstOpenings) const ;
|
|
|
|
|
void SortOpening(TDPtrList<TDbOpening> &lstOpenings) const ;
|
|
|
|
|
|
|
|
|
|
ads_real ExtDirection(const TADSGePoint3d &ptLoc) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 立面转平面的转换矩阵
|
2026-09-28 15:28:50 +08:00
|
|
|
void GetPlanarMatrix(ads_matrix matTrans) const;
|
|
|
|
|
|
|
|
|
|
#ifndef OBJECTDBX
|
|
|
|
|
int GetAxises(const TADSGePoint3d &ptAt, TEntitySet &lEntAxis, TEntitySet &rEntAxis) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// sg add 110119,修改根据墙体得到轴线的算法,扩大搜索范围
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment GetLongBaseLine() const;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
static int CompareOpening(const TOpeningData *p1, const TOpeningData *p2);
|
|
|
|
|
static int CompareOpening(const TDbOpening *p1, const TDbOpening *p2);
|
|
|
|
|
static int CompareIdDotStyleForFind(const IdDotStyle *p1, const void *p2);
|
|
|
|
|
|
|
|
|
|
int CompareWallStyle(int st1, int st2) const;
|
|
|
|
|
|
|
|
|
|
int GetStyleCount(int, const TDPtrList<IdDotStyle> &lstStyles) const;
|
|
|
|
|
|
|
|
|
|
int GetAnotherStyle(int st, const TDPtrList<IdDotStyle> &lstStyles) const;
|
|
|
|
|
|
|
|
|
|
// New method on 2002/4/5
|
|
|
|
|
// nSide: 0--start; 1--end;
|
2026-10-04 00:04:20 +08:00
|
|
|
// 以端点出发的射线为起始轴,按逆时针排序,不包括自己
|
2026-09-28 15:28:50 +08:00
|
|
|
void GetIdStyles(int nSide, TDPtrList<IdDotStyle> &lstIdStyle) const;
|
|
|
|
|
|
|
|
|
|
void GetStyleKindArray(const TDPtrList<IdDotStyle> &lstStyles, AcDbIntArray &intArray)const;
|
|
|
|
|
|
|
|
|
|
// From TWallData
|
2026-10-04 00:04:20 +08:00
|
|
|
// 往侧边投影, 如果src在中心,则投影点在中心
|
|
|
|
|
// 返回: 0--左侧,1--右侧,-1有错,否则在中心
|
2026-09-28 15:28:50 +08:00
|
|
|
int ProjectSide(const TADSGePoint3d &src, TADSGePoint3d &res) const;
|
|
|
|
|
|
|
|
|
|
Adesk::Boolean MergeWith(const TWallData &another);
|
|
|
|
|
|
|
|
|
|
Adesk::Boolean Validate(TDPtrList<TOpeningData> &lstOpenings) const;
|
|
|
|
|
|
|
|
|
|
Adesk::Boolean GetOpeningLocation(const TADSGePoint3d &ptBase, TOpeningData::OpeningKind, ads_real nOpenWidth, TADSGePoint3d &ptInsert) const;
|
|
|
|
|
|
|
|
|
|
void StandardGetOutlinePoly(double nElev, TGGePoly2D &wOutline, BOOL bIncludeInsulate = FALSE) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 不扣除柱子的OutlinePoly
|
2026-09-28 15:28:50 +08:00
|
|
|
void GetOutlinePoly(double nElev, TGGePoly2D &wOutline, BOOL bIncludeInsulate = FALSE) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 扣除柱子的OutlinePoly
|
2026-09-28 15:28:50 +08:00
|
|
|
void GetOutlinePoly1(double nElev, TGGePoly2D &wOutline, BOOL bIncludeInsulate = FALSE) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//找相邻的墙段,bBaseOnPrior--是启用优先级
|
2026-09-28 15:28:50 +08:00
|
|
|
AcDbObjectId GetLeftStart(BOOL bBaseOnPrior) const;
|
|
|
|
|
AcDbObjectId GetRightStart(BOOL bBaseOnPrior) const;
|
|
|
|
|
AcDbObjectId GetLeftEnd(BOOL bBaseOnPrior) const;
|
|
|
|
|
AcDbObjectId GetRightEnd(BOOL bBaseOnPrior) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 返回一AcDbCurve的指针, 调用程序负责删除
|
|
|
|
|
// nFlag: 0--基线; 1--几何中线; 2--左边线; 3--右边线
|
2026-09-28 15:28:50 +08:00
|
|
|
AcDbCurve * GetAcDbCurve(int nFlag) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 用AcDbCurve的参数来更新墙体的几何
|
2026-09-28 15:28:50 +08:00
|
|
|
Acad::ErrorStatus SetFromCurve(const AcDbCurve &curve);
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 几何形心上的曲线, 对基线的原始偏移
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment OffsetGeomCenter(int cvFlag = LS_INFINITE, BOOL bIncludeInsulateLayer = FALSE) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 以ptRef为参考点定义左右方向,返回指定的原始侧边线的偏移线
|
|
|
|
|
// nSide--相对与ptFef的左右侧, nDistToSide--距侧边的距离(负往内,正往外)
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment GetRelativeSideCurve(int nSide, const TADSGePoint3d &ptRef, double nDistToSide = 0.0, BOOL bFromInsulate = FALSE) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 求标准的两侧边线(即不考虑墙角是否有柱子)
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment GetStandardSideCurve(int nSide, double nDistToSide = 0.0, BOOL bFromInsulate = FALSE, BOOL *pPareStart = NULL, BOOL *pPareEnd = NULL) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 考虑保温线的标准边线
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment GetStandardSideCurve1(int nSide, double nDistToSide = 0.0, BOOL *pPareStart = NULL, BOOL *pPareEnd = NULL) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 取得墙的最终偏移线, 考虑柱子裁剪, wlw mod 100913 增加柱子保温的支持
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment GetFinalSideCurve(int nSide, double nDistToSide = 0.0, BOOL bFromInsulate = FALSE, bool bColInsulate = true) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//以下三个函数对中心线进行偏移
|
|
|
|
|
// 以ptRef为参考点定义左右方向,返回对几何中心指定偏移率的原始曲线
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment GetRelativeOffsetCurveFromCenter(int nSide, double nRatio, const TADSGePoint3d &ptRef) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 即不考虑柱子的裁剪对几何中心的偏移, 用来求多线墙, nRatio--墙厚系数
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment GetStdOffsetCurveFromCenter(int nSide, double nRatio) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 取得墙的最终偏移线, 考虑柱子裁剪
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment GetFinalOffsetCurveFromCenter(int nSide, double nRatio) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 取填充中心线
|
2026-09-28 15:28:50 +08:00
|
|
|
TGGeCurveSegment GetHatchCenterCurve() const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 取得墙基面上的最终的两条边线,考虑了扣除了柱子和邻居墙体的影响 , wlw mod 100913 增加柱子保温的支持
|
|
|
|
|
// 返回: 0--正常; 1--无左边线; 2--无右边线; 3--无左右边线
|
2026-09-28 15:28:50 +08:00
|
|
|
void GetSideCurve(TGGeCurveSegment &lCurve, TGGeCurveSegment &rCurve, double nDistToSide = 0.0, BOOL bFromInsulate = FALSE, bool bColInsulate = true) const;
|
|
|
|
|
|
|
|
|
|
void GetStandardCurve(TGGeCurveSegment &lCurve, TGGeCurveSegment &rCurve, double nDistToSide = 0.0, BOOL bFromInsulate = FALSE) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//返回柱子的标记
|
2026-09-28 15:28:50 +08:00
|
|
|
int CalSideParameters(const TEntitySet &entThis, TDPtrList<TSortWallOnPt> &lstAllSortedWalls, TGGeRectAngle *pUpdateRect = NULL);
|
|
|
|
|
int CalSideParameters(const TEntitySet &entThis, TDPtrList<TSortWallOnPt> &lstAllSortedWalls, TGGeCurveSegment &lCurve, TGGeCurveSegment &rCurve);
|
|
|
|
|
void CalSideParameters1(TGGeRectAngle *pBox = NULL);
|
|
|
|
|
|
|
|
|
|
void DoubleToTowInt(double dSrc, int& nLeftThick,int& nRightThick) const;
|
|
|
|
|
double TowIntToDouble(int nLeftThick, int nRightThick) const;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//保温强制封口
|
2026-09-28 15:28:50 +08:00
|
|
|
BOOL HasInsulateCap() const;
|
|
|
|
|
void SetInsulateCap(BOOL bTrue = TRUE);
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//端部是否保温
|
2026-09-28 15:28:50 +08:00
|
|
|
BOOL HasInsulateEnd() const;
|
|
|
|
|
void SetInsulateEnd(BOOL bTrue = TRUE);
|
|
|
|
|
|
|
|
|
|
void SetStartKatanaID(const AcDbObjectId &sid){m_idKatanaStart = sid;}
|
|
|
|
|
void SetEndKatanaID(const AcDbObjectId &eid){m_idKatanaEnd = eid;}
|
|
|
|
|
AcDbObjectId GetStartKatanaID() const {return m_idKatanaStart;}
|
|
|
|
|
AcDbObjectId GetEndKatanaID()const {return m_idKatanaEnd;}
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
virtual AcDbObjectId GetMyObjectId() const;
|
|
|
|
|
virtual AcDbObjectId GetMyOwnerId()const;
|
|
|
|
|
|
|
|
|
|
void _TWallData();
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//add by xlc on 091106 校正墙线
|
2026-09-28 15:28:50 +08:00
|
|
|
void AdjustStandardSideCurve(TADSGePoint3d &ptInitStart,TADSGePoint3d &ptInitEnd)const;
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
TWallStyle m_style;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//用途标志
|
2026-09-28 15:28:50 +08:00
|
|
|
UsageFlag m_nUsageFlag;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//类型标志
|
2026-09-28 15:28:50 +08:00
|
|
|
Adesk::UInt32 m_nWallFlag;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//保温厚度
|
2026-09-28 15:28:50 +08:00
|
|
|
double m_nInsuThick;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//左宽,右宽,墙高
|
2026-09-28 15:28:50 +08:00
|
|
|
double m_lWidth, m_rWidth, m_nHeight;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 用于加速的参数(细线和三维)
|
2026-09-28 15:28:50 +08:00
|
|
|
double m_nFromLeftStart, m_nFromLeftEnd, m_nFromRightStart, m_nFromRightEnd;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//起点和终点的柱子
|
2026-09-28 15:28:50 +08:00
|
|
|
AcDbSoftPointerId m_idColuStart, m_idColuEnd;
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
//起点和终点的邻接墙
|
2026-09-28 15:28:50 +08:00
|
|
|
AcDbSoftPointerId m_idLeftStart, m_idRightStart, m_idLeftEnd, m_idRightEnd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
2026-10-04 00:04:20 +08:00
|
|
|
一堵墙最多有两个 glwkatana 对象, 位于墙的起点与终点
|
2026-09-28 15:28:50 +08:00
|
|
|
left wall end katana -> | right wall end katana -> |
|
|
|
|
|
|------------------------|------------------------------|-------------------------|
|
|
|
|
|
| left wall | right wall | |
|
|
|
|
|
|------------------------|------------------------------|-------------------------|
|
|
|
|
|
| <- right wall start katana
|
|
|
|
|
*/
|
|
|
|
|
|
2026-10-04 00:04:20 +08:00
|
|
|
// 起点/终点 连接的 GlwKatana 对象
|
2026-09-28 15:28:50 +08:00
|
|
|
AcDbSoftPointerId m_idKatanaStart, m_idKatanaEnd;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
static TWallData *g_pWall;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|