FormIt C++ API  v23.0.0 (2023.0.0)
WSM Namespace Reference

Description

forward declaration

Namespaces

 ApiProgress
 
 Utils
 

Classes

class  AbstractLockGuard
 WSM::AbstractLockGuard class. More...
 
struct  ATFCameraData
 Data used to pass camera information to and from ATF. More...
 
class  Color
 The Color class stores an RGBA color value. More...
 
struct  CurveData
 Data used to construct a string of edges. More...
 
struct  EdgeData
 Data used to construct an edge. More...
 
struct  FaceData
 Data used to construct a face. More...
 
struct  FacetsBodyData
 Contains data for constructing a Body from facets. More...
 
class  GroupInstancePath
 Private member m_aPaths in GroupInstancePath is not exported and causes a warning that can be safely ignored. More...
 
struct  ImageData
 Data used to construct a rectangular face with a texture on it. More...
 
struct  InstanceData
 Data used to construct a group instance. More...
 
class  Interval2d
 The Interval2d class corresponds to a bounding box in 2D space. More...
 
class  Interval3d
 The Interval3d class corresponds to a bounding box in 3D space. More...
 
class  IRayFireFilterAndAbort
 ! Interface class used by APIRayFireReadOnly and APIIntersectsNegativeSideOfPlanesReadOnly. More...
 
struct  LayerData
 Data used to construct a layer. More...
 
class  Line3d
 The Line3d class stores an oriented line and/or an axis, defined by a Point3d and a Vector3d. More...
 
struct  LoopData
 Data used to construct a loop in a face. More...
 
struct  MaterialData
 Data used to construct a material. More...
 
struct  ModelChangeData
 The type of data passed to a callback that will be called upon the completion of each Delta or Undo/Redo operation within any non-temporary History, and the creation or deletion of non-temporary histories. More...
 
class  ObjectHistoryID
 The ObjectHistoryID class combines a history ID and an object ID into a single object. More...
 
class  Plane
 The Plane class stores an oriented plane in 3D. More...
 
class  Point2d
 The Point2d class stores a point in 2D space. More...
 
class  Point3d
 The Point3d class stores a point in 3D space. More...
 
class  Result
 Private member m_pRI in Result is not exported and causes a warning that can be safely ignored. More...
 
struct  TextureData
 Data used to construct a texture. More...
 
class  Transf3d
 The Transf3d class represents a general affine or projective transformation in 3D space. More...
 
class  UnitVector3d
 The UnitVector3d class stores a unit vector in 3D space. More...
 
class  Vector2d
 The Vector2d class stores a vector in 2D space. More...
 
class  Vector3d
 The Vector3d class stores a vector in 3D space. More...
 

Typedefs

using IsObjectHiddenFunctionType = 1::function< bool(const WSM::GroupInstancePath &, double)>
 ! Callback function type used by APISlice ! It receives a WSM::GroupInstancePath object and a depth parameter. More...
 
using ObjectHistoryIDArray = 1::vector< ObjectHistoryID >
 
using GroupInstancePathArray = 1::vector< GroupInstancePath >
 
using ObjectIDArray = 1::vector< size_t >
 
Model Change Callbacks

The "model changed" callback that will be called on the completion of each Delta or Undo/Redo operation within any non-temporary History.

Passed to APIRegisterModelChangedCallbackReadOnly.

using CallbackType = void(ModelChangeData const &)
 
using FunctionType = 1::function< CallbackType >
 

Enumerations

enum  nObjectType {
  nUnSpecifiedType = 0, nBodyType = 1, nLumpType = 2, nShellType = 3,
  nFaceType = 4, nLoopType = 5, nCoedgeType = 6, nEdgeType = 7,
  nVertexType = 8, nMaterialAttributeType = 9, nMaterialType = 10, nCircleAttributeType = 11,
  nObjectPropertiesAttributeType = 12, nTextureType = 13, nLevelAttributeType = 14, nLevelType = 15,
  nSketchPropertiesType = 16, nSplineCurveAttributeType = 17, nCylinderSurfaceAttributeType = 18, nSphereSurfaceAttributeType = 19,
  nExtrudeSurfaceAttributeType = 20, nImageType = 21, nSatelliteDataAttributeType = 22, nGroupType = 23,
  nInstanceType = 24, nLayerAttributeType = 25, nLayerType = 26, nGeneratedGeometryInformationType = 27,
  nFaceUVDataAttributeType = 28, nEdgeStyleAttributeType = 29, nBlendAttributeType = 30, nStringAttributeType = 31,
  nMeshType = 32, nLineMeshType = 33, nPointMeshType = 34, nNumObjectTypes
}
 Supported object types. More...
 
enum  nFileType : int {
  nFileTypeBinaryWSM = 0, nFileTypeSAT = 1, nFileTypeSTL = 2, nFileTypeOBJ = 3,
  nFileTypeDWG = 4, nFileTypeLMV = 5, nFileTypeThreejsJSON = 6, nFileTypeFBX = 7,
  nFileTypeSKP = 8, nFileTypeDAE = 9, nFileTypeDXF = 10, nFileTypeJSON = 11,
  nFileTypeATFX = 12
}
 Supported file types. Passed to save/load APIs to specify the file type. More...
 
enum  nConvexity {
  nConvexityUnset = 0x00, nConvexitySmooth = 0x01, nConvexityConcave = 0x02, nConvexityConvex = 0x04,
  nConvexityMixed = 0x08, nConvexityNonManifold = 0x10
}
 Enumerated type with bitfield values that define the Loop or Edge convexity. More...
 
enum  nLoadingOptions : size_t {
  nLoadingOptions::NoOptions = 0, nLoadingOptions::Merge = 1, nLoadingOptions::PlaceOnGround = 2, nLoadingOptions::RemoveDuplicate = 4,
  nLoadingOptions::SmoothingByAngle = 8, nLoadingOptions::CreateMesh = 16
}
 Available options for the nOptions argument of APILoadFromFile() More...
 
enum  DeltaFlag : size_t { DeltaFlag::nNotMine = 0x01, DeltaFlag::nAddedToOutQueue = 0x02, DeltaFlag::nSentToServer = 0x04, DeltaFlag::nServerAccepted = 0x08 }
 
enum  nCopyBehavior : size_t { nCopyBehavior::nDoNotCopyNorShare = 0, nCopyBehavior::nShareOrCopy = 1, nCopyBehavior::nCopyAlways = 2, nCopyBehavior::nNumCopyBehaviors = 3 }
 Enumerated type describing an Object's copy behavior. More...
 
enum  nHistoryComparison : size_t {
  nIdentical = 0x00, nLessAcceptedDeltas = 0x01, nMoreAcceptedDeltas = 0x02, nMoreLocalDeltas = 0x04,
  nLocalActiveDeltaLower = 0x08, nLocalActiveDeltaHigher = 0x10, nOutOfSync = 0x20
}
 Results of History check produced by APICheckHistoryReadOnly(), which checks the local History of this client and remote History of the collaboration server, the latter contains only "accepted" Deltas. More...
 

Functions

bool operator&& (const Point2d p, const Interval2d &interv)
 Returns true iff the given interval contains the given point. More...
 
bool operator&& (const Point3d &p, const Interval3d &interv)
 Returns true iff the given interval contains the given point. More...
 
bool overlap (const Interval3d &i1, const Interval3d &i2)
 Returns true iff the two given intervals overlap. More...
 
bool point_inside (Interval3d const &i, Point3d const &p)
 Returns true iff the given point lies inside the given interval. More...
 
WSM_EXPORT void AppendToGroupInstancePathArray (WSM::GroupInstancePath const &path, 1::vector< size_t > const &aInput, 1::vector< WSM::GroupInstancePath > &aOutput)
 Takes a WSM::GroupInstancePath and a vector of objects ID values in the same history, and populates the GroupInstancePath vector with that data. More...
 
WSM_EXPORT void AppendToGroupInstancePathArray (size_t nHistoryID, 1::vector< size_t > const &aInput, 1::vector< WSM::GroupInstancePath > &aOutput)
 Takes a history ID and a vector of objects ID values, and adds to the GroupInstancePath vector with that data. More...
 
WSM_EXPORT void AppendToGroupInstancePathArray (size_t nHistoryID, 1::vector< WSM::ObjectHistoryID > const &aInput, 1::vector< WSM::GroupInstancePath > &aOutput)
 Takes a history ID and a vector of objects ID values, and adds to the GroupInstancePath vector with that data. More...
 
WSM_EXPORT bool PointIntersectsNegativeSideOfPlanes (const Point3d &pt, const 1::vector< Plane > &aPlanes, double dTol=WSM_MACHINE_TOL)
 Returns true if the point intersects the negative side of all the Planes. More...
 
WSM_EXPORT bool SegmentIntersectsNegativeSideOfPlanes (const Point3d &pt1, const Point3d &pt2, const 1::vector< Plane > &aPlanes, double dTol=WSM_MACHINE_TOL, bool bTestEndPts=true)
 Returns true if the segment from pt1 to pt2 intersects on the negative side of all the Planes. More...
 
WSM_EXPORT bool BoxIntersectsNegativeSideOfPlanes (const Interval3d &box, const 1::vector< Plane > &aPlanes, double dTol=WSM_MACHINE_TOL)
 Returns true if the box intersects the negative side of all the Planes. More...
 
WSM_EXPORT bool BoxLiesOnNegativeSideOfPlanes (const Interval3d &box, const 1::vector< Plane > &aPlanes, double dTol=WSM_MACHINE_TOL)
 Returns true if the box lies totally on the negative side of all the Planes. More...
 
WSM::Point2d intersect (const WSM::Point2d &p1, const WSM::Vector2d &v1, const WSM::Point2d &p2, const WSM::Vector2d &v2, bool &succeeded, double tolerance=WSM_DISTANCE_TOL)
 intersection of two 2d lines (p1,v1) and (p2,v2) More...
 
bool doIntersect (const WSM::Point2d &p1, const WSM::Point2d &p2, const WSM::Point2d &q1, const WSM::Point2d &q2, double tolerance=WSM_DISTANCE_TOL)
 Retuns true if the two line segments (p1,p2) and (q1,q2) intersect or overlap, false otherwise. More...
 
WSM_EXPORT WSM::Point2d projectPointOnLine (const WSM::Point2d &p, const WSM::Point2d &lpoint, const WSM::Vector2d &lvector)
 Project point p on line (lpoint, lvector) More...
 
double ComputeDeterminant (const WSM::Point3d &a, const WSM::Point3d &b, const WSM::Point3d &c)
 ComputeDeterminant function. More...
 
WSM_EXPORT void ComputeFaceXAndYVectors (const WSM::UnitVector3d &norm, WSM::Vector3d &faceX, WSM::Vector3d &faceY)
 Compute the faceX and faceY vectors to generate texture coordinates based a plane normal. More...
 
constexpr bool enable_bitmask_operators (nLoadingOptions)
 enable_bitmask_operators function. More...
 
WSM_EXPORT Result APIGetVersionReadOnly (size_t &nMajorVer, size_t &nMinorVer, size_t &nRevisionVer)
 Returns the Major, Minor, and Revision software versions used to identify the released version of WSM. More...
 
WSM_EXPORT Result APIGetDatabaseVersionReadOnly (size_t &nMajorVer, size_t &nMinorVer)
 Returns the Major and Minor software versions which is used when saving and loading files and strings. More...
 
WSM_EXPORT Result APICreateHistory (size_t &nHistoryID, bool bNonTemporary=true)
 Create a History and return the History ID. More...
 
WSM_EXPORT Result APIDeleteHistory (size_t nHistoryID)
 Delete a History and all Objects in it. More...
 
WSM_EXPORT Result APICanRedoHistoryReadOnly (size_t nHistoryID, bool &bCanRedo)
 Sets bCanRedo to true if it is possible to redo one Delta. More...
 
WSM_EXPORT Result APICanUndoHistoryReadOnly (size_t nHistoryID, bool &bCanUndo)
 Sets bCanUndo to true if it is possible to undo one Delta. More...
 
WSM_EXPORT Result APICanRedoHistoryToDeltaReadOnly (size_t nHistoryID, size_t nDeltaID, bool &bCanRedo)
 Sets bCanRedo to true if it is possible to redo to nDeltaID. More...
 
WSM_EXPORT Result APICanUndoHistoryToDeltaReadOnly (size_t nHistoryID, size_t nDeltaID, bool &bCanUndo)
 Sets bCanUndo to true if it is possible to undo to nDeltaID. More...
 
WSM_EXPORT Result APIUndoHistory (size_t nHistoryID, bool bAndDeleteRedo=false, size_t nApplyOnDeltaID=WSM::INVALID_ID)
 Step backward one Delta. More...
 
WSM_EXPORT Result APIUndoHistoryToDelta (size_t nHistoryID, size_t nDeltaID)
 Step backward until the given Delta is reached. More...
 
WSM_EXPORT Result APIRedoHistory (size_t nHistoryID, size_t nApplyOnDeltaID=WSM::INVALID_ID)
 Step forward one Delta. More...
 
WSM_EXPORT Result APIRedoHistoryToDelta (size_t nHistory, size_t nDeltaID)
 Step forward until the given Delta is reached. More...
 
WSM_EXPORT Result APIUndoOrRedoHistoryToDelta (size_t nHistoryID, size_t nDeltaID, bool bAndDeleteRedo=false)
 Step backward or forward until the given Delta is reached, and optionally delete redo information when undoing. More...
 
WSM_EXPORT Result APIDeleteAllRedoHistory (size_t nHistoryID, bool bReuseDiscardedObjectIDs=false)
 Deletes all forward Deltas. More...
 
WSM_EXPORT Result APIGetAllHistoryDeltasReadOnly (size_t nHistoryID, 1::vector< size_t > &aDeltaIDs)
 Get the IDs of all deltas in the given history. More...
 
WSM_EXPORT Result APIGetHistoryDeltasReadOnly (size_t nHistoryID, size_t nStartDeltaID, size_t nEndDeltaID, 1::vector< size_t > &aDeltaIDs)
 Get the IDs of the deltas in the given closed range in the given history. More...
 
WSM_EXPORT Result APIDeleteAllHistories ()
 Delete all Histories in WSM and reset next History Id to be 0. This cannot be undone. More...
 
WSM_EXPORT Result APIGetAllHistoriesReadOnly (1::vector< size_t > &aIDs, bool bWantTemporary=false)
 Gets a sorted vector of the IDs of all active histories, optionally excluding temporary. More...
 
WSM_EXPORT Result APIGetAllReachableHistoriesReadOnly (size_t nHistoryID, bool bGoUp, 1::vector< size_t > &aHistoryIDs)
 Gets all the Histories reachable from the given History going either up or down the chain of Histories based on the flag bGoUp. More...
 
WSM_EXPORT Result APIGetHistoryReferencingGroupsReadOnly (size_t nHistoryID, 1::vector< WSM::ObjectHistoryID > &aObjectIDs)
 Returns a vector with groups that reference this history. More...
 
WSM_EXPORT Result APIGetIdOfActiveDeltaReadOnly (size_t nHistoryID, size_t &nActiveDeltaID, int nDeltaOffset=0)
 Get the active Delta ID. More...
 
WSM_EXPORT Result APIGetLastDeltaIDReadOnly (size_t nHistoryID, size_t &nLastDeltaID, size_t nBeforeLast=0)
 Get the ID of the target Delta, which is nBeforeLast before the last Delta (even for zero nBeforeLast, it may be different from the active Delta ID, if there are available Redo states). More...
 
WSM_EXPORT Result APIMergeDeltas (size_t nHistoryID, size_t nStartDeltaID=WSM::INVALID_ID, size_t nEndDeltaID=WSM::INVALID_ID, bool bReuseDiscardedObjectIDs=true)
 Merges consecutive Deltas with the specified starting and ending IDs. More...
 
WSM_EXPORT Result APICreateEmptyBody (size_t nHistoryID, size_t &nCreatedObjectID)
 Creates an empty Body. More...
 
WSM_EXPORT Result APICreatePolyline (size_t nHistoryID, const 1::vector< WSM::Point3d > &aPoints, size_t &nCreatedFaceID, bool bForceClosed=true)
 Creates a polyline using 3D sketching not linking with existing topology. More...
 
WSM_EXPORT Result APICreateExtrusion (size_t nHistoryID, const 1::vector< WSM::Point3d > &aPoints, double dist, size_t &nCreatedObjectID)
 Create an extrusion on the given History. More...
 
WSM_EXPORT Result APICreateCylinder (size_t nHistoryID, const WSM::Point3d &aPosCenter, double aRadius, double aHeight, size_t &nCreatedObjectID, double aAccuracyORcount=10, const WSM::UnitVector3d &aAxis=WSM::UnitVector3d::kZDir)
 Create a cylinder on the given History. More...
 
WSM_EXPORT Result APICopyObject (const size_t nFromHistoryID, size_t nToHistoryID, const size_t nFromObjectID, size_t &nCreatedObjectID)
 Create a copy of the Object in the given History. More...
 
WSM_EXPORT Result APITransformObject (size_t nHistoryID, size_t nObjectID, const WSM::Transf3d &t)
 Transforms the given Object. More...
 
WSM_EXPORT Result APITransformObjects (size_t nHistoryID, const 1::vector< size_t > &aObjectIDs, const WSM::Transf3d &t)
 Transforms the given Objects. More...
 
WSM_EXPORT Result APICopyOrSketchAndTransformObjects (const size_t nFromHistoryID, const size_t nToHistoryID, const 1::vector< size_t > &aFromObjectIDs, 1::vector< size_t > &aCopiedObjectIDs, const WSM::Transf3d &transform=WSM::Transf3d::kIdentity, const size_t nNumCopies=1, bool bGroupBodies=false, const WSM::Transf3d *pGroupTransf3d=nullptr)
 Copies the given objects as an array of incremental transforms. More...
 
WSM_EXPORT Result APIDeleteObject (size_t nHistoryID, size_t nObjectID)
 Deletes the given Object including all its children. More...
 
WSM_EXPORT Result APIDeleteObjects (size_t nHistoryID, const 1::vector< size_t > &aObjectIDs)
 Deletes a vector of Objects including all their children. More...
 
WSM_EXPORT Result APIMoveVertices (size_t nHistoryID, const 1::vector< size_t > &aVertexIDs, const 1::vector< WSM::Point3d > &aNewVertexPositions)
 Move the given vertices to the new locations. More...
 
WSM_EXPORT Result APIMoveObject (size_t nHistoryID, const size_t objectID, const WSM::Vector3d &displacement)
 Move the vertices of the given object with the given displacement if it is owned; otherwise, transform the given object with the given displacement. More...
 
WSM_EXPORT Result APIMoveObjects (size_t nHistoryID, const 1::vector< size_t > &objectIDs, const WSM::Transf3d &t)
 Move the vertices of each object with the given transformation if it is owned;otherwise, transform the given object. More...
 
WSM_EXPORT Result APIAddFaceComponentToBody (size_t nHistoryID, size_t nFaceID, size_t nBodyID)
 Adds a Face and all connected Faces to a Body. More...
 
WSM_EXPORT Result APIDragFace (size_t nHistoryID, size_t nFaceID, double dDist, bool bMerge=false)
 Drags a Face in the direction of its normal by the given distance. More...
 
WSM_EXPORT Result APIDragFaces (size_t nHistoryID, const 1::vector< 1::vector< size_t >> &aaFaceIDs, const 1::vector< double > &aDists, const 1::vector< WSM::UnitVector3d > *aDirs=nullptr, bool bMerge=false)
 Drag multiple Faces, in the same manner as APIDragFace(). More...
 
WSM_EXPORT Result APIScaleFace (size_t nHistoryID, size_t nFaceID, double dScaleFactor)
 Scales a Face by given scale factor, around its centroid. More...
 
WSM_EXPORT Result APIOffsetFace (size_t nHistoryID, size_t nFaceID, double dOffsetDistance, bool bOffsetHolesToo=false, const WSM::Transf3d &trans=WSM::Transf3d::kIdentity, 1::vector< 1::vector< WSM::Point3d >> *paOffsetPoint3Ds=nullptr)
 Offsets a Face by given distance. More...
 
WSM_EXPORT Result APIOffsetEdges (size_t nHistoryID, const 1::vector< size_t > &nEdgeIDs, double dOffsetDistance, const WSM::Transf3d &trans=WSM::Transf3d::kIdentity, 1::vector< 1::vector< WSM::Point3d >> *paOffsetPoint3Ds=nullptr)
 Offsets given Edges by given distance. More...
 
WSM_EXPORT Result APIRotateFace (size_t nHistoryID, size_t nFaceID, double dRadians)
 Rotates a Face by a given angle. More...
 
WSM_EXPORT Result APIRotateFaceBetweenPoints (size_t nHistoryID, size_t nFaceID, const WSM::Point3d &startPt, const WSM::Point3d &endPt)
 Rotates a Face between two given points. More...
 
WSM_EXPORT Result APITaperFace (size_t nHistoryID, size_t nFaceID, double dRadians, const WSM::Line3d &axis)
 Taper a Face by angle of rotation around the given axis. More...
 
WSM_EXPORT Result APIGetFaceCentroidPoint3dReadOnly (size_t nHistoryID, size_t nFaceID, WSM::Point3d &centroidPt)
 Get a Face centroid point. More...
 
WSM_EXPORT Result APIGetFaceConnectedComponentReadOnly (size_t nHistoryID, size_t nFaceID, bool bUseVertices, bool bSmooth, 1::vector< size_t > &aConnectedFaces)
 Using the given Face ID, finds all Faces connected across Edges or Vertices, as controlled by bUseVertices and bSmooth. More...
 
WSM_EXPORT Result APIGetConvexityConnectedComponentReadOnly (size_t nHistoryID, size_t nFaceID, size_t nConvexity, 1::vector< size_t > &aConnectedFaces)
 Using the given FaceID, finds all Faces connected across Edges, as controlled by nConvexity. More...
 
WSM_EXPORT Result APIGetConvexityReadOnly (size_t nHistoryID, size_t nEdgeOrLoopID, WSM::nConvexity &eConvextity)
 Get a Loop or Edge convexity. More...
 
WSM_EXPORT Result APIGetFaceVariantReadOnly (size_t nHistoryID, size_t nFaceID, double &dVariant)
 Get a Face variant. More...
 
