LibreOffice Module svx (master)
1
svx
inc
sdr
contact
viewcontactofe3d.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
* This file is part of the LibreOffice project.
4
*
5
* This Source Code Form is subject to the terms of the Mozilla Public
6
* License, v. 2.0. If a copy of the MPL was not distributed with this
7
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
*
9
* This file incorporates work covered by the following license notice:
10
*
11
* Licensed to the Apache Software Foundation (ASF) under one or more
12
* contributor license agreements. See the NOTICE file distributed
13
* with this work for additional information regarding copyright
14
* ownership. The ASF licenses this file to you under the Apache
15
* License, Version 2.0 (the "License"); you may not use this file
16
* except in compliance with the License. You may obtain a copy of
17
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
18
*/
19
20
#pragma once
21
22
#include <
svx/obj3d.hxx
>
23
#include <
svx/sdr/contact/viewcontactofsdrobj.hxx
>
24
#include <
drawinglayer/primitive3d/baseprimitive3d.hxx
>
25
26
namespace
drawinglayer::attribute
27
{
28
class
SdrLineAttribute;
29
}
30
namespace
basegfx
31
{
32
class
BColor;
33
class
B3DHomMatrix;
34
}
35
36
namespace
sdr::contact
37
{
38
class
ViewContactOfE3dScene;
39
40
class
ViewContactOfE3d
:
public
ViewContactOfSdrObj
41
{
42
protected
:
43
// Create an Object-Specific ViewObjectContact, set ViewContact and
44
// ObjectContact. Always needs to return something.
45
virtual
ViewObjectContact
&
46
CreateObjectSpecificViewObjectContact
(
ObjectContact
& rObjectContact)
override
;
47
48
public
:
49
// basic constructor, used from E3dObject.
50
explicit
ViewContactOfE3d
(
E3dObject
& rObj);
51
virtual
~ViewContactOfE3d
()
override
;
52
53
// access to E3dObject
54
const
E3dObject
&
GetE3dObject
()
const
{
return
static_cast<
const
E3dObject
&
>
(
GetSdrObject
()); }
55
56
// public helpers
57
drawinglayer::primitive2d::Primitive2DContainer
impCreateWithGivenPrimitive3DContainer
(
58
const
drawinglayer::primitive3d::Primitive3DContainer
& rxContent3D)
const
;
59
60
// primitive stuff
61
62
protected
:
63
// This method is responsible for creating the graphical visualisation data which is
64
// stored in mxViewIndependentPrimitive3DContainer, but without object transformation
65
virtual
drawinglayer::primitive3d::Primitive3DContainer
66
createViewIndependentPrimitive3DContainer
()
const
= 0;
67
68
// This method is responsible for creating the graphical visualisation data derived ONLY from
69
// the model data. The default implementation will try to create a 3D to 2D embedding (will work
70
// when scene is known) which can then be used for 2D processing concerning ranges
71
virtual
void
createViewIndependentPrimitive2DSequence
(
72
drawinglayer::primitive2d::Primitive2DDecompositionVisitor
& rVisitor)
const override
;
73
74
public
:
75
// access to the local primitive without the object's local 3D transform. This is e.g. needed
76
// to get the not-yet transformed BoundVolume for e.g. interactions
77
drawinglayer::primitive3d::Primitive3DContainer
const
&
getVIP3DSWithoutObjectTransform
()
const
;
78
79
// access to the local primitive. This will ensure that the list is
80
// current in comparing the local list content with a fresh created incarnation. It will
81
// use getVIP3DSWithoutObjectTransform and embed to 3d transform primitive when object's
82
// local 3d transform is used
83
drawinglayer::primitive3d::Primitive3DContainer
getViewIndependentPrimitive3DContainer
()
const
;
84
85
private
:
86
// Primitive3DContainer of the ViewContact. This contains all necessary information
87
// for the graphical visualisation and needs to be supported by all 3D VCs which
88
// can be visualized. It does NOT contain the object transformation to be able to
89
// buffer for all possible usages
90
drawinglayer::primitive3d::Primitive3DContainer
mxViewIndependentPrimitive3DContainer
;
91
};
92
}
93
94
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
baseprimitive3d.hxx
E3dObject
Definition:
obj3d.hxx:63
drawinglayer::primitive2d::Primitive2DContainer
drawinglayer::primitive2d::Primitive2DDecompositionVisitor
drawinglayer::primitive3d::Primitive3DContainer
sdr::contact::ObjectContact
Definition:
objectcontact.hxx:49
sdr::contact::ViewContactOfE3d
Definition:
viewcontactofe3d.hxx:41
sdr::contact::ViewContactOfE3d::createViewIndependentPrimitive3DContainer
virtual drawinglayer::primitive3d::Primitive3DContainer createViewIndependentPrimitive3DContainer() const =0
sdr::contact::ViewContactOfE3d::getVIP3DSWithoutObjectTransform
drawinglayer::primitive3d::Primitive3DContainer const & getVIP3DSWithoutObjectTransform() const
Definition:
viewcontactofe3d.cxx:137
sdr::contact::ViewContactOfE3d::getViewIndependentPrimitive3DContainer
drawinglayer::primitive3d::Primitive3DContainer getViewIndependentPrimitive3DContainer() const
Definition:
viewcontactofe3d.cxx:152
sdr::contact::ViewContactOfE3d::ViewContactOfE3d
ViewContactOfE3d(E3dObject &rObj)
Definition:
viewcontactofe3d.cxx:128
sdr::contact::ViewContactOfE3d::impCreateWithGivenPrimitive3DContainer
drawinglayer::primitive2d::Primitive2DContainer impCreateWithGivenPrimitive3DContainer(const drawinglayer::primitive3d::Primitive3DContainer &rxContent3D) const
Definition:
viewcontactofe3d.cxx:69
sdr::contact::ViewContactOfE3d::createViewIndependentPrimitive2DSequence
virtual void createViewIndependentPrimitive2DSequence(drawinglayer::primitive2d::Primitive2DDecompositionVisitor &rVisitor) const override
Definition:
viewcontactofe3d.cxx:177
sdr::contact::ViewContactOfE3d::mxViewIndependentPrimitive3DContainer
drawinglayer::primitive3d::Primitive3DContainer mxViewIndependentPrimitive3DContainer
Definition:
viewcontactofe3d.hxx:90
sdr::contact::ViewContactOfE3d::CreateObjectSpecificViewObjectContact
virtual ViewObjectContact & CreateObjectSpecificViewObjectContact(ObjectContact &rObjectContact) override
Definition:
viewcontactofe3d.cxx:185
sdr::contact::ViewContactOfE3d::~ViewContactOfE3d
virtual ~ViewContactOfE3d() override
Definition:
viewcontactofe3d.cxx:133
sdr::contact::ViewContactOfE3d::GetE3dObject
const E3dObject & GetE3dObject() const
Definition:
viewcontactofe3d.hxx:54
sdr::contact::ViewContactOfSdrObj
Definition:
viewcontactofsdrobj.hxx:32
sdr::contact::ViewContactOfSdrObj::GetSdrObject
SdrObject & GetSdrObject() const
Definition:
viewcontactofsdrobj.hxx:44
sdr::contact::ViewObjectContact
Definition:
viewobjectcontact.hxx:42
basegfx
drawinglayer::attribute
sdr::contact
obj3d.hxx
viewcontactofsdrobj.hxx
Generated on Sun Jul 30 2023 04:27:43 for LibreOffice Module svx (master) by
1.9.3