Files
Hoops_Exchange/exchange/exchangesource/CreatePRCCubes/modules/CreateMarkups.h
2025-12-15 23:22:33 +08:00

70 lines
3.1 KiB
C

/***********************************************************************************************************************
*
* Copyright (c) 2010 - 2025 by Tech Soft 3D, Inc.
* The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., and considered a trade secret
* as defined under civil and criminal statutes. Tech Soft 3D shall pursue its civil and criminal remedies in the event
* of unauthorized use or misappropriation of its trade secrets. Use of this information by anyone other than authorized
* employees of Tech Soft 3D, Inc. is granted only under a written non-disclosure agreement, expressly prescribing the
* scope and manner of such use.
*
***********************************************************************************************************************/
/**
* Sample CreatePRCCubes
* file CreateMartkups.cpp
* This file is containing the function allowing to create markups.
*
* Markups creation exemple
* Create tessellated markups with linked items.
* Different style of markups can be created (normal or face to screen).
* Different links to the PRC entities can be created as well.
*
* These exemples are using the tessellation wrapper: HXWMarkupTessellation.cpp
*
*
***********************************************************************************************************************/
#pragma once
#include "../CreatePRCCubesDef.h"
#include "CreateLinkedItem.h"
#include "CreateGraphics.h"
//######################################################################################################################
enum FlatToScreenMode
{
FlatToScreen,
FlatToScreenAlwaysOnTop,
FlatToScreenNonZoomable
};
//######################################################################################################################
// Tesselated Markup creation with Publish
A3DStatus createMarkup(A3DMkpAnnotationItem** ppOutAnnotItem,
const A3DUTF8Char* pcText,
A3DUns32 uiLinkedEntitySize,
A3DEntity** ppLinkedEntity,
A3DAsmProductOccurrence** ppPOTarget,
A3DVector3dData* pFramePos,
A3DVector3dData* pLeaderPos = 0);
A3DStatus createMarkupOnFace(A3DMkpAnnotationItem** ppOutAnnotItem,
const A3DUTF8Char* pcText,
A3DUns32 uiLinkedEntitySize,
A3DEntity** ppLinkedEntity,
A3DAsmProductOccurrence** ppPOTarget,
A3DUns32* puiFaceIndexes,
A3DVector3dData* pFramePos,
A3DVector3dData* pLeaderPos = 0);
A3DStatus createMarkupFaceToScreen(A3DMkpAnnotationItem** ppOutAnnotItem,
const A3DUTF8Char* pcText,
A3DUns32 uiLinkedEntitySize,
A3DEntity** ppLinkedEntity,
A3DAsmProductOccurrence** ppPOTarget,
A3DVector3dData* pFramePos,
FlatToScreenMode inFlatToScreenMode = FlatToScreen);