WSM_EXPORT Result APIMergeBody (size_t nHistoryID, size_t nBodyID, double dSmoothCosAngle=WSM_TIGHT_SMOOTH_COSINE_ANGLE)
 Merges all the merge-able Edges and Vertices out of a Body. More...
 
WSM_EXPORT Result APIGetFacePlaneReadOnly (const size_t nHistoryID, const size_t nFaceID, WSM::Plane &plane)
 Get the Face Plane. More...
 
WSM_EXPORT Result APIGetFaceVertexNormalsReadOnly (const size_t nHistoryID, const size_t nFaceID, 1::vector< 1::pair< size_t, WSM::UnitVector3d > > &aVertexNormals)
 Get normals for each Vertex of the given Face, averaging face normals across smooth edges. More...
 
WSM_EXPORT Result APICreateBlock (const size_t nHistoryID, const WSM::Point3d &pos1, const WSM::Point3d &pos2, size_t &nCreatedObjectID)
 Create a block with the given corners. More...
 
WSM_EXPORT Result APICreateHemisphere (const size_t nHistoryID, const double radius, const WSM::Point3d &posCenter, size_t &nCreatedObjectID, const double accuracyORcount=10.0)
 Create a half sphere (above Z=0) with given parameters. More...
 
WSM_EXPORT Result APICreateCone (const size_t nHistoryID, const double radius, const double height, const WSM::Point3d &posCenter, size_t &nCreatedObjectID, const double accuracyORcount=10.0)
 Create a cone (above Z=0) with given parameters. More...
 
WSM_EXPORT Result APICreateCircleOrArc (const size_t nHistoryID, const double radius, const WSM::Point3d &posCenter, 1::vector< WSM::Point3d > &aPoints, const WSM::UnitVector3d &xAxis=WSM::UnitVector3d::kXDir, const WSM::UnitVector3d &yAxis=WSM::UnitVector3d::kYDir, double dStartParam=0.0, double dEndParam=WSM_2PI, const double accuracyORcount=10.0, bool bReadOnly=false, const WSM::Transf3d &trans=WSM::Transf3d::kIdentity, size_t nMinimumNumberOfFacets=0)
 Create a vector of Point3ds of a circle or arc defined by C(t) = posCenter + radius * (xAxis * cos(t) + yAxis * sin(t)), where t goes from dStartParam to dEndParam. More...
 
WSM_EXPORT Result APICreateCircleOrArcFromPoints (const size_t nHistoryID, const WSM::Point3d &arcStartPos, const WSM::Point3d &arcEndPos, const WSM::Point3d &thirdPoint, 1::vector< WSM::Point3d > &aPoints, const double accuracyORcount=10.0, bool bReadOnly=false, const WSM::Transf3d &trans=WSM::Transf3d::kIdentity, size_t nMinimumNumberOfFacets=0, bool bCircle=false)
 Create a vector of Point3ds of a circular arc, defined with a arcStartPos, arcEndPos, and a thirdPoint. More...
 
WSM_EXPORT Result APICreateRectangle (const size_t nHistoryID, const WSM::Point3d &firstEdgePt1, const WSM::Point3d &firstEdgePt2, const WSM::Point3d &projectionPt, 1::vector< WSM::Point3d > &aCreatedPts, bool bReadOnly=false)
 Create a rectangle based on one edge and a third point. More...
 
WSM_EXPORT Result APICreateHermiteSpline (const size_t nHistoryID, const 1::vector< WSM::Point3d > &aControlPoints, 1::vector< WSM::Point3d > &aOutPoints, bool bClosed=false, const WSM::Vector3d &startTangent=WSM::Vector3d::kNull, const WSM::Vector3d &endTangent=WSM::Vector3d::kNull, bool bReadOnly=false, 1::vector< double > *aOutPointsParams=nullptr)
 Tessellate a cubic spline that touches all aControlPoints. More...
 
WSM_EXPORT Result APICreateClampedHermiteSplineDataReadOnly (const size_t nHistoryID, const 1::vector< WSM::Point3d > &aControlPoints, const WSM::Vector3d &startTangent, const WSM::Vector3d &endTangent, bool bClosed, const 1::vector< size_t > &aVertexIDsOnSpline, size_t nNumberOfNewContolPoints, 1::vector< WSM::Point3d > &aNewControlPoints, WSM::Vector3d &startTangentNew, WSM::Vector3d &endTangentNew, bool &bClosedNew, 1::map< double, size_t > &mVertextParameterMap)
 Create a clamped cubic spline from the data of a spline and the original vertex points on the spline. More...
 
WSM_EXPORT Result APIGetBoxReadOnly (const size_t nHistoryID, const size_t nObjectID, WSM::Interval3d &Box, const WSM::Transf3d &transform=WSM::Transf3d::kIdentity)
 Returns the bounding box of a Object. More...
 
WSM_EXPORT Result APIGetBodyFacesReadOnly (const size_t nHistoryID, const size_t nBodyID, 1::vector< size_t > &aFaceIDs)
 Returns the Faces of a Body. More...
 
WSM_EXPORT Result APIFaceContainsPointReadOnly (const size_t nHistoryID, const size_t nFaceID, const Point3d &point, bool &bContainsPoint)
 Does the given Face contain the given Point3d? More...
 
WSM_EXPORT Result APIGetObjectsByTypeReadOnly (const size_t nHistoryID, const size_t nObjectID, const WSM::nObjectType nType, 1::vector< size_t > &aIDs, bool bUpstream=false)
 If the given bUpstream argument is false, returns all the objects of type nType contained by the given pbject; otherwise, returns all the objects of type nType which are the parents of given object. More...
 
WSM_EXPORT Result APIGetAllObjectsByTypeReadOnly (const size_t nHistoryID, const WSM::nObjectType nType, 1::vector< size_t > &aIDs)
 Returns all live objects of type nType in the given history. More...
 
WSM_EXPORT Result APIGetBodyEdgesReadOnly (const size_t nHistoryID, const size_t nBodyID, 1::vector< size_t > &aEdgeIDs)
 Returns the Edges of a Body. More...
 
WSM_EXPORT Result APIGetFaceFacetsReadOnly (const size_t nHistoryID, const size_t nFaceID, 1::vector< size_t > &aFacets)
 Returns the Facets of a Face. More...
 
WSM_EXPORT Result APIGetVertexPoint3dReadOnly (const size_t nHistoryID, const size_t nVertexID, WSM::Point3d &Pt)
 Returns the Point3d of a Vertex. More...
 
WSM_EXPORT Result APICheckValidityReadOnly (const size_t nHistoryID, const size_t nObjectID, 1::vector< Result > &aErrors)
 Finds all errors on the Object. More...
 
WSM_EXPORT Result APICheckHistoryValidityReadOnly (const size_t nHistoryID, 1::vector< Result > &aErrors)
 Finds all errors in the History (including on every live Object in the History). More...
 
WSM_EXPORT Result APIIsNonOwnedReadOnly (const size_t nHistoryID, const size_t nObjectID, bool &bIsNonOwned)
 Returns whether this object has an owner. More...
 
WSM_EXPORT Result APIGetAllNonOwnedReadOnly (const size_t nHistoryID, 1::vector< size_t > &aNonOwned)
 Returns all non owned Objects in the given History. More...
 
WSM_EXPORT Result APIGetAllConnectedNonOwnedReadOnly (const size_t nHistoryID, const size_t nObjectID, 1::vector< size_t > &aNonOwned)
 Returns all non owned Objects in the given History that are connected to the given Object. More...
 
WSM_EXPORT Result APIGetConnectedEdgesReadOnly (const size_t nHistoryID, const size_t nEdgeID, 1::vector< size_t > &aConnectedEdges, bool bBreakOnNonSmooth)
 Returns all connected edges of a seed edge. More...
 
WSM_EXPORT Result APIGetObjectTypeReadOnly (const size_t nHistoryID, const size_t nObjectID, nObjectType &nType)
 Returns Object's type in the given History. More...
 
WSM_EXPORT Result APIGetEdgeOrVertexMarkedSmoothReadOnly (const size_t nHistoryID, const size_t nObjectID, bool &bIsSmooth)
 Returns whether an edge or vertex is marked as smooth. More...
 
WSM_EXPORT Result APISetEdgesOrVerticesMarkedSmooth (const size_t nHistoryID, const 1::vector< size_t > &aObjectIDs, bool bSmooth)
 Marks the smoothness of all Objects specified in aObjectIDs. More...
 
WSM_EXPORT Result APIIsEdgeSilhouetteReadOnly (const size_t nHistoryID, const size_t nEdgeID, const WSM::Point3d &cameraPos, const WSM::Vector3d &cameraDir, bool bPerspectiveView, bool &bIsSilhouette)
 Returns whether or not an Edge is a silhouette Edge based on the camera position, the camera direction, the view type being perspective or orthogonal. More...
 
WSM_EXPORT Result APIDetectSilhouettesReadOnly (const size_t nHistoryID, const 1::vector< size_t > &aEdgeIDs, const WSM::Point3d &cameraPos, const WSM::Vector3d &cameraDir, bool bPerspectiveView, bool bSmoothOnly, 1::vector< size_t > &aSilIDs)
 Takes a list of edge ids and a camera, and returns the ids which contribute to the silhouette. More...
 
WSM_EXPORT Result APIDetectFreeEdgesReadOnly (const size_t nHistoryID, const 1::vector< size_t > &aEdgeIDs, 1::vector< size_t > &aFreeEdgeIDs, 1::vector< size_t > &aNonFreeEdgeIDs)
 Takes a list of edges, and returns a list of edges which have 1 or 0 connected faces and a list of the non free edges. More...
 
WSM_EXPORT Result APIGetEdgeFaceClassificationReadOnly (const size_t nHistoryID, const 1::vector< size_t > &aEdgeIDs, 1::vector< int > &aFaceClassification)
 Takes a list of edges, and returns an array of int that describes the edge face classification for each edge. More...
 
WSM_EXPORT Result APIIsEdgeManifoldReadOnly (const size_t nHistoryID, const size_t nEdgeID, bool &bIsManifold)
 Returns whether an edge has exactly two coedges on two distinct faces. More...
 
WSM_EXPORT Result APIGetMemorySizeReadOnly (const size_t nHistoryID, size_t &nBytes, bool bCollapsedHistoryWithLiveObjsOnly=false)
 Returns the size (in bytes) of either the current History with all Object versions or collapsed history with only live Objects. More...
 
WSM_EXPORT Result APISaveHistoryToBinaryFileReadOnly (const size_t nHistoryID, const char *sFilePath, const 1::vector< WSM::ObjectHistoryID > &aLayerDisplayedNegateVec={})
 Save the whole history (with all undo states) to a binary file. More...
 
WSM_EXPORT Result APISaveHistoryToBinaryStringReadOnly (const size_t nHistoryID, 1::string &sData, size_t &lastDeltaID, bool bBase64Encode, const 1::vector< WSM::ObjectHistoryID > &aLayerDisplayedNegateVec={})
 Save the whole history (with all undo states) to a binary string. More...
 
WSM_EXPORT Result APILoadHistoryFromBinaryString (const size_t nHistoryID, const 1::string &base64Str, bool base64encoded=true)
 Load the whole history (with all undo states) from an, optionally base64 encoded, string and add to to an empty History. More...
 
