Simple Nano Circuit 0.0.2
PlacementManagerClass Class Reference

Public Member Functions

 PlacementManagerClass (AsgardClass *)
 
void Drawing ()
 遍历IC、Wire、FreePin,渲染到屏幕上
 
bool isPreviewICHolderInFreePlace (BaseIcObject *)
 
bool isPreviewWireHolderInFreePlace (WireObject *)
 
bool isPreviewFreePointHolderInFreePlace (FootPinNode *)
 
template<typename T >
bool conflictWith (const SDL_Rect &rect, const std::list< T > &target)
 
bool PlaceWire (WireObject *)
 放置线段到布局中 More...
 
bool PlaceFootPin (FootPinNode *)
 放置落点到布局中
 
bool PlaceIc (BaseIcObject *)
 放置IC元件到布局中
 
void resetToBlank ()
 清空当前布局,重新开始新的电路图绘制
 
BaseElectronObjectfindObjectUnderMousePos (SDL_Point &)
 找到鼠标落点下的IC,将IC句柄返回
 
void ObjectsReport ()
 简报当前已放置在布局当中的所有器件
 
void eraseRedundantWires ()
 擦除冗余线段
 
bool eraseExactlyIdenticalWires ()
 擦除完全相同的线段
 
bool isShowingCurrentText () const
 
void setShowingCurrentText (bool _val)
 
void CalculateCurrents ()
 电流计算
 
bool buildingFootPinsCurrent ()
 对电路中的所有引脚位置进行扫描,对能够计算出电流的引脚完成电流计算 More...
 
void resetCurrentCalculateState ()
 
bool canCalcCurrentBySamePosOtherPins (FootPinNode *footPin)
 
double calcCurrentBySamePosOtherPins (FootPinNode *footPin)
 
void remarkPinsValidState ()
 将所有的pin的有效状态进行检测和设置
 
void markInvalidPins ()
 
void saveToFile (std::ofstream &)
 

Public Attributes

std::list< BaseIcObject * > snIcObjects
 存放已经放置在画布上的所有IC
 
std::list< WireObject * > snWires
 存放已经放置在画布上的所有线段
 
std::list< FootPinNode * > snFreeFootPins
 存放已经放置在画布上的所有自由引脚落点
 
std::list< FootPinNode * > snBoundFootPins
 存放已经放置在画布上的所有隶属于IC或Wire的引脚落点
 
std::unordered_map< std::string, std::set< FootPinNode * > > samePosFootPins
 存放同位节点信息
 
std::list< FootPinNode * > waitToCalculateCurrentFootPins
 存放需要推导电流的所有FootPin More...
 

Member Function Documentation

◆ buildingFootPinsCurrent()

bool PlacementManagerClass::buildingFootPinsCurrent ( )

对电路中的所有引脚位置进行扫描,对能够计算出电流的引脚完成电流计算

电阻一端完成电流的计算之后,另外一段的电流自然也就计算出来了

Todo:
下面这个clear应该放在电容初始化时,而且如果是第一次初始化(队列中没有数据,则根据电容初始电压设定)

电容一端完成电流的计算之后,另外一段的电流自然也就计算出来了

◆ PlaceWire()

bool PlacementManagerClass::PlaceWire ( WireObject _wire)

放置线段到布局中

放置线段到当前的电路图当中

Member Data Documentation

◆ waitToCalculateCurrentFootPins

std::list<FootPinNode*> PlacementManagerClass::waitToCalculateCurrentFootPins

存放需要推导电流的所有FootPin

Todo:
: 上面两种容器、哪一种对我当前的场景而言,更好呢?

The documentation for this class was generated from the following files: