forked from FirestormViewer/phoenix-firestorm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
viewer#1131 gltf model upload UI WIP
- Loading branch information
1 parent
59cc180
commit c7bd452
Showing
13 changed files
with
525 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
/** | ||
* @file llfloatergltfasseteditor.cpp | ||
* @author Brad Payne | ||
* @brief LLFloaterFontTest class implementation | ||
* | ||
* $LicenseInfo:firstyear=2008&license=viewerlgpl$ | ||
* Second Life Viewer Source Code | ||
* Copyright (C) 2010, Linden Research, Inc. | ||
* | ||
* This library is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU Lesser General Public | ||
* License as published by the Free Software Foundation; | ||
* version 2.1 of the License only. | ||
* | ||
* This library is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
* Lesser General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU Lesser General Public | ||
* License along with this library; if not, write to the Free Software | ||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
* | ||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA | ||
* $/LicenseInfo$ | ||
*/ | ||
|
||
#include "llviewerprecompiledheaders.h" | ||
|
||
#include "llfloatergltfasseteditor.h" | ||
|
||
#include "llfolderviewitem.h" | ||
#include "llgltffolderviews.h" | ||
|
||
bool LLGLTFSort::operator()(const LLGLTFItem* const& a, const LLGLTFItem* const& b) const | ||
{ | ||
// Comparison operator: returns "true" is a comes before b, "false" otherwise | ||
S32 compare = LLStringUtil::compareDict(a->getName(), b->getName()); | ||
return (compare < 0); | ||
} | ||
|
||
/// LLGLTFViewModel | ||
|
||
LLGLTFViewModel::LLGLTFViewModel() | ||
: base_t(new LLGLTFSort(), new LLGLTFFilter()) | ||
{} | ||
|
||
void LLGLTFViewModel::sort(LLFolderViewFolder* folder) | ||
{ | ||
base_t::sort(folder); | ||
} | ||
|
||
/// LLGLTFNode | ||
// LLUICtrlFactory::create<LLGLTFNode>(params); | ||
class LLGLTFNode : public LLFolderViewItem | ||
{ | ||
public: | ||
struct Params : public LLInitParam::Block<Params, LLFolderViewItem::Params> | ||
{ | ||
Params(); | ||
}; | ||
~LLGLTFNode(); | ||
protected: | ||
LLGLTFNode(const Params& p); | ||
}; | ||
|
||
LLGLTFNode::LLGLTFNode(const LLGLTFNode::Params& p) | ||
: LLFolderViewItem(p) | ||
{ | ||
} | ||
|
||
LLGLTFNode::~LLGLTFNode() | ||
{ | ||
} | ||
|
||
LLFloaterGltfAssetEditor::LLFloaterGltfAssetEditor(const LLSD& key) | ||
: LLFloater(key) | ||
{ | ||
setTitle("GLTF Asset Editor (WIP)"); | ||
} | ||
|
||
/// LLFloaterGltfAssetEditor | ||
|
||
LLFloaterGltfAssetEditor::~LLFloaterGltfAssetEditor() | ||
{ | ||
} | ||
|
||
bool LLFloaterGltfAssetEditor::postBuild() | ||
{ | ||
mItemListPanel = getChild<LLPanel>("item_list_panel"); | ||
|
||
// Create the root model and view for all conversation sessions | ||
LLGLTFItem* base_item = new LLGLTFItem(mGLTFViewModel); | ||
|
||
LLFolderView::Params p(LLUICtrlFactory::getDefaultParams<LLFolderView>()); | ||
p.name = getName(); | ||
p.title = getLabel(); | ||
p.rect = LLRect(0, 0, getRect().getWidth(), 0); | ||
p.parent_panel = mItemListPanel; | ||
p.tool_tip = p.name; | ||
p.listener = base_item; | ||
p.view_model = &mGLTFViewModel; | ||
p.root = NULL; | ||
p.use_ellipses = true; | ||
p.options_menu = "menu_gltf.xml"; // *TODO : create this or fix to be optional | ||
mConversationsRoot = LLUICtrlFactory::create<LLFolderView>(p); | ||
mConversationsRoot->setCallbackRegistrar(&mCommitCallbackRegistrar); | ||
mConversationsRoot->setEnableRegistrar(&mEnableCallbackRegistrar); | ||
|
||
return true; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
/** | ||
* @file llfloatergltfasseteditor.h | ||
* @author Brad Payne | ||
* @brief floater to exercise standard fonts | ||
* | ||
* $LicenseInfo:firstyear=2024&license=viewerlgpl$ | ||
* Second Life Viewer Source Code | ||
* Copyright (C) 2024, Linden Research, Inc. | ||
* | ||
* This library is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU Lesser General Public | ||
* License as published by the Free Software Foundation; | ||
* version 2.1 of the License only. | ||
* | ||
* This library is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
* Lesser General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU Lesser General Public | ||
* License along with this library; if not, write to the Free Software | ||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
* | ||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA | ||
* $/LicenseInfo$ | ||
*/ | ||
|
||
#ifndef LL_LLFLOATERGLTFASSETEDITOR_H | ||
#define LL_LLFLOATERGLTFASSETEDITOR_H | ||
|
||
#include "llfloater.h" | ||
|
||
#include "llfolderviewmodel.h" | ||
#include "llgltffolderviews.h" | ||
|
||
class LLGLTFViewModel; | ||
class LLFolderViewFolder; | ||
class LLFolderViewModelItem; | ||
|
||
class LLGLTFSort | ||
{ | ||
public: | ||
LLGLTFSort() { } | ||
bool operator()(const LLGLTFItem* const& a, const LLGLTFItem* const& b) const; | ||
private: | ||
}; | ||
|
||
class LLGLTFFilter : public LLFolderViewFilter | ||
{ | ||
public: | ||
LLGLTFFilter() { mEmpty = ""; } | ||
~LLGLTFFilter() {} | ||
|
||
bool check(const LLFolderViewModelItem* item) { return true; } | ||
bool checkFolder(const LLFolderViewModelItem* folder) const { return true; } | ||
void setEmptyLookupMessage(const std::string& message) { } | ||
std::string getEmptyLookupMessage(bool is_empty_folder = false) const { return mEmpty; } | ||
bool showAllResults() const { return true; } | ||
std::string::size_type getStringMatchOffset(LLFolderViewModelItem* item) const { return std::string::npos; } | ||
std::string::size_type getFilterStringSize() const { return 0; } | ||
|
||
bool isActive() const { return false; } | ||
bool isModified() const { return false; } | ||
void clearModified() { } | ||
const std::string& getName() const { return mEmpty; } | ||
const std::string& getFilterText() { return mEmpty; } | ||
void setModified(EFilterModified behavior = FILTER_RESTART) { } | ||
|
||
void resetTime(S32 timeout) { } | ||
bool isTimedOut() { return false; } | ||
|
||
bool isDefault() const { return true; } | ||
bool isNotDefault() const { return false; } | ||
void markDefault() { } | ||
void resetDefault() { } | ||
|
||
S32 getCurrentGeneration() const { return 0; } | ||
S32 getFirstSuccessGeneration() const { return 0; } | ||
S32 getFirstRequiredGeneration() const { return 0; } | ||
private: | ||
std::string mEmpty; | ||
}; | ||
|
||
class LLGLTFViewModel | ||
: public LLFolderViewModel<LLGLTFSort, LLGLTFItem, LLGLTFItem, LLGLTFFilter> | ||
{ | ||
public: | ||
typedef LLFolderViewModel< LLGLTFSort, LLGLTFItem, LLGLTFItem, LLGLTFFilter> base_t; | ||
LLGLTFViewModel(); | ||
|
||
void sort(LLFolderViewFolder* folder); | ||
bool startDrag(std::vector<LLFolderViewModelItem*>& items) { return false; } | ||
|
||
private: | ||
}; | ||
|
||
class LLFloaterGltfAssetEditor : public LLFloater | ||
{ | ||
public: | ||
LLFloaterGltfAssetEditor(const LLSD& key); | ||
~LLFloaterGltfAssetEditor(); | ||
|
||
bool postBuild() override; | ||
|
||
LLGLTFViewModel& getRootViewModel() { return mGLTFViewModel; } | ||
|
||
private: | ||
LLGLTFViewModel mGLTFViewModel; | ||
|
||
LLPanel* mItemListPanel = nullptr; | ||
LLFolderView* mConversationsRoot = nullptr; | ||
}; | ||
|
||
#endif LL_LLFLOATERGLTFASSETEDITOR_H |
Oops, something went wrong.