WSM_EXPORT Result APISaveToFileReadOnly (const size_t nHistoryID, const 1::vector< size_t > &aObjectIDs, const 1::string &sFilePath, const WSM::nFileType eFileType=WSM::nFileTypeBinaryWSM, const bool bWithChildren=true, const double dExportScale=1.0, const 1::vector< WSM::ObjectHistoryID > &aExcludedObjects={}, const 1::vector< WSM::ObjectHistoryID > &aLayerDisplayedNegateVec={})
 Save Objects to a file of the specified type. More...
 
WSM_EXPORT Result APISaveToAXMFileReadOnly (const size_t nHistoryID, const 1::vector< size_t > &aObjectIDs, const 1::string &sFilePath, 1::vector< char > const &aPreviewImage={}, bool bWithChildren=true)
 Saves Objects to an AXM file. More...
 
WSM_EXPORT Result APISaveToStringReadOnly (const size_t nHistoryID, const 1::vector< size_t > &aObjectIDs, 1::string &sOutputString, const WSM::nFileType eFileType=WSM::nFileTypeBinaryWSM, const bool bWithChildren=true, const 1::vector< WSM::ObjectHistoryID > &aExcludedObjects={}, bool bBase64Encode=false, const 1::vector< WSM::ObjectHistoryID > &aLayerDisplayedNegateVec={})
 Save Objects to a string. More...
 
WSM_EXPORT Result APISaveAllActiveObjectsToBinaryFileReadOnly (const size_t nHistoryID, const char *sFilePath)
 Save all active Objects to a binary file. More...
 
WSM_EXPORT Result APISaveDeltaToBinaryStringReadOnly (const size_t nHistoryID, 1::string &base64Str, size_t &deltaID, bool base64encode=true)
 Serialize the given (or last, if deltaID is WSM::INVALID_ID) Delta and all its changed Objects to a binary stream, optionally Base64 encoding the serialized data, and save it to a string. More...
 
WSM_EXPORT Result APILoadDeltaFromBinaryString (const size_t nHistoryID, const 1::string &serializedDeltaStr, size_t &nDeltaID, size_t &nTrailingDeltaIDShift, size_t &nFirstDiscardedDeltaID, bool base64encoded=true)
 Load Delta from the given Base64 encoded string and add it to the given History. More...
 
WSM_EXPORT Result APIDecodeBase64StringReadOnly (const 1::string &base64Str, size_t &previousDeltaID, 1::string &decodedStr)
 Decode the given base64 encoded string. More...
 
WSM_EXPORT Result APISaveLastDeltaToBinaryFileReadOnly (const size_t nHistoryID, const char *sFilePath)
 Save last Delta and all changed Objects to a binary file. More...
 
WSM_EXPORT Result APILoadDeltaFromBinaryFile (const size_t nHistoryID, const char *sFilePath)
 Load Delta from a binary file and add it to the History. More...
 
WSM_EXPORT Result APILoadFromFile (const size_t nHistoryID, const 1::string &sFilePath, const WSM::nFileType eFileType=WSM::nFileTypeBinaryWSM, ptrdiff_t *pObjectIdOffset=nullptr, const size_t nOptions=to_ut(WSM::nLoadingOptions::RemoveDuplicate| WSM::nLoadingOptions::Merge| WSM::nLoadingOptions::CreateMesh), double dMaxDistanceFromOrigin=0.0, double dScaleFactor=1.0)
 Load a model from a file of one of the supported types. More...
 
WSM_EXPORT Result APILoadFromFacets (const size_t nHistoryID, const 1::vector< FacetsBodyData > &facetsData, 1::vector< size_t > &createdObjectIDs, const size_t nOptions=to_ut(WSM::nLoadingOptions::RemoveDuplicate| WSM::nLoadingOptions::Merge| WSM::nLoadingOptions::CreateMesh), double dMaxDistanceFromOrigin=0.0, double dRemoveDuplicateTol=WSM_MACHINE_TOL)
 Load a model from specified list of body facets. More...
 
WSM_EXPORT Result APILoadFromString (const size_t nHistoryID, const 1::string &sInputString, const WSM::nFileType eFileType=WSM::nFileTypeBinaryWSM, ptrdiff_t *pObjectIdOffset=nullptr, const size_t nOptions=to_ut(WSM::nLoadingOptions::RemoveDuplicate| WSM::nLoadingOptions::Merge| WSM::nLoadingOptions::CreateMesh), double dMaxDistanceFromOrigin=0.0, bool bBase64Encoded=false, double dScaleFactor=1.0)
 Load a model from a string containing serialization of one of the supported types. More...
 
WSM_EXPORT Result APILoadAXMFile (const size_t nHistoryID, const 1::string &sFilePath, const 1::vector< 1::vector< char >> *defaultTextures=nullptr, bool isImport=false, const 1::string &logOutputPath={})
 Load an AXM file, both pre WSM and current. More...
 
WSM_EXPORT Result APILoadMaterialsFromAXMFile (const size_t nHistoryID, const 1::string &sFilePath)
 Load only materials and their textures from an AXM file into the given history. More...
 
WSM_EXPORT Result APIRayFireReadOnly (const size_t nHistoryID, const WSM::Line3d &ray, 1::vector< size_t > &aObjectIDs, double dRayRadius=WSM_MACHINE_TOL, bool bVertices=true, bool bEdges=true, bool bFaces=true, double dMaxParam=WSM_DISTANCE_BIG, 1::vector< GroupInstancePath > *pObjectsInGroupsVec=nullptr, 1::vector< WSM::Transf3d > *pGroupAggregateTransf3dVec=nullptr, 1::vector< 1::pair< double, ptrdiff_t > > *pParamIndexVec=nullptr, WSM::IRayFireFilterAndAbort *filterAndAbort=nullptr)
 Finds all live Objects of the types specified that intersect the ray with the given ray radius. More...
 
WSM_EXPORT Result APIIntersectsNegativeSideOfPlanesReadOnly (const size_t nHistoryID, const 1::vector< WSM::Plane > &aPlanes, 1::vector< size_t > &aObjectIDs, bool bVertices=true, bool bEdges=true, bool bFaces=true, bool bStrict=false, double dTol=WSM_MACHINE_TOL, const WSM::Line3d *pLine=nullptr, 1::vector< GroupInstancePath > *pObjectsInGroupsVec=nullptr, 1::vector< WSM::Transf3d > *pGroupAggregateTransf3dVec=nullptr, 1::vector< 1::pair< double, ptrdiff_t > > *pParamIndexVec=nullptr, bool bInstances=false, WSM::IRayFireFilterAndAbort *filterAndAbort=nullptr)
 Get all live Objects of the types specified that intersect the negative side of all the given Planes. More...
 
WSM_EXPORT Result APIConnectPoint3ds (size_t nHistoryID, const WSM::Point3d &pt1, const WSM::Point3d &pt2)
 Connect two Point3ds for use in 3D sketching creating Edges as appropriate, splitting Faces and Edges, creating new Faces as planar areas are enclosed, etc. More...
 
WSM_EXPORT Result APIConnectVertexAndPoint3d (size_t nHistoryID, size_t nVertexID, const WSM::Point3d &pt)
 Connect a Vertex and a Point3d for use in 3D sketching creating Edges as appropriate, splitting Faces and Edges, creating new Faces as planar areas are enclosed, etc. More...
 
WSM_EXPORT Result APIConnectVertices (size_t nHistoryID, size_t nVertexID1, size_t nVertexID2)
 Connect two Vertices for use in 3D sketching creating Edges as appropriate, splitting Faces and Edges, creating new Faces as planar areas are enclosed, etc. More...
 
WSM_EXPORT Result APIImprint (size_t nHistoryID, size_t nObject1, size_t nObject2, bool bChangeBoth=true)
 Imprints the Objects onto each other. More...
 
WSM_EXPORT Result APIImprintWithPlane (size_t nHistoryID, size_t nObject, const Plane &pla)
 Imprints the Plane onto the Object. More...
 
WSM_EXPORT Result APISlice (size_t nHistoryID, size_t nDestinationHistoryID, size_t nObject, const Plane &pla, 1::vector< size_t > &aNewNonOwnedIDs, IsObjectHiddenFunctionType isHiddenFunc=nullptr)
 Slices the Object with the Plane creating new Faces and Edges that are NOT connected to the Object. More...
 
WSM_EXPORT Result APISliceHistoryReadOnly (size_t nHistoryID, const Plane &pla, 1::vector< 1::pair< WSM::Point3d, bool >> &aPointsToConnect, IsObjectHiddenFunctionType isHiddenFunc=nullptr)
 Slices the history with the Plane creating line points. More...
 
WSM_EXPORT Result APIUnite (size_t nHistoryID, size_t nObject1, size_t nObject2, const 1::vector< size_t > &aExtraObjetsIDs=1::vector< size_t >())
 Unites the Objects, deleting nObject2 and extra objects. More...
 
WSM_EXPORT Result APISubtract (size_t nHistoryID, size_t nObject1, size_t nObject2, const 1::vector< size_t > &aExtraObjetsIDs=1::vector< size_t >())
 Subtracts nObject2 and extra objects from nObject1, deleting nObject2 and extra objects. More...
 
WSM_EXPORT Result APIUniteNonDestructive (const GroupInstancePath &blank, const 1::vector< GroupInstancePath > &tools)
 Unites the tools with the blank changing the blank while keeping the tools unaffected. More...
 
WSM_EXPORT Result APISubtractNonDestructive (const GroupInstancePath &blank, const 1::vector< GroupInstancePath > &tools)
 Subtracts the tools from the blank changing the blank while keeping the tools unaffected. More...
 
WSM_EXPORT Result APISeparate (size_t nHistoryID, size_t nBodyID, 1::vector< size_t > &aNewBodyIDs)
 If the Body has more than one Lump, makes new Bodies for each Lump after the first one. More...
 
WSM_EXPORT Result APIGetObjectNameReadOnly (size_t nHistoryID, size_t nObject, const char *&pName)
 Returns the name of the Object. More...
 
WSM_EXPORT Result APIComputeAreaReadOnly (size_t nHistoryID, size_t nObject, double &dArea, const WSM::Transf3d *pTransf3d=nullptr)
 Computes the surface area of the Object. More...
 
WSM_EXPORT Result APIComputeVolumeReadOnly (size_t nHistoryID, size_t nObject, double &dVolume, const WSM::Transf3d *pTransf3d=nullptr)
 Computes the volume of the Object. More...
 
WSM_EXPORT Result APIReverseFaces (size_t nHistoryID, const 1::vector< size_t > &aFaceIDs)
 Reverse all the Faces given by aFaceIDs. More...
 
WSM_EXPORT Result APIRegisterLockGuardFactory (const 1::function< AbstractLockGuard * > &fn)
 Note this is for internal use only and is not exposed to javascript. More...
 
WSM_EXPORT Result APIRegisterModelChangedCallbackReadOnly (FunctionType const &fCallback)
 Register a callback that will be called on the completion of each Delta or Undo/Redo operation within any non-temporary History, or upon the creation of a non-temporary history, or the deletion of any history. More...
 
