Files
FreeCADWasmDev/docs/document-contract.md
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

72 lines
3.6 KiB
Markdown

# FreeCAD 1.2 Document Contract
> This is a source inventory, not a claim that the full Document runtime is available in WebAssembly.
- Schema: `freecad-web-document-contract/v1`
- Source root: `/home/mes123456/FreeCADWasmDev/working/FreeCAD/freecad-source`
- Source revision: `4f4e9244e613ea2df06e70027074a562695048cb`
| Contract | Source | Matches | SHA-256 |
| --- | --- | ---: | --- |
| `Application` | `src/App/Application.h` | 6 | `c74091185dc2b4f2f737aaa5eed1592e9539164673df92408e5739ddaa1dcf03` |
| `Document` | `src/App/Document.h` | 13 | `f4d2ca30d924da9e427142c68717643392e8cbeec6838c1d0c25e5840ea9a02e` |
| `DocumentObject` | `src/App/DocumentObject.h` | 9 | `53f3395f7e782ef877b2b947375e0026025ea5400ca44cea37ee2701e24f6707` |
| `PropertyContainer` | `src/App/PropertyContainer.h` | 7 | `7186965cd8b46aa37b548373d0bc4763e99f0d3e933a0638717b4ca873822516` |
| `PartFeature` | `src/Mod/Part/App/PartFeature.h` | 4 | `fd4ad70792e46e5029825d6690e3166e0db317bed7416b19d27fdcb8177ef658` |
## Matched declarations
### Application
- L130: `App::Document* newDocument(const char* proposedName = nullptr,`
- L140: `bool closeDocument(const Document* doc);`
- L148: `bool closeDocument(const char* name);`
- L206: `App::Document* getDocument(const char *Name) const;`
- L342: `bool commitTransaction(int tid);`
- L343: `bool abortTransaction(int tid);`
### Document
- L459: `DocumentObject* addObject(const char* sType,`
- L483: `T* addObject(const char* pObjectName = nullptr,`
- L532: `void addObject(DocumentObject* obj, const char* name = nullptr);`
- L1483: `T* Document::addObject(const char* pObjectName, bool isNew, const char* viewType, bool isPartial)`
- L1486: `return static_cast<T*>(addObject(T::getClassName(), pObjectName, isNew, viewType, isPartial));`
- L586: `DocumentObject* getObject(const char* Name) const;`
- L869: `int openTransaction(TransactionName name, int tid = 0);`
- L870: `int openTransaction(std::string name, int tid = 0);`
- L898: `void commitTransaction();`
- L901: `void abortTransaction() const;`
- L780: `int recompute(const std::vector<DocumentObject*>& objs = {},`
- L1072: `/// The position of option flags used by getDependencyList()`
- L1093: `getDependencyList(const std::vector<DocumentObject*>& objs, int options = 0);`
### DocumentObject
- L245: `const char* getNameInDocument() const;`
- L271: `std::string getFullName() const override;`
- L248: `long getID() const`
- L310: `bool isTouched() const;`
- L339: `bool isError() const`
- L544: `const std::vector<App::DocumentObject*>& getInList() const;`
- L478: `const std::vector<App::DocumentObject*>& getOutList() const;`
- L489: `std::vector<App::DocumentObject*> getOutList(int option) const;`
- L500: `void getOutList(int option, std::vector<App::DocumentObject*>& res) const;`
### PropertyContainer
- L178: `void addProperty(OffsetBase offsetBase,const char* PropName, Property *Prop, const char* PropertyGroup= nullptr, PropertyType Type=Prop_None, const char* PropertyDocu=nullptr );`
- L743: `propertyData.addProperty(static_cast<App::PropertyContainer*>(this), _name, &this->_prop_); \`
- L753: `propertyData.addProperty(static_cast<App::PropertyContainer*>(this), _name, &this->_prop_, (_group_),(_type_),(_Docu_)); \`
- L224: `Property *getPropertyByName(OffsetBase offsetBase,const char* name) const;`
- L330: `virtual Property *getPropertyByName(const char* name) const;`
- L240: `void getPropertyList(OffsetBase offsetBase,std::vector<Property*> &List) const;`
- L356: `virtual void getPropertyList(std::vector<Property*> &List) const;`
### PartFeature
- L76: `PropertyPartShape Shape;`
- L159: `static TopoDS_Shape getShape(`
- L167: `static TopoShape getTopoShape(`
- L244: `ShapeHistory buildHistory(`