WSM_EXPORT Result APIRegisterProgressCallbacksReadOnly (WSM::ApiProgress::StartCbkFn startCbk=WSM::ApiProgress::StartCbkFn{}, WSM::ApiProgress::ProgressCbkFn progressCbk=WSM::ApiProgress::ProgressCbkFn{}, WSM::ApiProgress::FinishedCbkFn finishCbk=WSM::ApiProgress::FinishedCbkFn{}, float incrP=1.0f, float startP=0.0f, float endP=100.0f)
 Register progress callback. More...
 
WSM_EXPORT Result APIGetTopLevelOwnersReadOnly (size_t nHistoryID, const size_t nObjectID, 1::vector< size_t > &aOwnerIDs)
 Returns the top level owners of the given Object. More...
 
WSM_EXPORT Result APIGetCreatedChangedAndDeletedInActiveDeltaReadOnly (size_t nHistoryID, 1::vector< size_t > *paCreated, 1::vector< size_t > *paChanged, 1::vector< size_t > *paDeleted, WSM::nObjectType nType, bool bForUndo=false)
 Gets the changed, created, and deleted objects in the most recent delta. More...
 
WSM_EXPORT Result APIGetCreatedChangedAndDeletedInDeltaRangeReadOnly (size_t nHistoryID, size_t previousDeltaID, size_t currentDeltaID, 1::vector< size_t > *paCreated, 1::vector< size_t > *paChanged, 1::vector< size_t > *paDeleted, 1::vector< WSM::nObjectType > const &aTypes)
 Gets the changed, created, and deleted objects between the previous and current Delta in the range of Deltas provided. More...
 
WSM_EXPORT Result APIGetCoedgeDirectionReadOnly (size_t nHistoryID, const size_t nObjectID, bool &bForward)
 Return true if cedge and its underlying edge go in the same direction; otherwise, return false. More...
 
WSM_EXPORT Result APIEnableJournaling (size_t nHistoryID, const 1::string &sJournalFileName={})
 Enable Journaling. More...
 
WSM_EXPORT Result APIIsJournalingReadOnly (bool &isJournaling)
 Check if Journaling is enabled. More...
 
WSM_EXPORT Result APIEnableJournalingTypes (const 1::vector< 1::string > &types, bool add=false)
 First turns off all journaling types if add is false, and then turns on all types in the given list of types. More...
 
WSM_EXPORT Result APIGetEnabledJournalingTypesReadOnly (1::set< 1::string > &types)
 Returns the list of journaling types that are enabled. More...
 
WSM_EXPORT Result APIDisableJournaling (1::string *journalOutput=nullptr)
 Disable Journaling. More...
 
WSM_EXPORT Result APISetObjectsMaterial (size_t nHistoryID, const 1::vector< size_t > &aObjectIDs, size_t nMaterialID)
 Sets the material given by MaterialID on the given Objects. More...
 
WSM_EXPORT Result APISetFaceBacksideMaterial (size_t nHistoryID, const 1::vector< size_t > &aFaceIDs, size_t nMaterialID)
 Sets the material given by MaterialID as the backside material of the given faces. More...
 
WSM_EXPORT Result APIGetObjectMaterialReadOnly (size_t nHistoryID, size_t nObjectID, size_t &nMaterialID)
 Gets the material of the object. More...
 
WSM_EXPORT Result APIGetFaceBacksideMaterialReadOnly (size_t nHistoryID, size_t nFaceID, size_t &nMaterialID)
 Gets the backside material of the given face. More...
 
WSM_EXPORT Result APIGetObjectTextureCoordinatesReadOnly (size_t nHistoryID, size_t nObjectID, 1::vector< WSM::Point2d > &aTexCoords)
 Generates texture coordinates for the given ObjectHistoryID nObjectID is a face or body, other object types will return bad input error For the case of body: Generates the texture coordinates for the facets of all faces in the body This is slightly more efficient than calling per-face APIGetTextureCoordinatesReadOnly for each face of the body. More...
 
WSM_EXPORT Result APICreateMaterial (size_t nHistoryID, const Color &nColor, double dHorizontalScale, double dVerticalScale, size_t nTextureID, size_t &nMaterialID, 1::string const &sMaterialName={}, 1::string const &sMaterialIdentifier={}, 1::vector< 1::pair< 1::string, 1::string >> const *pAdditionalRenderData=nullptr, 1::vector< 1::pair< 1::string, size_t >> const *pAdditionalTextures=nullptr)
 Creates a Material. More...
 
WSM_EXPORT Result APICreateMaterialWithTexture (size_t nHistoryID, const Color &nColor, double dHorizontalScale, double dVerticalScale, 1::vector< char > const &aBitmapData, bool bUseBitmapAlpha, size_t &nMaterialID, 1::string const &sMaterialName={}, 1::string const &sMaterialIdentifier={}, 1::vector< 1::pair< 1::string, 1::string >> const *pAdditionalRenderData=nullptr, 1::vector< 1::pair< 1::string, size_t >> const *pAdditionalTextures=nullptr, 1::string const &sTextureName={})
 Creates a Material with a texture. More...
 
WSM_EXPORT Result APISetMaterialColor (size_t nHistoryID, size_t nMaterialID, const Color &nColor)
 Sets a Material's color. More...
 
WSM_EXPORT Result APISetMaterialTexture (size_t nHistoryID, size_t nMaterialID, double dHorizontalScale, double dVerticalScale, size_t nTextureID)
 Sets a MaterialObject's texture data. More...
 
WSM_EXPORT Result APISetMaterialData (size_t nHistoryID, size_t nMaterialID, const Color &nColor, double dHorizontalScale, double dVerticalScale, size_t nTextureID, 1::string const *pMaterialName=nullptr, 1::string const *pMaterialIdentifier=nullptr, 1::vector< 1::pair< 1::string, 1::string >> const *pAdditionalRenderData=nullptr, 1::vector< 1::pair< 1::string, size_t >> const *pAdditionalTextures=nullptr)
 Sets all the data of a Material. More...
 
WSM_EXPORT Result APIGetMaterialDataReadOnly (const size_t nHistoryID, const size_t nMaterialID, Color &nColor, double &dHorizontalScale, double &dVerticalScale, size_t &nTextureID, 1::string *pMaterialName=nullptr, 1::string *pMaterialIdentifier=nullptr, 1::vector< 1::pair< 1::string, 1::string >> *pAdditionalRenderData=nullptr, 1::vector< 1::pair< 1::string, size_t >> *pAdditionalTextures=nullptr, 1::vector< size_t > *aObjectsUsingMaterial=nullptr)
 Gets the material data of a Material. More...
 
WSM_EXPORT Result APIIsMaterialUsedReadOnly (const size_t nHistoryID, const size_t nMaterialID, bool &bIsUsed)
 Returns true if the material is used by any objects. More...
 
WSM_EXPORT Result APICreateTexture (size_t nHistoryID, 1::vector< char > const &aBitmapData, bool bUseBitmapAlpha, size_t &nCreatedTextureID, 1::string const &sTextureName={})
 Creates a Texture object. More...
 
WSM_EXPORT Result APIGetTextureDataReadOnly (size_t nHistoryID, size_t nTextureID, 1::vector< char > &aBitmapData, bool &bUseBitmapAlpha, 1::string *pTextureName=nullptr)
 Returns the data of a texture. More...
 
WSM_EXPORT Result APISetTextureData (size_t nHistoryID, size_t nTextureID, 1::vector< char > const &aBitmapData, bool bUseBitmapAlpha, 1::string const *pTextureName=nullptr)
 Set the data of a Texture object. More...
 
WSM_EXPORT Result APIGetObjectAttributesReadOnly (size_t nHistoryID, size_t nObjectID, 1::vector< size_t > &aAttributeIDs)
 Get all of the Attributes of the given Object. More...
 
WSM_EXPORT Result APIGetObjectLayersReadOnly (size_t nHistoryID, size_t nObjectID, 1::vector< size_t > &aLayerIDs)
 Get all the layers of the given Object. More...
 
WSM_EXPORT Result APIIsEdgeOnCircleReadOnly (size_t nHistoryID, size_t nEdgeID, double &radius, WSM::Point3d &center, WSM::UnitVector3d &normal, WSM::UnitVector3d &xaxis, 1::vector< size_t > &aAllCircleSiblings, bool &bIsOnCircle)
 Gets the circle data of the given Edge when the Edge lies on a circle. More...
 
WSM_EXPORT Result APIEditCircleEdges (size_t nHistoryID, 1::vector< size_t > nEdgeIDs, double radius, const WSM::Point3d &center, const WSM::UnitVector3d &normal, const WSM::UnitVector3d &xaxis, double angle=0.0)
 Edits the circle data of the Edges with nEdgeIDs when the Edges lies on a circle. More...
 
WSM_EXPORT Result APIIsEdgeOnSplineReadOnly (size_t nHistoryID, size_t nEdgeID, 1::vector< WSM::Point3d > &aControlPoints, bool &bClosed, WSM::Vector3d &startTangent, WSM::Vector3d &endTangent, 1::vector< size_t > &aAllSplineSiblings, bool &bIsOnSpline)
 Gets the spline data of the given Edge when the Edge lies on a spline. More...
 
WSM_EXPORT Result APIEditSplineEdges (size_t nHistoryID, 1::vector< size_t > nEdgeIDs, const 1::vector< WSM::Point3d > &aControlPoints, bool bClosed, const WSM::Vector3d &startTangent, const WSM::Vector3d &endTangent)
 Edit the spline data of the Edge with nEdgeIDs when the Edge lies on a spline. More...
 
WSM_EXPORT Result APIIsFaceOnCylinderReadOnly (size_t nHistoryID, size_t nFaceID, double &radius, WSM::Point3d &center, WSM::UnitVector3d &normal, WSM::UnitVector3d &xaxis, 1::vector< size_t > &aAllCylinderSiblings, bool &bIsOnCylinder)
 Gets the Cylinder data of the given Face when the Face lies on a cylinder. More...
 
WSM_EXPORT Result APIEditCylinderFaces (size_t nHistoryID, 1::vector< size_t > nFaceIDs, double radius, const WSM::Point3d &center, const WSM::UnitVector3d &normal, const WSM::UnitVector3d &xaxis)
 Edits the Cylinder data of the given Faces when the Faces lies on a cylinder. More...
 
WSM_EXPORT Result APIIsFaceOnSphereReadOnly (size_t nHistoryID, size_t nFaceID, double &radius, WSM::Point3d &center, WSM::UnitVector3d &normal, WSM::UnitVector3d &xaxis, 1::vector< size_t > &aAllSphereSiblings, bool &bIsOnSphere)
 Gets the Sphere data of the given Face when the Face lies on a sphere. More...
 
WSM_EXPORT Result APIEditSphereFaces (size_t nHistoryID, 1::vector< size_t > nFaceIDs, double radius, const WSM::Point3d &center, const WSM::UnitVector3d &normal, const WSM::UnitVector3d &xaxis)
 Edits the Sphere data of the given Faces when the Faces lies on a sphere. More...
 
WSM_EXPORT Result APIIsFaceOnExtrudeReadOnly (size_t nHistoryID, size_t nFaceID, WSM::Point3d &base, WSM::Vector3d &axis, WSM::UnitVector3d &xaxis, 1::vector< WSM::Point3d > &aControlPoints, bool &bClosed, WSM::Vector3d &startTangent, WSM::Vector3d &endTangent, 1::vector< size_t > &aAllExtrudeSiblings, bool &bIsOnExtrude)
 Gets the Extrude data of the given Face when the Face lies on a Extrude. More...
 
WSM_EXPORT Result APIIsFaceOnBlendReadOnly (size_t nHistoryID, size_t nFaceID, double &radius, 1::vector< WSM::Point3d > &aPathPoints, 1::vector< size_t > &aAllBlendSiblings, bool &bIsOnBlend)
 Gets the blend data of the given Face when the Face lies on a blend. More...
 
WSM_EXPORT Result APISetObjectProperties (const size_t nHistoryID, const size_t nObjectID, const 1::string &sObjectName, bool bReportAreaByLevel, const 1::vector< size_t > *pDefaultLevelIDs=nullptr)
 Sets the properties of a given object (Body): A name and if that particular body reports its area by level or not, and the optional default levelIDs associated with the object. More...
 
WSM_EXPORT Result APIGetObjectPropertiesReadOnly (const size_t nHistoryID, const size_t nObjectID, 1::string &sObjectName, bool &bReportAreaByLevel)
 Gets the properties of a given object (Body): A name and if that particular body reports its area by level or not. More...
 
WSM_EXPORT Result APICreateLevelObjects (const size_t nHistoryID, const 1::vector< 1::pair< 1::string, double > > &aLevelsData, 1::vector< size_t > &aLevelIDs)
 Creates Level objects with the data provided by aLevelsData. More...
 
WSM_EXPORT Result APISetLevelsData (const size_t nHistoryID, const 1::vector< size_t > &aLevelIDs, const 1::vector< 1::pair< 1::string, double > > &aLevelsData)
 Sets the data in the Levels to the name, elevation pairs in aLevelData. More...
 
WSM_EXPORT Result APISetObjectsLevels (const size_t nHistoryID, const 1::vector< size_t > &aObjectIDs, const 1::vector< size_t > &aLevelsIDs)
 Set the levels associated with a list of objects (bodies) Empty list "clear levels from object". More...
 
WSM_EXPORT Result APIGetLevelDataReadOnly (const size_t nHistoryID, const size_t nLevelID, 1::string &sLevelName, double &dElevation)
 Gets the LevelĀ“s data. More...
 
WSM_EXPORT Result APIGetObjectLevelsReadOnly (const size_t nHistoryID, const size_t nObjectID, 1::vector< size_t > &aLevelsIDs)
 Get the levels associated with an object (body) More...
 
WSM_EXPORT Result APISetLocalCoordinateSystem (const size_t nHistoryID, const Transf3d &LCS)
 Set the LCS (local coordinate system) of the given History. More...
 
WSM_EXPORT Result APIGetLocalCoordinateSystemReadOnly (const size_t nHistoryID, Transf3d &LCS)
 Get the LCS (local coordinate system) of the given History. More...
 
WSM_EXPORT Result APIIsObjectLiveReadOnly (size_t nHistoryID, size_t nObjectID, bool &bIsLive)
 Find out if nObjectID is live or dead in nHistoryID. More...
 
WSM_EXPORT Result APIIsHistoryLiveReadOnly (size_t nHistoryID, bool &bIsLive)
 Find out if nHistoryID is live or dead. More...
 
WSM_EXPORT Result APIIsEdgeMergeableReadOnly (size_t nHistoryID, size_t nEdgeID, bool &bIsMergeable, bool bUseMaterial=false)
 Find out if an Edge is mergeable. More...
 
WSM_EXPORT Result APICreateImageObject (const size_t nHistoryID, const 1::string &sName, const size_t nTextureID, const float fAlphaValue, const bool bFeaturesVisible, const 1::array< WSM::Point3d, 4 > &aCorners, size_t &nObjectID)
 Creates an image object. More...
 
WSM_EXPORT Result APICreateImageObjectWithTexture (const size_t nHistoryID, const 1::string &sName, const float fAlphaValue, const bool bFeaturesVisible, const 1::array< WSM::Point3d, 4 > &aCorners, 1::vector< char > const &aBitmapData, size_t &nObjectID, 1::string const &sTextureName={})
 Creates an image object with texture.The image is connected to an internal texture object. More...
 
WSM_EXPORT Result APICreateSatelliteImageObject (const size_t nHistoryID, const 1::string &sName, const size_t nTextureID, const float fAlphaValue, const bool bFeaturesVisible, const 1::array< WSM::Point3d, 4 > &aCorners, const WSM::Vector2d &coordinates, const WSM::Vector2d &coordinatesSpan, const 1::array< size_t, 2 > &aPixelDimensions, size_t &nObjectID)
 Creates a satellite image object. More...
 
WSM_EXPORT Result APIMoveImage (const size_t nHistoryID, const size_t nImageID, const int nShift)
 This call alters the spatial order of images along the z (vertical) axis. More...
 
WSM_EXPORT Result APISetImageData (const size_t nHistoryID, const size_t nImageID, const 1::string &sName, const size_t nTextureID, const float fAlphaValue, const bool bFeaturesVisible, const 1::array< WSM::Point3d, 4 > &aCorners)
 Sets the image object data. More...
 
WSM_EXPORT Result APISetSatelliteData (const size_t nHistoryID, const size_t nImageID, const WSM::Vector2d &coordinates, const WSM::Vector2d &coordinatesSpan, const 1::array< size_t, 2 > &aPixelDimensions)
 Sets satellite data to an image object. More...
 
WSM_EXPORT Result APIRemoveSatelliteData (const size_t nHistoryID, const size_t nImageID)
 Removes the satellite data associated with a given image. More...
 
WSM_EXPORT Result APIGetImageDataReadOnly (const size_t nHistoryID, const size_t nImageID, 1::string &sName, size_t &nTextureID, size_t &nPosition, float &fAlphaValue, bool &bFeaturesVisible, 1::array< WSM::Point3d, 4 > &aCorners, bool &bHasSatelliteData)
 Gets the image data. More...
 
WSM_EXPORT Result APIGetSatelliteDataReadOnly (const size_t nHistoryID, const size_t nImageID, WSM::Vector2d &coordinates, WSM::Vector2d &coordinatesSpan, 1::array< size_t, 2 > &aPixelDimensions)
 Gets the satellite data associated with a given image. More...
 
WSM_EXPORT Result APICreateGroup (size_t nHistoryID, const 1::vector< size_t > &aObjectIDs, size_t &nCreatedGroupID, const 1::vector< WSM::Transf3d > *pInstanceTransforms=nullptr, size_t nReferencedHistory=WSM::INVALID_ID, WSM::Transf3d const *pGeometryTransform=nullptr)
 Creates a Group with the given aObjectIDs, which are removed from nHistoryID. More...
 
WSM_EXPORT Result APIGetGroupReferencedHistoryReadOnly (size_t nHistoryID, size_t nGroupOrInstanceID, size_t &nReferencedHistoryID, bool bDeletedInstanceOK=false, int nDeltaOffset=0)
 Returns the ID of the Group's or Instance's referenced History. More...
 
WSM_EXPORT Result APIGetInstanceTransf3dReadOnly (size_t nHistoryID, size_t nInstanceID, WSM::Transf3d &rTransf3d)
 Returns the Instance's Transf3d. More...
 
WSM_EXPORT Result APIGetAllAggregateTransf3dsReadOnly (size_t nReferencedHistoryID, size_t nTopMostHistoryID, 1::vector< WSM::Transf3d > &aGroupAggregateTransf3dVec, 1::vector< GroupInstancePath > &aTransformPaths)
 Computes all the global Transf3ds on the given History referenced by a Group stopping at nTopMostHistoryID. More...
 
WSM_EXPORT Result APIFlattenGroupsOrInstances (size_t nHistoryID, 1::vector< size_t > const &aGroupOrInstanceIDs, bool bRecursive, bool bImprint)
 Replace the instances and/or groups referenced in aGroupOrInstanceIDs by a copy of the contents of the referenced history. More...
 
WSM_EXPORT Result APIAddInstancesToGroup (size_t nHistoryID, size_t nGroupID, 1::vector< Transf3d > const &aTransforms, 1::vector< size_t > &aNewInstanceIDs)
 Creates new instances in the specified group and returns their IDs. More...
 
WSM_EXPORT Result APICreateSeparateHistoriesForInstances (size_t nHistoryID, 1::vector< size_t > const &aInstanceIDs, bool bNewGroupPerInstance, 1::vector< size_t > &aNewGroupIDs)
 Creates new copies of the existing groups and the referenced histories for the specified instances. More...
 
WSM_EXPORT Result APISetDeltaFlags (size_t nHistoryID, size_t nDeltaID, size_t nDeltaFlags)
 Set flags of Delta with ID of nDeltaID in History nHistoryID. More...
 
WSM_EXPORT Result APISetAllDeltaFlags (size_t nHistoryID, size_t nOnFlags, size_t nOffFlags=0, bool bRecursively=true)
 Set flags of all Deltas in History nHistoryID and, optionally, recursively in all Deltas in referenced histories. More...
 
WSM_EXPORT Result APIGetDeltaFlagsReadOnly (size_t nHistoryID, size_t nDeltaID, size_t &nDeltaFlags)
 Get flags of Delta with ID of nDeltaID in History nHistoryID. More...
 
WSM_EXPORT Result APISweep (size_t nHistoryID, const 1::vector< WSM::GroupInstancePath > &aProfile, const 1::vector< WSM::GroupInstancePath > &aPath, bool bRemoveUnusedProfileAndPath=false)
 Creates surface by sweeping the profile along the path. More...
 
WSM_EXPORT Result APIGetPointsFromObjectIDsReadOnly (size_t nHistoryID, const 1::vector< size_t > &aIDs, 1::vector< size_t > &aVertices, WSM::Point3d *pCOG=nullptr, WSM::Plane *pPlane=nullptr)
 Helper function used in sweeping to get points from the profile or path Objects. More...
 
WSM_EXPORT Result APIOffset3d (size_t nHistoryID, size_t nObjectID, double dOffsetDistance)
 Offsets all the Faces in the given Object by the amount specified. More...
 
WSM_EXPORT Result APIShell (size_t nHistoryID, size_t nBodyID, double dOffsetDistance, const 1::vector< size_t > *paOpenFaceIDs=nullptr)
 Shells a Body by the specified offset. More...
 
WSM_EXPORT Result APIBlend (size_t nHistoryID, double dRadius, const 1::vector< size_t > &aPathIDs, const double accuracyORcount=6.0, size_t nMinimumNumberOfFacets=0)
 Creates a blend surface using the Edges given by aPathIDs. More...
 
WSM_EXPORT Result APICover (size_t nHistoryID, const 1::vector< size_t > &aEdgeIDs, bool bMerge=false)
 Makes Faces that cover a closed circuit of Edges. More...
 
WSM_EXPORT Result APILoft (size_t nHistoryID, const 1::vector< 1::vector< size_t >> &aaProfileIDs, bool bDeleteInteriorProfileFaces=false)
 Makes Faces that connect a vector of profiles. More...
 
WSM_EXPORT Result APIExtrudeEdges (size_t nHistoryID, const 1::vector< size_t > &aEdgeIDs, const WSM::Transf3d &t)
 Makes a Face from the given set of continuous edges and a transformed copy of the edges. More...
 
WSM_EXPORT Result APIGetEdgePointsReadOnly (size_t nHistoryID, size_t nEdgeID, WSM::Point3d &start, WSM::Point3d &end)
 Get edge endpoints directly. More...
 
WSM_EXPORT Result APIGetRenderableFaceReadOnly (const size_t nHistoryID, const size_t nFaceID, bool bCalculateTexCoords, 1::vector< WSM::Point3d > &vertices, 1::vector< WSM::UnitVector3d > &normals, 1::vector< WSM::Point2d > &texCoords, bool bBackSide=false)
 Returns vertices in groups of 3 (triangles), with associated normals and optionally texture coordinates. More...
 
WSM_EXPORT Result APISetFaceUVDataAttributes (const size_t nHistoryID, const 1::vector< size_t > &aFaceIDs, const WSM::Transf3d &rTransf3d=WSM::Transf3d::kIdentity, bool bReplaceTransform=false, const WSM::Point3d *tformCenter=nullptr, const WSM::Point2d *tformUVCenter=nullptr)
 Sets FaceUVDataAttributes on the faces passed in and applies a transform to them. More...
 
WSM_EXPORT Result APIGetFaceUVDataTransformReadOnly (const size_t nHistoryID, const size_t nFaceID, WSM::Transf3d &rTransf3d, WSM::Transf3d *planeTransf3d=nullptr, bool bBackSide=false)
 Gets the 2d transform, returned as a 3d transform, for the uvs on the given Face. More...
 
WSM_EXPORT Result APIGetFaceUVDataAttributeUVsReadOnly (const size_t nHistoryID, const size_t nFaceUVDataAttributeID, 1::vector< Point2d > &aFrontUVs, 1::vector< Point2d > &aBackUVs, 1::vector< size_t > *pVertexIDs=nullptr)
 Gets the UVs from a FaceUVDataAttribute. More...
 
WSM_EXPORT Result APICompareHistoryReadOnly (size_t nHistoryID, size_t nActiveDeltaIdx, const 1::vector< size_t > &aDeltaIDs, nHistoryComparison &nComparisonResult)
 Compare nHistoryID with parameters of collaboration server's History, which contains only "accepted" Deltas. More...
 
WSM_EXPORT Result APIIsHistoryNonTemporaryReadOnly (size_t nHistoryID, bool &bIsNonTemporary)
 Returns whether a history is temporary or not. More...
 
WSM_EXPORT Result APIChangeHistoryID (size_t &nHistoryIDtoChange)
 Change ID of a History, nHistoryIDtoChange, and reset it everywhere the old ID was referenced: in Objects belonging to the History being modified as well as in Groups referencing it. More...
 
WSM_EXPORT Result APICreateLayer (size_t nHistoryID, 1::string const &name, bool bDisplayed, size_t &nLayerID)
 Create a layer object with a given name and display flag. More...
 
WSM_EXPORT Result APIGetLayerDataReadOnly (size_t nHistoryID, size_t nLayerID, 1::string &name, bool &bDisplayed, 1::vector< size_t > *aObjectsUsingLayer=nullptr)
 Get the data from a layer. More...
 
WSM_EXPORT Result APISetLayerData (size_t nHistoryID, size_t nLayerID, 1::string const &name, bool bDisplayed)
 Set the data of a layer. More...
 
WSM_EXPORT Result APISetLayersDisplayed (size_t nHistoryID, 1::vector< size_t > const &aLayerIDs, bool bDisplayed)
 Set the display flag of layers without affecting the other data. More...
 
WSM_EXPORT Result APIAddObjectsLayers (size_t nHistoryID, 1::vector< size_t > const &aLayerIDs, 1::vector< size_t > const &aObjectIDs)
 Add layers to objects. More...
 
WSM_EXPORT Result APIRemoveObjectsLayers (size_t nHistoryID, 1::vector< size_t > const &aLayerIDs, 1::vector< size_t > const &aObjectIDs)
 Remove layers from objects. More...
 
WSM_EXPORT Result APIAddRemoveObjectsLayers (size_t nHistoryID, 1::vector< size_t > const &aLayerAddIDs, 1::vector< size_t > const &aLayerRemoveIDs, 1::vector< size_t > const &aObjectIDs)
 Add layers to and remove layers from objects in a single operation. More...
 
WSM_EXPORT Result APICreateGeometryFromData (size_t nHistoryID, 1::vector< TextureData > const &aTextures, 1::vector< MaterialData > const &aMaterials, 1::vector< LayerData > const &aLayers, 1::vector< InstanceData > const &aInstances, 1::vector< 1::vector< FaceData >> const &aFaceCollections, 1::vector< EdgeData > const &aEdges, 1::vector< CurveData > const &aCurves, 1::vector< ImageData > const &aImages, const 1::string &aGroupName={}, bool bCreateMesh=false)
 APICreateGeometryFromData function. More...
 
WSM_EXPORT Result APICreateEdgesFromData (size_t nHistoryID, size_t &nCreatedGroupID, 1::vector< LayerData > const &aLayers, 1::vector< EdgeData > const &aEdges, 1::vector< CurveData > const &aCurves, bool bCreateMesh=true, const double accuracyORcount=10.0)
 Load a set of edges from vectors of various data in a single delta. More...
 
WSM_EXPORT Result APIGetRevitFamilyInformationReadOnly (size_t nHistoryID, bool &bIsGeneratedFromRFA, bool &bIsGeneratedFromBuiltinRFA, 1::string &familyCategory, 1::string &familyReference, 1::string &familyType, 1::string &familyExtraData)
 Get Revit Family information of the specific history. More...
 
WSM_EXPORT Result APISetRevitFamilyInformation (size_t nHistoryID, bool bIsGeneratedFromRFA, bool bIsGeneratedFromBuiltinRFA, const 1::string &familyCategory, const 1::string &familyReference, const 1::string &familyType, const 1::string &familyExtraData)
 Set Revit Family information for the specific history. More...
 
WSM_EXPORT Result APIGetEdgeStyleReadOnly (size_t nHistoryID, size_t nObjectID, Color &nColor)
 Get the style of an edge. More...
 
WSM_EXPORT Result APISetEdgesStyle (size_t nHistoryID, 1::vector< size_t > const &aObjectIDs, const Color &nColor)
 Set the style of edges on given objects. More...
 
WSM_EXPORT Result APIDebugObjectReadOnly (size_t nHistoryID, size_t nObjectID, 1::string &output)
 Given an object ID, dump debugging information to 'output'. More...
 
WSM_EXPORT Result APIIsExactMatchReadOnly (size_t nHistoryID1, size_t nHistoryID2, bool &bIsExact, size_t nObjectID1=WSM::INVALID_ID, size_t nObjectID2=WSM::INVALID_ID)
 API compares either two Histories or two Objects and sets bIsExact to true when they match exactly. More...
 
WSM_EXPORT Result APIGetDynamoModelInformationReadOnly (size_t nHistoryID, 1::string &id, 1::string *name=nullptr, 1::string *config=nullptr, 1::string *delta=nullptr)
 Get Dynamo Model information of the specific history. More...
 
WSM_EXPORT Result APISetDynamoModelInformation (size_t nHistoryID, const 1::string *id=nullptr, const 1::string *name=nullptr, const 1::string *config=nullptr, const 1::string *delta=nullptr)
 Set Dynamo Model information for the specific history. More...
 
WSM_EXPORT Result APICreateStringAttribute (size_t nHistoryID, const 1::string &sKey, const 1::string &sValue, const 1::vector< size_t > &aObjIDs, size_t &nStringAttributeID, WSM::nCopyBehavior nCB=WSM::nCopyBehavior::nShareOrCopy, bool bIsSharedOnSplit=true)
 Create a StringAttribute optionally attaching it to the given Objects. More...
 
WSM_EXPORT Result APIGetStringAttributeKeyValueReadOnly (size_t nHistoryID, size_t nStringAttributeID, 1::string &sKey, 1::string &sValue, 1::vector< size_t > &aOwnerIDs)
 Gets the key and value strings from a StringAttribute. More...
 
WSM_EXPORT Result APISetStringAttributeValue (size_t nHistoryID, size_t nStringAttributeID, const 1::string &sValue)
 Sets the value string of a StringAttribute. More...
 
WSM_EXPORT Result APIGetStringAttributesByKeyReadOnly (const size_t nHistoryID, const size_t nObjectID, const 1::string &sKey, 1::vector< size_t > &aStringAttributeIDs)
 Returns all StringAttributes attached to the Object given by nObjectID with key matching sKey. More...
 
WSM_EXPORT Result APICleanModel (size_t nHistoryID, double dEdgeTol=0.0, 1::vector< size_t > *paChangedHistories=nullptr)
 Changes the model fixing errors and getting rid of undesired features. More...
 
WSM_EXPORT Result APISplitAtNonManifoldEdgesAndVertices (size_t nHistoryID, 1::vector< size_t > *paChangedHistories=nullptr)
 Changes the model so that every edge on more than two faces and every vertex with more than one edge group is modified so that these conditions no longer occur. More...
 
WSM_EXPORT Result APICreateMesh (size_t nHistoryID, size_t &nMeshID, const 1::vector< float > &aPoints, const 1::vector< uint32_t > &aTriangles, const 1::vector< float > &aNormals={}, const 1::vector< float > &aUVs={}, const 1::vector< WSM::Color > &aColors={})
 Creates a Mesh in the History given by nHistoryID. More...
 
WSM_EXPORT Result APIGetMeshDataReadOnly (size_t nHistoryID, size_t nMeshID, 1::vector< float > &aPoints, 1::vector< uint32_t > &aTriangles, 1::vector< float > *pNormals=nullptr, 1::vector< float > *pUVs=nullptr, 1::vector< WSM::Color > *pColors=nullptr)
 Returns all the data from a Mesh. More...
 
WSM_EXPORT Result APIComputeSharedMeshDataReadOnly (size_t nHistoryID, size_t nMeshID, 1::vector< float > &aPoints, 1::vector< uint32_t > &aTriangles, 1::vector< float > &aNormals, 1::vector< uint32_t > *paUVTriangles=nullptr, 1::vector< float > *paUVs=nullptr, 1::vector< uint32_t > *paEdges=nullptr, double dCosSmoothAngle=0.86602540378443864676372317075294)
 Returns the point, normal, and triangle data from a Mesh shared so that indices with equal points and normals are reused. More...
 
WSM_EXPORT Result APIIsMeshManifoldReadOnly (const size_t nHistoryID, const size_t nMeshID, bool &bIsManifold)
 Returns true when the mesh is the boundary of a solid. More...
 
WSM_EXPORT Result APIMeshContainsPointReadOnly (const size_t nHistoryID, const size_t nMeshID, const Point3d &point, bool &bContainsPoint, WSM::UnitVector3d &normal, 1::vector< WSM::Point3d > *pTrianglePts=nullptr)
 Does the given Mesh contain the given Point3d? If so, return true and the normal at the point. More...
 
WSM_EXPORT Result APIMeshPointOnOrInsideIfManifoldReadOnly (const size_t nHistoryID, const size_t nMeshID, const Point3d &point, bool &bPointOnOrInside)
 Return true if the given point is on the Mesh. More...
 
WSM_EXPORT Result APIMeshComputeSilhouetteEdgesReadOnly (const size_t nHistoryID, const size_t nMeshID, const WSM::Point3d &cameraPos, const WSM::Vector3d &cameraDir, bool bPerspectiveView, 1::vector< uint32_t > &aSilhouettes)
 Returns silhouette edges from the Mesh. More...
 
WSM_EXPORT Result APIMeshComputeNonSmoothEdgesReadOnly (const size_t nHistoryID, const size_t nMeshID, 1::vector< uint32_t > &aEdges, double dCosSmoothAngle=0.86602540378443864676372317075294)
 Returns edges from the Mesh. More...
 
WSM_EXPORT Result APIConvertMeshesToObjects (size_t nHistoryID, const 1::vector< size_t > &aMeshIDs, 1::vector< size_t > &aCreatedObjectIDs, double dCosSmoothAngle=-1.0, bool bFlatten=false)
 Converts Meshes into Bodies with triangular Faces. More...
 
WSM_EXPORT Result APILinkMeshesForConversion (size_t nHistoryID, const 1::vector< size_t > &aMeshIDs)
 Link the Meshes with a shared string Attribute. More...
 
WSM_EXPORT Result APIConvertObjectsToMeshes (size_t nHistoryID, const 1::vector< size_t > &aObjectIDs, 1::vector< size_t > &aCreatedMeshIDs)
 Converts non-Mesh Objects into Meshes with one Mesh per Material used. More...
 
WSM_EXPORT Result APICreateVertex (const size_t nHistoryID, const WSM::Point3d &pos, size_t &nCreatedObjectID)
 Create a Vertex with the given position. More...
 
WSM_EXPORT Result APIFlattenFaces (size_t nHistoryID, const 1::vector< size_t > &aFaceIDs, double dTol=WSM_DISTANCE_TOL)
 Flattens all Faces given by aFaceIDs onto the plane of the first Face when all Faces lie within dTol of the first Face's plane, then merges into a single Face. More...
 
WSM_EXPORT Result APISaveDeltaToSolidDefReadOnly (size_t nHistoryID, 1::vector< 1::string > &aChangedDeletedTop, 1::vector< 1::string > &aChangedDeletedGeom, 1::string &jsonStr, bool bForUndo=false)
 Gets the changed, created, and deleted objects in the most recent delta and encodes this information in a solid-def JSON string so that solid-def stored in HFDM can be kept up to date. More...
 
WSM_EXPORT Result APIAddSolidDefGuids (size_t nHistoryID, const 1::vector< size_t > &aObjectIDs)
 Adds solid-def guids in StringAttributes to the given Objects. More...
 
WSM_EXPORT Result APICreateLineMesh (size_t nHistoryID, size_t &nLineMeshID, const 1::vector< float > &aPoints, const 1::vector< uint32_t > &aIndices, const 1::vector< uint32_t > &aCounts)
 Creates a LineMesh in the History given by nHistoryID. More...
 
WSM_EXPORT Result APIGetLineMeshDataReadOnly (size_t nHistoryID, size_t nLineMeshID, 1::vector< float > &aPoints, 1::vector< uint32_t > &aIndices, 1::vector< uint32_t > &aCounts)
 Returns all the data from a LineMesh. More...
 
WSM_EXPORT Result APILineMeshContainsPointReadOnly (const size_t nHistoryID, const size_t nLineMeshID, const Point3d &point, bool &bContainsPoint)
 Does the given LineMesh contain the given Point3d? If so, return true. More...
 
WSM_EXPORT Result APILineMeshGetPointsOnNegativeSideOfPlanesReadOnly (const size_t nHistoryID, const size_t nLineMeshID, const 1::vector< Plane > &aPlanes, const Line3d &line, 1::vector< Point3d > &aPoints, double dTol=WSM_MACHINE_TOL, 1::vector< 1::pair< Point3d, Point3d >> *pSegments=nullptr)
 Get all points nearest the given line from segments of the LineMesh that lie on the negative side of all the given Planes. More...
 
WSM_EXPORT Result APICreatePointMesh (size_t nHistoryID, size_t &nPointMeshID, const 1::vector< float > &aPoints)
 Creates a PointMesh in the History given by nHistoryID. More...
 
WSM_EXPORT Result APIGetPointMeshDataReadOnly (size_t nHistoryID, size_t nPointMeshID, 1::vector< float > &aPoints)
 Returns all the data from a PointMesh. More...
 
WSM_EXPORT Result APIPointMeshContainsPointReadOnly (const size_t nHistoryID, const size_t nPointMeshID, const Point3d &point, bool &bContainsPoint)
 Does the given PointMesh contain the given Point3d? If so, return true. More...
 
WSM_EXPORT Result APIPointMeshGetPointsOnNegativeSideOfPlanesReadOnly (const size_t nHistoryID, const size_t nPointMeshID, const 1::vector< Plane > &aPlanes, 1::vector< Point3d > &aPoints, double dTol=WSM_MACHINE_TOL)
 Get all points of the PointMesh that lie on the negative side of all the given Planes. More...
 
WSM_EXPORT Result APIPushBadTransformationsOntoGeometry (size_t nHistID, 1::function< bool(const WSM::Transf3d &) > isTransfGood)
 Pushes bad Instance transformations onto the underlying geometry sharing referenced Histories as much as possible. More...
 
WSM_EXPORT Result APICheckMassesCollideReadOnly (size_t nHistoryID, bool &bCollisionDetected)
 Returns true if bodies that enclose volume (possibly in instances) touch or overlap. More...
 

Variables

const size_t UNUSED_INDEX = size_t(-1)
 Used in texture, material or layer indices to indicate an unused value. More...
 
const size_t INVALID_SIZE = (1::numeric_limits<size_t>::max)()
 
const size_t INVALID_ID = (1::numeric_limits<size_t>::max)()
 
const size_t INVALID_IDx32 = 0xFFFFFFFF
 
WSM file versions
const size_t ATTRIBUTE_FILE_VERSION = 2
 The version where Attributes where added. More...
 
const size_t CORRECTBODYBOX_FILE_VERSION = 3
 Body box cannot be trusted in previous versions. More...
 
const size_t TEXTURE_FILE_VERSION = 4
 The version where textures were added. More...
 
const size_t TEXTURE_PNG_FILE_VERSION = 5
 The version where textures are blessed to be in PNG format. More...
 
const size_t XAXIS_FILE_VERSION = 6
 The version where the X axis was added to the geometry attributes. More...
 
const size_t PREVDELTAID0_FILE_VERSION = 7
 The version where prevDeltaID of the 1st Delta in History is 0 and not -1. More...
 
const size_t GROUP_FILE_VERSION = 8
 The version where Groups were added. More...
 
const size_t HEADERSIZE_FILE_VERSION = 9
 The version where binary header size was added. More...
 
const size_t DELTAFLAGS_FILE_VERSION = 9
 The version where Delta flags were added. More...
 
const size_t LAYER_FILE_VERSION = 10
 The version where Layer and LayerAttribute were added. More...
 
const size_t REVITFAMILYINFORMATION_FILE_VERSION = 11
 The version where RevitFamilyInformation were added. More...
 
const size_t FACEUVDATA_FILE_VERSION = 12
 The version where FaceUVDataAttribute was added. More...
 
const size_t EDGESTYLE_FILE_VERSION = 12
 The version where EdgeStyleAttribute was added. More...
 
const size_t MATERIAL_DATA_VERSION = 12
 The version where Material and Texture names and Protein material values were added. More...
 
const size_t SKETCHPROPERTIES_LCS_VERSION = 13
 The version where SketchProperties changed from using a double for grid rotation to a Transf3d for the local coordinate system. More...
 
const size_t MATERIAL_ATTR_BACK_FACE_VERSION = 14
 The version where MaterialAttribute added a back face flag. More...
 
const size_t FIXEDLEVELANDLAYERATTR_VERSION = 15
 The version where files no longer contain level attributes, whose level owner does not contain the attribute. More...
 
const size_t BLENDATTRIBUTE_VERSION = 16
 The version where BlendAttributes were added. More...
 
const size_t GENERATEDGEOMETRYINFORMATION_VERSION = 17
 The version where GeneratedGeometryInformation were added. More...
 
const size_t STRINGATTRIBUTE_VERSION = 18
 The version where string Attributes were added. More...
 
const size_t MESH_VERSION = 19
 The version where Mesh object was added. More...
 
const size_t MESH_COLOR_VERSION = 20
 The version where Mesh vertex colors were added. More...
 
const size_t LINE_AND_POINT_MESH = 21
 The version where Line and Point Meshes were added. More...
 
const size_t MESH_HIDDEN_EDGES_VERSION = 22
 The version where Mesh hidden lines were added. More...
 
const size_t SHARED_BITMAPS = 23
 The version where bitmap sharing for Textures across Histories was added. More...
 
const size_t SOFTWAREVERSIONx100 = 23
 "7" means "Version 0.07" This needs to be the same as the last version above More...
 
AXM file versions
const size_t AXM_VERSION_WITH_FORWARD_COMPATIBILITY = 20
 Increase the file version to keep track of changes to the format, which remain forward compatible (i.e. More...
 
const size_t AXM_VERSION_WITH_UNDO_MANAGER = 21
 First AXM version with undo manager. More...
 
const size_t AXM_VERSION_WITH_MATERIAL_MANAGER = 22
 First AXM version with material manager. More...
 
const size_t AXM_VERSION_WSM_LAYER_DISPLAY = 23
 First AXM version where the Layer display information in the WSM block is set to match the Layer block. More...
 
const size_t AXM_VERSION_WITH_MATERIAL_PREVIEW = 24
 First AXM version with material preview images. More...
 
const size_t AXM_VERSION_WITH_SECTIONPLANE_RENDER_OPTS = 25
 First AXM version with section plane rendering options. More...
 
const size_t AXM_VERSION_WITH_BRIGHTNESS_SETTINGS = 26
 First AXM version with brightness/shader settings. More...
 
const size_t AXM_VERSION_WITH_ENV_SETTINGS = 27
 First AXM version with env settings. More...
 
const size_t AXM_VERSION_FOR_WSM22 = 28
 AXM version update to reflect WSM version 22. More...
 
const size_t AXM_VERSION_WITH_AMBIENT_CONTRAST = 29
 AXM version that contains the ambient contrast rendering setting. More...
 
const size_t AXM_VERSION_FOR_WSM23 = 30
 AXM version update to reflect WSM version 23. More...
 
const size_t AXM_VERSION_LAYER_PICKABLE = 31
 AXM version where a pickable flag was added to formit layers. More...
 
const size_t AXM_VERSION_TRANSPARENT_GROUND = 32
 AXM version where ground transparency was added. More...
 
const size_t AXM_MAJOR_FILE_VERSION = 32
 The current major file version for the AXM format This needs to be the same as the last AXM file version above. More...
 
const size_t AXM_FIRST_FORWARD_COMPATIBILITY_VERSION = 0
 AXM forward compatibility file version If you make a change to the AXM file structure that makes it impossible for older applications to read this new file, you need to increase AXM_FORWARD_COMPATIBILITY_VERSION. More...
 
const size_t AXM_FORWARD_COMPATIBILITY_VERSION = 0
 Latest compatibility version This needs to be the same as the last version above. More...
 

Typedef Documentation

using WSM::GroupInstancePathArray = typedef 1::vector <GroupInstancePath>
using WSM::ObjectHistoryIDArray = typedef 1::vector<ObjectHistoryID>
using WSM::ObjectIDArray = typedef 1::vector<size_t>